Microsoft KB Archive/186778

{|
 * width="100%"|

PRB: Queuing a DPC Multiple Times Causes Page-Fault in Win98

 * }

Q186778

-

The information in this article applies to:


 * Microsoft Win32 Device Driver Kit (DDK) Windows 95

-

SYMPTOMS
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.

CAUSE
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.

RESOLUTION
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 :

Issue type : kbprb

Technology : kbAudDeveloper kbWin95search kbWinDDKSearch kbWin32sSearch kbWin32DDK95 kbWin32DDKSearch