Freigeben über


IInterruptSync::CallSynchronizedRoutine-Methode (portcls.h)

Die CallSynchronizedRoutine -Methode ruft eine Routine auf, die keine Interruptdienstroutine (ISR) ist, deren Ausführung jedoch mit ISRs synchronisiert werden muss.

Syntax

NTSTATUS CallSynchronizedRoutine(
  [in] PINTERRUPTSYNCROUTINE Routine,
  [in] PVOID                 DynamicContext
);

Parameter

[in] Routine

Zeiger auf die Routine, die aufgerufen werden soll. Diese Routine wird ohne den ISR des Objekts und alle anderen Routinen ausgeführt, die über das -Objekt synchronisiert werden. Selbst auf Computern mit mehreren Prozessoren werden Routinen, die von einem bestimmten Objekt synchronisiert werden, nicht gleichzeitig ausgeführt. Dieser Parameter ist ein Funktionszeiger vom Typ PINTERRUPTSYNCROUTINE (siehe IInterruptSync).

[in] DynamicContext

Ein Kontextwert, der an die Routine übergeben werden soll.

Rückgabewert

CallSynchronizedRoutine gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich war. Andernfalls gibt die Methode einen entsprechenden Fehlercode zurück.

Hinweise

Die Ausführung einer registrierten ISR wird garantiert verhindert, bis der Aufruf der Routine, an die übergeben CallSynchronizedRoutine wird, abgeschlossen ist.

Aufrufer von CallSynchronizedRoutine müssen auf einer IRQL ausgeführt werden, die kleiner oder gleich der Ebene des Interrupts ist, die dem Synchronisierungsobjekt zugeordnet ist. Dieser Interrupt wurde durch die Parameter ResourceList und ResourceIndex der PcNewInterruptSync-Funktion angegeben.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header portcls.h (include Portcls.h)
IRQL Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.

Weitere Informationen

IInterruptSync

KeSynchronizeExecution

PcNewInterruptSync