IoRegisterDriverReinitialization and ExQueueWorkItem

Hi experts,

Is there any conceptual difference between using
IoRegisterDriverReinitialization and ExQueueWorkItem during driver
initialization?

Thanks in advance,

Fernando Roberto da Silva

DriverEntry Kernel Development

http://www.driverentry.com.br http:</http:>

http://msdn2.microsoft.com/en-us/library/ms795008.aspx

The difference is a not very well defined staging of the reinitialization
callback. With a workitem your callback can occur anytime, including
immediately and concurrently to your driver entry execution. A
reinitialization routine is first guaranteed to not run until after you exit
driver entry, and second has some poorly defined staging that, as the link
indicates, implies that it might not run until after all of the AddDevice
routines that provoked driver entry to get called to begin with have
executed.

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Fernando Roberto
Sent: Friday, June 22, 2007 8:35 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] IoRegisterDriverReinitialization and ExQueueWorkItem

Hi experts,

Is there any conceptual difference between using
IoRegisterDriverReinitialization and ExQueueWorkItem during driver
initialization?

Thanks in advance,

Fernando Roberto da Silva

DriverEntry Kernel Development

http://www.driverentry.com.br http:</http:>


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Like mark said, work items run at any given time. The callback for
IoRegisterDriverReinitialization is only called at a specific time. It
is typically used for boot start drivers which want to be called back at
the end of phase 1 (or is 2, I can’t remember right now) of boot. Like
the docs for the API say, if you are not interacting with legacy
devices, don’t use this api.

d

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Mark Roddy
Sent: Friday, June 22, 2007 7:07 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] IoRegisterDriverReinitialization and
ExQueueWorkItem

http://msdn2.microsoft.com/en-us/library/ms795008.aspx

The difference is a not very well defined staging of the
reinitialization callback. With a workitem your callback can occur
anytime, including immediately and concurrently to your driver entry
execution. A reinitialization routine is first guaranteed to not run
until after you exit driver entry, and second has some poorly defined
staging that, as the link indicates, implies that it might not run until
after all of the AddDevice routines that provoked driver entry to get
called to begin with have executed.

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Fernando Roberto
Sent: Friday, June 22, 2007 8:35 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] IoRegisterDriverReinitialization and ExQueueWorkItem

Hi experts,

Is there any conceptual difference between using
IoRegisterDriverReinitialization and ExQueueWorkItem during driver
initialization?

Thanks in advance,

Fernando Roberto da Silva

DriverEntry Kernel Development

http://www.driverentry.com.br http:</http:>


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer