Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.