The information in this article applies to:
SYMPTOMSIf a Windows 98 WDM driver's AddDevice routine calls IoCreateDevice followed by IoDeleteDevice, the driver may be unloaded unexpectedly and the memory freed, all before the AddDevice routine finishes execution. This could theoretically allow another thread to prematurely overwrite the driver's memory, causing potential system instability. CAUSECalling IoDeleteDevice results in Ntkern.vxd unloading the driver if the driver's reference count is 0 (zero) and no other threads are in the process of unloading it. RESOLUTION
As a workaround, it may be possible to restructure the driver's AddDevice routine so that it does not create the Device Object unnecessarily, thereby avoiding the IoDeleteDevice call. STATUSMicrosoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. This problem has been fixed for future versions of Windows 98. REFERENCESSee the Windows 98 DDK for more information on IoCreateDevice, IoDeleteDevice, and WDM drivers.
Keywords : kbDDK kbWinOS98bug |
Last Reviewed: March 6, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |