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) |