PRB: Queuing a DPC Multiple Times Causes Page-Fault in Win98ID: Q186778
|
Under Windows 98, Windows 95 OSR2.1, and Windows 95 OSR 2.5, when a WDM driver initializes and queues a DPC and then re-initializes and re-queues the same DPC before it has been removed from the queue, a page-fault occurs.
The Windows 95 and Windows 98 DPC queuing mechanism does not check if a DPC being added to the DPC queue already exists in the queue. When a DPC is removed from the queue, its forward link is set to NULL. This causes a problem if the DPC that is being queued is already in the queue, because it breaks the DPC linked list and causes a page-fault when VMM attempts to dequeue the DPC after the break in the list.
Any WDM driver running under Windows 98 or Windows 95 must ensure that it never re-inserts a DPC into the DPC queue that is already in the queue.
Additional query words: kbDSupport kbdsh kbNoKeyword DPC KeInsertQueueDpc KeInitializeDpc
Keywords :
Version : WINDOWS:4.0,5.0
Platform : WINDOWS
Issue type : kbprb
Last Reviewed: March 4, 1999