Re: Mirror Driver Architecture
- From: Tim Roberts <timr@xxxxxxxxx>
- Date: Wed, 01 Mar 2006 00:02:15 -0800
"Ronny S" <RonnyS@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
I am building a mirror driver that needs to compress, encrypt and transmit
bytes over a network. I believe it would be more efficient to do this from
within the driver rather than requesting the user-mode application to
perform these tasks every time there is a modification to the UI.
My understanding is that these kernel to user-mode context switches are
costly...
Compared to what? You're talking about compressing, encrypting, and
transmitting over a network here. The overhead of a couple of user/kernel
transition will be lost in the noise.
Before you embark on a multimonth development effort, have you checked out
the various VNCs, which do exactly what you are asking, and come with
source code?
(as are the synchronizations on shared memory, etc.) - not to mention
the additional headache of managing the shared memory in the driver - so I
opted for doing everything in the driver.
You need to weigh the "headache of managing the shared memory" to the
headache of compression and encryption in the driver, plus the risks of
kernel debugging versus the ease of user debugging, PLUS the headache of
mucking with TDI versus the ease of socket programming.
I've been doing Windows drivers for 16 years, but given the choice, I'll
always push the work to user-mode.
--
- Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.
.
- Follow-Ups:
- Re: Mirror Driver Architecture
- From: Ronny S
- Re: Mirror Driver Architecture
- Prev by Date: take control of a print job in queue which paused by setJob API
- Next by Date: Re: Tools for CPU usage and Memory Usage
- Previous by thread: take control of a print job in queue which paused by setJob API
- Next by thread: Re: Mirror Driver Architecture
- Index(es):
Relevant Pages
|