KeAttachProcess()

Hi,

I’m writing now a TDI client driver. That will be an EXPORT driver. The
routines it will export will be called from PASSIVE_LEVEL. But I also need
a system thread context for TDI stuff. May I use KeAttachProcess()/
KeDeatchProcess() in my code? And if this code will be called from
IRP_MJ_DEVICE_CONTROL handler? Can I alter user’s thread context to system
thread context?

Thanks for help,
Anton


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

You would be better off handing user requests off to private or system
worker threads rather than trying to use the unsupported KeAttachProcess()
interface. (If the thread you are trying to attach FROM has already been
KeAttachProcess’d the system will crash. You can work around this, but the
workaround is yet another undocumented feature.)

Mark Roddy
xxxxx@hollistech.com
www.hollistech.com
603 321 1032
WindowsNT Windows 2000 Consulting Services

-----Original Message-----
From: xxxxx@hotmail.com
[mailto:xxxxx@hotmail.com]
Sent: Tuesday, May 08, 2001 9:21 AM
To: NT Developers Interest List
Subject: [ntdev] KeAttachProcess()

Hi,

I’m writing now a TDI client driver. That will be an EXPORT driver. The
routines it will export will be called from PASSIVE_LEVEL. But I also need
a system thread context for TDI stuff. May I use KeAttachProcess()/
KeDeatchProcess() in my code? And if this code will be called from
IRP_MJ_DEVICE_CONTROL handler? Can I alter user’s thread context to system
thread context?

Thanks for help,
Anton


You are currently subscribed to ntdev as: xxxxx@stratus.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

> I’m writing now a TDI client driver. That will be an EXPORT driver. The

routines it will export will be called from PASSIVE_LEVEL. But I also need
a system thread context for TDI stuff. May I use KeAttachProcess()/
KeDeatchProcess() in my code?

Not so good idea, because these functions cannot be recursed, and you do not
know what the code below you will want to do.
w2k has the recursive KeStackAttachProcess function though.

Remember that both of them are undocumented.

And if this code will be called from

IRP_MJ_DEVICE_CONTROL handler? Can I alter user’s thread context to system
thread context?

The best solution for your problem is using ExQueueWorkItem.

Max


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Do you need to access memory? If so the system memory, being above 0x80000000
can be accessed by any other context. There is no unreachable system memory
from
a driver, except some pagetables. But if you need to use those undocumented
functions,
they do work. They are somewhat slow because they have to reload caches.

George

At 01:20 PM 5/8/01 +0000, you wrote:

Hi,

I’m writing now a TDI client driver. That will be an EXPORT driver. The
routines it will export will be called from PASSIVE_LEVEL. But I also need
a system thread context for TDI stuff. May I use KeAttachProcess()/
KeDeatchProcess() in my code? And if this code will be called from
IRP_MJ_DEVICE_CONTROL handler? Can I alter user’s thread context to system
thread context?

Thanks for help,
Anton


You are currently subscribed to ntdev as: xxxxx@ntrealtime.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com