Freigeben über


Bereitstellen von ISR-Kontextinformationen

Beim Eintrag empfängt ein ISR einen Zeiger auf den Kontextbereich, den der Treiber beim Aufrufen von IoConnectInterruptEx zum Registrieren der Routine eingerichtet hat.

Die meisten Treiber legen den Kontextzeiger auf das Geräteobjekt fest, das das physische Gerät darstellt, das Interrupts generiert, oder auf die Geräteerweiterung dieses Geräteobjekts. In der Geräteerweiterung kann der Treiber Zustandsinformationen für die ISR- und DpcForIsr-Routine des Treibers speichern, wobei letztere in der Regel fast die gesamte E/A-Verarbeitung ausführt, um jede Anforderung zu erfüllen, die zu einer Unterbrechung des Geräts führte.

In der Regel verwenden Treiber die Geräteerweiterung, um Zeiger auf die einzelnen Interruptobjekte des Geräts zu speichern (die von Aufrufen von IoConnectInterruptEx zurückgegeben werden). Treiber speichern in der Regel auch Informationen in der Geräteerweiterung, die es einem ISR ermöglichen, zu bestimmen, ob ein Interrupt von einem gerät ausgegeben wurde, das der ISR unterstützt.

(Alternativ können Interruptobjektzeiger in einem nicht ausgelagerten Pool gespeichert werden, den der Treiber ordnet.)