Everhart, Glenn (FUSA) From: Jamey Kirby [jkirby@storagecraft.com] Sent: Friday, April 16, 1999 8:23 PM To: 'George Blat'; ntdev@atria.com Subject: RE: [ntdev] New book by Dekker and Newcomer George, From my recent experience, if you create the system thread in the context of a user-mode process, the thread always runs in the context of that process at PASSIVE_LEVEL. This means that the user-mode address space is valid and mapped. Paged I/O between the driver and the user-mode application works. I needed to access a network file resource from a KM driver with ZwCreateFile(). We developed a service that would logon using a special account with the appropriate network rights to access the file the driver needed. When the service opened our drivers control device object using CreateFile(), on first open, I created the system thread using -1 as the process. Once I did this, I was able to access the network resource just like the service was able to access the resource. On my last close, I terminated the thread. This driver has been running under extream network loads owing the drivers file I/O (20 - 50 gigabytes per day) and it has been very, very solid. No BSODs. We have a virtual storage technology. We have drivers that emulate disk, CD-ROM and tape using normal file I/O. Using this technique to map virtual storage devices to network file resources works quite well in SAN envoironments. Regards, Jamey Kirby StorageCraft, Inc. jkirby@storagecraft.com www.storagecraft.com -----Original Message----- From: owner-ntdev@atria.com [mailto:owner-ntdev@atria.com]On Behalf Of George Blat Sent: Friday, April 16, 1999 9:47 AM To: ntdev@atria.com Subject: Re: [ntdev] New book by Dekker and Newcomer Question: How is a system thread for a process defined: Is it a thread that can read anything in system memory above 0x80000000 and is also attached to the context of the non-system process that was passed when created by the driver? Is that true or false. If false, what is the true definition? Thanks in advance, George At 04:46 PM 4/15/99 -0700, you wrote: >Well, I just got the monster today and started looking it over. It seems to >have been quite an industrious effort. I have not read the whole thing, but >I do have a comment regarding pages 974 and 975. > >Quote: > >"The _ProcessHandle_ parameter must not be used for driver-created threads >and must be NULL". > >This is incorrect. Using a specific process ID or using NtCurrentProcess() >[which is -1], you can create a system thread for any process in the system. > >Anyway, just a note on what I have seen so far. > >Regards, > >Jamey Kirby >StorageCraft, Inc. >jkirby@storagecraft.com >www.storagecraft.com > > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >[ To unsubscribe, send email to ntdev-request@atria.com with body >UNSUBSCRIBE (the subject is ignored). ] > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ To unsubscribe, send email to ntdev-request@atria.com with body UNSUBSCRIBE (the subject is ignored). ] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ To unsubscribe, send email to ntdev-request@atria.com with body UNSUBSCRIBE (the subject is ignored). ]