obsolete DDK functions/DEPRECATE_DDK_FUNCTIONS

Hi!

I’ve been using DEPRECATE_DDK_FUNCTIONS environment
variable when I compiled my code.
My main obsolete functions are ExQueueWorkItem &
ExInitializeWorkItem.
My questions (generally - not only for these specific
functions):

  1. What is the meaning that they are obsolete?
  2. Is there any risk continue using such functions?

10x in advance


Do you Yahoo!?
The all-new My Yahoo! - Get yours free!
http://my.yahoo.com

They are obsolete generally because they should not be used in newly
created drivers - eventually some or all of these calls will be removed
from the OS. There are various reasons why individual calls have been
marked that way. For example, the executive work queue functions are
deprecated because they do not properly ensure your driver does not have
work items enqueued (or executing) while unloading. Thus, if you
support driver unloading it is possible that you will cause the OS to
crash if you use these functions. If you use the Io manager versions of
these routines, you are ensured you will not be asked to unload when you
have outstanding work items.

Regards,

Tony

Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alon Elhanani
Sent: Thursday, December 23, 2004 8:36 AM
To: ntdev redirect
Subject: [ntdev] obsolete DDK functions/DEPRECATE_DDK_FUNCTIONS

Hi!

I’ve been using DEPRECATE_DDK_FUNCTIONS environment
variable when I compiled my code.
My main obsolete functions are ExQueueWorkItem &
ExInitializeWorkItem.
My questions (generally - not only for these specific
functions):

  1. What is the meaning that they are obsolete?
  2. Is there any risk continue using such functions?

10x in advance


Do you Yahoo!?
The all-new My Yahoo! - Get yours free!
http://my.yahoo.com


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

You are currently subscribed to ntdev as: xxxxx@osr.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

> 1. What is the meaning that they are obsolete?

IoQueueWorkItem have replaced them.

  1. Is there any risk continue using such functions?

Device objects destroyed and driver unloaded while the work item is pending or
running.

I still use ExQueueWorkItem, but only in the context where it is a bit hard to
get the device object pointer.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com