Freigeben über


Schreiben von SynchCritSection-Routinen

Treiber verwenden ihre SynchCritSection-Routinen für zwei grundlegende Zwecke:

Programmieren eines Geräts für einen E/A-Vorgang

Zugreifen auf Freigegebene Zustandsinformationen

Wie bei einer ISR muss eine SynchCritSection-Routine so schnell wie möglich ausgeführt werden und nur das tun, was zum Einrichten von Geräteregistern oder aktualisieren von Kontextdaten erforderlich ist, bevor sie zurückgegeben wird.

Da KeSynchronizeExecution die Interrupt-Spinsperre eines Gerätetreibers während der Ausführung der SynchCritSection-Routine enthält, kann die ISR des Treibers erst ausgeführt werden, wenn die SynchCritSection-Routine die Steuerung zurückgibt.

Für alle empfangenen IRP sollte ein Gerätetreiber so viel E/A-Verarbeitung wie möglich ausführen, entweder am IRQL PASSIVE_LEVEL in seinen Dispatchroutinen (oder möglicherweise gerätededizierten Threads) oder bei IRQL DISPATCH_LEVEL in seinen StartIo-Routinen und DPC-Routinen.

Weitere Informationen zur Synchronisierung kritischer Abschnitte finden Sie unter Verwenden von Drehsperren: Ein Beispiel.