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.
Die KeSynchronizeExecution Routine synchronisiert die Ausführung der angegebenen Routine mit der Unterbrechungsdienstroutine (Interrupt Service Routine, ISR), die einer Gruppe von mindestens einem Interruptobjekt zugewiesen ist.
Syntax
BOOLEAN KeSynchronizeExecution(
[in, out] PKINTERRUPT Interrupt,
[in] PKSYNCHRONIZE_ROUTINE SynchronizeRoutine,
[in, optional] __drv_aliasesMem PVOID SynchronizeContext
);
Parameter
[in, out] Interrupt
Ein Zeiger auf eine Gruppe von Interruptobjekten. Der Aufrufer hat diesen Zeiger aus der IoConnectInterrupt oder IoConnectInterruptEx Routine abgerufen.
[in] SynchronizeRoutine
Gibt eine vom Aufrufer bereitgestellte SynchCritSection Routine an, deren Ausführung mit der Ausführung des ISR synchronisiert werden soll, der den Unterbrechungsobjekten zugewiesen ist.
[in, optional] SynchronizeContext
Ein Zeiger auf einen vom Aufrufer bereitgestellten Kontextwert, der beim Aufruf an die SynchCritSection-Routine übergeben werden soll.
Rückgabewert
KeSynchronizeExecution- gibt TRUE- zurück, wenn der Vorgang erfolgreich ist. Andernfalls wird FALSE-zurückgegeben.
Bemerkungen
Wenn diese Routine aufgerufen wird, tritt Folgendes auf:
- Die IRQL wird auf den im Aufruf IoConnectInterrupt oder IoConnectInterruptExangegebenen SynchronizeIrql-Wert ausgelöst.
- Der Zugriff auf SynchronizeContext- wird mit dem zugewiesenen ISR synchronisiert, indem die zugeordnete Unterbrechungsobjekt-Drehungssperre abgerufen wird (oder bei einem ISR, der bei PASSIVE_LEVEL ausgeführt wird).
- Die angegebene SynchCritSection- Routine wird mit dem SynchronizeContext Wert als Parameter aufgerufen.
Aufrufer von KeSynchronizeExecution- müssen bei IRQL-<= DIRQL ausgeführt werden; d. h. bei einem IRQL, der kleiner oder gleich dem Wert des SynchronizeIrql- werts ist, den der Aufrufer beim Registrieren seines ISR mit IoConnectInterrupt oder IoConnectInterruptExangegeben hat.
Ab Windows 8 kann ein Treiber KeSynchronizeExecution- aufrufen, um die Ausführung einer SynchCritSection-Routine mit einem ISR zu synchronisieren, der bei IRQL = PASSIVE_LEVEL ausgeführt wird. In früheren Versionen von Windows kann KeSynchronizeExecution- die Ausführung nur mit einem ISR synchronisieren, der bei IRQL >= DISPATCH_LEVEL ausgeführt wird. Weitere Informationen finden Sie unter Using Passive-Level Interrupt Service Routines.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Ab Windows 2000 verfügbar. |
Zielplattform- | Universal |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= DIRQL (siehe Abschnitt "Hinweise") |