NdisMSynchronizeWithInterruptEx-Funktion (ndis.h)

Miniport-Treiber rufen die NdisMSynchronizeWithInterruptEx-Funktion auf, um die Ausführung einer vom Miniport-Treiber bereitgestellten Funktion mit der MiniportInterrupt-Funktion zu synchronisieren.

Syntax

BOOLEAN NdisMSynchronizeWithInterruptEx(
  [in] NDIS_HANDLE                            NdisInterruptHandle,
  [in] ULONG                                  MessageId,
  [in] MINIPORT_SYNCHRONIZE_INTERRUPT_HANDLER SynchronizeFunction,
  [in] PVOID                                  SynchronizeFunction,
  [in] PVOID                                  SynchronizeContext
);

Parameter

[in] NdisInterruptHandle

Ein Interrupthandle, das der Miniporttreiber bei einem vorherigen Aufruf des abgerufen hat. NdisMRegisterInterruptEx-Funktion .

[in] MessageId

Ein Interrupt mit Nachrichtensignal, mit dem der Treiber synchronisiert werden muss. Wenn NDIS keine Signalunterbrechungen für die Nachricht für den Treiber gewährt hat, ignoriert NDIS diesen Parameter. MessageId ist ein Index für die IO_INTERRUPT_MESSAGE_INFO_ENTRY Strukturen in einem IO_INTERRUPT_MESSAGE_INFO Struktur. NDIS übergibt einen Zeiger auf die zugeordnete IO_INTERRUPT_MESSAGE_INFO-Struktur am MessageInfoTable-Member , wenn der Treiber erfolgreich für MSI mit der NdisMRegisterInterruptEx-Funktion registriert wird.

[in] SynchronizeFunction

Der Einstiegspunkt des Fahrers MiniportSynchronizeInterrupt-Funktion .

[in] SynchronizeFunction

Der Einstiegspunkt des Fahrers MiniportSynchronizeInterrupt-Funktion .

[in] SynchronizeContext

Ein Zeiger auf einen vom Miniport-Treiber bestimmten Kontextbereich, der an die MiniportSynchronizeInterrupt-Funktion unter SynchronizeContext übergeben wird.

Rückgabewert

NdisMSynchronizeWithInterruptEx gibt den booleschen Wert zurück, den MiniportSynchronizeInterrupt zurückgibt.

Hinweise

Miniport-Treiber, die einen Interrupt bei NdisMRegisterInterruptEx registrieren, verwenden NdisMSynchronizeWithInterruptEx. Der Wert, den die MiniportSynchronizeInterrupt-Funktionsrückgaben werden auch von NdisMSynchronizeWithInterruptEx zurückgegeben. Dieser weitergegebene Wert stellt dem Aufrufer status bereit.

Jede Miniporttreiberfunktion, die Ressourcen mit einer anderen Treiberfunktion teilt, die bei DIRQL ausgeführt wird, muss NdisMSynchronizeWithInterruptEx verwenden, um den Zugriff auf diese Ressourcen zu synchronisieren. Die MiniportSynchronizeInterrupt-Funktion wird auch bei DIRQL ausgeführt, und die freigegebenen Ressourcen werden durch eine systemseitig zugewiesene Spinsperre geschützt. Daher werden die freigegebenen Ressourcen durch die MiniportInterrupt-Funktion und den Aufrufer vor dem gleichzeitigen Zugriff geschützt.

NdisMSynchronizeWithInterruptEx gibt die Systemdrehsperre frei und stellt die ursprüngliche IRQL des Aufrufers wieder her, bevor die Steuerung zurückgegeben wird.

Weitere Informationen zum Abrufen und Freigeben von NDIS-Spinsperren finden Sie unter Synchronisierung und Benachrichtigung in Netzwerktreibern.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Universell
Header ndis.h (include Ndis.h, Video.h)
Bibliothek Ndis.lib
IRQL <= DIRQL
DDI-Complianceregeln NdisMDeregisterInterruptEx(ndis)

Weitere Informationen

IO_INTERRUPT_MESSAGE_INFO

IO_INTERRUPT_MESSAGE_INFO_ENTRY

MiniportInterrupt

MiniportSynchronizeInterrupt

NdisMRegisterInterruptEx