KeSynchronizeExecution-Funktion (wdm.h)
Die KeSynchronizeExecution-Routine synchronisiert die Ausführung der angegebenen Routine mit der Interruptdienstroutine (ISR), die einem Satz 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 Interruptobjekten 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.
Hinweise
Wenn diese Routine aufgerufen wird, tritt Folgendes auf:
- Der IRQL wird auf den SynchronizeIrql-Wert ausgelöst, der im Aufruf von IoConnectInterrupt oder IoConnectInterruptEx angegeben ist.
- Der Zugriff auf SynchronizeContext wird mit dem zugewiesenen ISR synchronisiert, indem die zugehörige Interruptobjekt-Spinsperre (oder das Systemereignisobjekt, im Fall eines ISR, der bei PASSIVE_LEVEL ausgeführt wird) abgerufen wird.
- Die angegebene SynchCritSection-Routine wird mit dem Wert SynchronizeContext als Parameter aufgerufen.
Aufrufer von KeSynchronizeExecution müssen unter IRQL <= DIRQL ausgeführt werden, d. h. in einer IRQL, die kleiner oder gleich dem Wert des SynchronizeIrql-Werts ist, den der Aufrufer bei der Registrierung seiner ISR bei IoConnectInterrupt oder IoConnectInterruptEx angegeben hat.
Ab Windows 8 kann ein Treiber KeSynchronizeExecution aufrufen, um die Ausführung einer SynchCritSection-Routine mit einem ISR zu synchronisieren, der unter IRQL = PASSIVE_LEVEL ausgeführt wird. In früheren Versionen von Windows kann KeSynchronizeExecution die Ausführung nur mit einem ISR synchronisieren, der unter IRQL >= DISPATCH_LEVEL ausgeführt wird. Weitere Informationen finden Sie unter Verwenden Passive-Level Interruptdienstroutinen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 2000. |
Zielplattform | Universell |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DIRQL (siehe Abschnitt Hinweise) |