Einführung in DPC-Objekte

Da ISRs so schnell wie möglich ausgeführt werden müssen, müssen Treiber in der Regel den Abschluss der Wartung eines Interrupts aufschieben, bis der ISR zurückgegeben wird. Daher bietet das System Unterstützung für verzögerte Prozeduraufrufe (DPCs), die aus ISRs in die Warteschlange gestellt werden können und zu einem späteren Zeitpunkt und zu einem niedrigeren IRQL als die ISR ausgeführt werden.

Jedem DPC ist ein systemdefiniertes DPC-Objekt zugeordnet. Das System stellt für jedes Geräteobjekt ein DPC-Objekt bereit. Das System initialisiert dieses DPC-Objekt, wenn ein Treiber eine DPC-Routine registriert, die als DpcForIsr-Routine bezeichnet wird. Ein Treiber kann zusätzliche DPC-Objekte erstellen, wenn mehrere DPC benötigt werden. Diese zusätzlichen DPCs werden als CustomDpc-Routinen bezeichnet.

DPC-Objektinhalte sollten nicht direkt von Treibern referenziert werden. Die Struktur des Objekts ist nicht dokumentiert. Treiber haben keinen Zugriff auf das vom System bereitgestellte DPC-Objekt, das jedem Geräteobjekt zugewiesen ist. Treiber weisen Speicher für zusätzliche DPCs zu, aber der Inhalt dieser DPC-Objekte sollte nur von Systemroutinen referenziert werden.

DPC-Objekte und DPCs können auch mit Timern verwendet werden. Weitere Informationen finden Sie unter Timer-Objekte und DPCs.