NdisMRegisterInterruptEx-Funktion (ndis.h)
NDIS-Miniporttreiber rufen die NdisMRegisterInterruptEx-Funktion auf, um einen Interrupt zu registrieren.
Syntax
NDIS_STATUS NdisMRegisterInterruptEx(
[in] NDIS_HANDLE MiniportAdapterHandle,
[in] NDIS_HANDLE MiniportInterruptContext,
[in] PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS MiniportInterruptCharacteristics,
[out] PNDIS_HANDLE NdisInterruptHandle
);
Parameter
[in] MiniportAdapterHandle
Das Miniportadapterhandle, das NDIS an den übergeben hat MiniportInitializeEx-Funktion .
[in] MiniportInterruptContext
Ein Zeiger auf einen Block von Kontextinformationen. Der Miniporttreiber ordnet diesen Speicher zu, um Informationen zum Interrupt zu speichern. NDIS übergibt den Kontextinformationsblock in nachfolgenden Aufrufen an andere Funktionen, die dem Interrupt zugeordnet sind.
[in] MiniportInterruptCharacteristics
Ein Zeiger auf eine NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS Struktur, die vom Miniporttreiber erstellt wurde. Der Treiber initialisiert diese Struktur mit Handlereinstiegspunkten und Konfigurationsparametern, die die Interruptmerkmale definieren.
[out] NdisInterruptHandle
Ein Zeiger auf ein NDIS-Handle. NDIS schreibt das Handle für das neu erstellte Interruptobjekt in die Adresse, die der NdisInterruptHandle-Zeiger angibt.
Rückgabewert
NdisMRegisterInterruptEx kann einen der folgenden Werte zurückgeben:
Rückgabecode | Beschreibung |
---|---|
|
NDIS hat das Interruptobjekt initialisiert und ein gültiges Interrupthandle bei NdisInterruptHandle bereitgestellt. NDIS beanspruchte Hardwareressourcen und richtete die Funktionen ein, die aufgerufen werden, wenn ein Interrupt auftritt. |
|
Fehler bei NdisMRegisterInterruptEx aufgrund unzureichender Ressourcen. |
|
Der Versuch, das Interruptobjekt zu initialisieren, ist aus anderen Gründen als denen in der vorherigen Liste fehlgeschlagen. |
Hinweise
Ein Miniporttreiber muss NdisMRegisterInterruptEx über seine MiniportInitializeEx-Funktion aufrufen, wenn er eine NIC verwaltet, die Interrupts generiert.
MiniportInitializeEx muss aufrufen NdisMSetMiniportAttributes-Funktion vor dem Aufruf von NdisMRegisterInterruptEx.
Der Miniporttreiber muss Einstiegspunkte für die folgenden Interruptdienstfunktionen angeben:
MiniportDisableInterruptExWenn die NIC MSI (Message-Signaled Interrupts) unterstützt, sollte der Miniporttreiber Einstiegspunkte für die folgenden MSI-Dienstfunktionen angeben:
MiniportMessageInterruptDPC MiniportDisableMessageInterrupt MiniportEnableMessageInterruptWenn ein Treiber Einstiegspunkte für MSI angibt, muss er auch Einstiegspunkte für die Nicht-MSI-Interruptdienstfunktionen angeben. Wenn NdisMRegisterInterruptEx NDIS_STATUS_SUCCESS zurückgibt, muss der Treiber außerdem den Wert des InterruptType-Elements des NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS Struktur, um den Typ der NDIS gewährten Interrupts zu bestimmen. Wenn NDIS keine MSI-Unterstützung gewähren kann, wird unterstützung für leitungsbasierte Interrupts gewährt.
Wenn Interrupts auf der NIC aktiviert sind, kann die MiniportInterrupt(oder MiniportMessageInterrupt)-Funktion eines Treibers jederzeit aufgerufen werden, nachdem der Treiber NdisMRegisterInterruptEx aufgerufen hat, auch bevor NdisMRegisterInterruptEx zurückgegeben wird. Daher sollte ein Treiber NdisMRegisterInterruptEx erst aufrufen, wenn er bereit ist, einen Interrupt zu verarbeiten.
Treiber rufen die NdisMDeregisterInterruptEx-Funktion zum Freigeben von Ressourcen, die zuvor NdisMRegisterInterruptEx zugeordnet wurden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt in NDIS 6.0 und höher. |
Zielplattform | Universell |
Header | ndis.h (include Ndis.h) |
Bibliothek | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | Init_DeRegisterInterrupt(ndis), Init_RegisterInterrupt(ndis), Irql_Interrupt_Function(ndis), NdisMDeregisterInterruptEx(ndis) |