Freigeben über


WDI IHV-Treiberschnittstellen

Der WDI IHV-Miniport ist wie jeder andere NDIS-Miniporttreiber und würde den Entwicklungsmethoden und der Dokumentation für jeden NDIS-Miniport folgen. Die Verantwortlichkeiten eines nativen WLAN Miniport-Treibers für die NDIS-Handler werden zwischen der MS-Komponente und dem WDI IHV-Treiber aufgeteilt. Die Microsoft WLAN-Komponente kümmert sich um die NDIS-Anforderungen, die für alle Wi-Fi Miniports gelten, sodass nicht jeder IHV alles wiederholen muss, was funktioniert. Die Zuordnung und Verhaltensänderungen für die NDIS-Handler für den nativen WLAN-IHV-Miniport, wenn sie auf einen WDI IHV-Miniport angewendet werden, werden unten beschrieben.

Treiberinstallation

Es gibt keine Änderungen an der Art und Weise, wie der WDI IHV-Miniporttreiber geladen und auf dem System installiert wird. Der INF- und Installationsvorgang ähnelt dem eines IHV Native WLAN-Miniporttreibers. Wenn der IHV-Treiber geladen werden muss, um mit dem WLAN-Adapter des IHV zu arbeiten, ruft das Betriebssystem wie bei vorhandenen NDIS-Treibern die DriverEntry-Routine des IHV-Miniporttreibers auf.

DriverEntry

Das Betriebssystem ruft direkt die DriverEntry-Routine des WDI IHV-Miniporttreibers auf. Der IHV-Miniport folgt den meisten Richtlinien einer regulären DriverEntry-Routine des NDIS-Miniports. Die einzige Ausnahme besteht darin, dass der IHV-Miniport NdisMRegisterWdiMiniportDriver aufruft, anstatt NdisMRegisterWdiMiniportDriver aufzurufen, um das Betriebssystem anzufordern, die Microsoft WLAN-Komponente zu aktivieren.

Im Folgenden sind die wichtigsten Parameter von NdisMRegisterWdiMiniportDriver aufgeführt.

  • NDIS_MINIPORT_DRIVER_CHARACTERISTICS: Dies ist die ursprüngliche NDIS-Struktur, die ein nativer Wi-Fi Miniport verwendet, um sich bei NDIS zu registrieren. Für ein WDI-Modell sind die meisten Handlerparameter optional. Die einzigen erforderlichen Handler sind MINIPORT_OID_REQUEST_HANDLER und MINIPORT_DRIVER_UNLOAD. MINIPORT_OID_REQUEST_HANDLER wird verwendet, um WDI-Nachrichten an den IHV-Treiber zu übergeben. Wenn ein anderer Handler angegeben wird, ruft die Microsoft WLAN-Komponente den Handler im Allgemeinen auf, nachdem sie eine eigene Verarbeitung für den Handler ausgeführt hat.
  • NDIS_MINIPORT_DRIVER_WDI_CHARACTERISTICS: Dies ist der neue Satz von Handlern, den ein WDI-Miniporttreiber implementieren muss. Er wird vom IHV-Treiber verwendet, um zusätzliche Handler für den Steuerungspfad und den vollständigen Satz von Handlern für den Datenpfad zu registrieren.

Wenn der IHV-Miniport NdisMRegisterWdiMiniportDriver aufruft, aktualisiert die Microsoft WLAN-Komponente die Handler von NDIS_MINIPORT_DRIVER_CHARACTERISTICS und ruft den NdisMRegisterMiniportDriver von NDIS auf. Die Updates werden durchgeführt, damit die Microsoft WLAN-Komponente die Handler abfangen kann, für die sie Unterstützung/Vereinfachung für den WDI IHV-Miniporttreiber bereitstellen kann.

Unten sehen Sie den typischen Ablauf des DriverEntry-Prozesses für den WDI IHV-Miniporttreiber.

wdi driverentry flow.

Weitere Informationen zu DriverEntry finden Sie unter DriverEntry of NDIS Miniport Drivers.

MiniportSetOptions

Wie im obigen DriverEntry-Diagramm gezeigt, ruft das Betriebssystem, wenn der WDI IHV-Miniport den MiniportSetOptions-Handler registriert hat, diese Funktion im Kontext des Miniporttreibers auf, der NdisMRegisterWdiMiniportDriver aufruft.

Wenn der IHV-Miniporttreiber Optionshandler mithilfe von NdisSetOptionalHandlers registriert, werden diese Handler möglicherweise nicht über die WDI-Ebene von der Microsoft-Komponente serialisiert. Daher ist die IHV-Komponente für die Verarbeitung aller Synchronisierungsanforderungen für diese Handler verantwortlich.

MiniportInitializeEx

Das WDI-Modell teilt das MiniportInitializeEx-Verhalten in mehrere WDI-Schnittstellenaufrufe auf.

  1. Rufen Sie MiniportWdiAllocateAdapter auf.

    Wenn das Betriebssystem eine instance der IHV-Hardware findet, ist dies der erste Aufruf des WDI IHV-Miniporttreibers. In diesem Aufruf führt der WDI-Miniport die Aktionen aus, die zum Erstellen einer Softwaredarstellung (MiniportAdapterContext) des Geräts erforderlich sind. Außerdem werden Informationen über das Gerät bestimmt, das die NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES-Struktur ausfüllen soll. Die tatsächliche Initialisierung des Geräts und des Wi-Fi Stapels erfolgt später, wenn die Microsoft-Komponente WDI-Befehle nach unten sendet, um bestimmte Initialisierungen auszuführen.

    Mithilfe von Daten, die vom WDI IHV-Miniporttreiber abgerufen werden, ruft die Microsoft-Komponente NdisMSetMiniportAttributes auf und legt die NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES für NDIS fest. Die meisten Felder von NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES werden von der Microsoft-Komponente mit Standardwerten gefüllt. Der IHV-Treiber muss die Felder MiniportAdapterContext und InterfaceType auffüllen.

    Sobald dieser Aufruf vom IHV-Miniporttreiber zurückgegeben wird, empfängt er WDI-Befehle über seinen MiniportOidRequest-Handler . Während dieses Aufrufs kann die Microsoft-Komponente möglicherweise keine Zurücksetzungs-/Wiederherstellungsvorgänge ausführen, sodass alle hier ausgeführten Aktivitäten schnell und zuverlässig sein sollten.

  2. Rufen Sie MiniportWdiOpenAdapter auf.

    Nach MiniportWdiAllocateAdapter ruft die Microsoft-Komponente MiniportWdiOpenAdapter auf, um die Firmware zu laden und die Hardware zu initialisieren.

  3. Mehrere WDI-Befehle mit MiniportOidRequest.

    Nach MiniportWdiOpenAdapter sendet die Microsoft-Komponente die folgenden Aufgaben/Eigenschaften/Aufrufe an den IHV-Miniport.

    1. Rufen Sie MiniportWdiTalTxRxInitialize auf, um den Datenpfad und die Austauschhandler zu initialisieren.
    2. Rufen Sie OID_WDI_GET_ADAPTER_CAPABILITIES auf, um die Funktionen des Adapters abzurufen.
    3. Rufen Sie OID_WDI_SET_ADAPTER_CONFIGURATION auf, um den Adapter zu konfigurieren.
    4. Rufen Sie OID_WDI_TASK_SET_RADIO_STATE auf, um den anfänglichen Funkzustand festzulegen, wenn er sich noch nicht im erwarteten Zustand befindet.
    5. Rufen Sie MiniportWdiTalTxRxStart auf, um den Datenpfad einzurichten.
    6. Rufen Sie OID_WDI_TASK_CREATE_PORT auf, um den anfänglichen Port zu erstellen.

    Andere Befehle können auch im Rahmen der MiniportInitializeEx-Verarbeitung der Microsoft-Komponente an die IHV-Komponente gesendet werden. Bis miniportWdiStartOperation aufgerufen wird, sendet die Microsoft-Komponente jedoch keine Aufgaben nach unten, die eine Over-the-Air-Kommunikation erfordern. Mit Ausnahme von OID_WDI_TASK_OPEN , die immer zuerst gesendet werden, kann sich die Reihenfolge der anderen Befehle/Aufrufe ändern.

    Mithilfe von Daten, die vom WDI IHV-Miniporttreiber abgerufen werden, ruft die Microsoft-Komponente NdisMSetMiniportAttributes auf und legt NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES und NDIS_MINIPORT_ADAPTER_NATIVE_802_11_ATTRIBUTES für NDIS fest.

  4. Rufen Sie MiniportWdiStartOperation auf.

    Dies ist ein optionaler WDI-Miniporthandler innerhalb NDIS_MINIPORT_DRIVER_WDI_CHARACTERISTICS , den der IHV-Treiber zum Ausführen zusätzlicher MiniportInitializeEx-Aufgaben verwenden kann. Er kann auch vom IHV-Miniport als Hinweis verwendet werden, dass die Microsoft-Komponente die Initialisierung des Miniports abgeschlossen hat und der Miniport alle erforderlichen Hintergrundaktivitäten starten kann.

    Das folgende Diagramm zeigt den Ablauf von MiniportInitializeEx.

    wdi Miniport-Initialisierungsflow.

    Wenn ein zwischengeschalteter Vorgang fehlschlägt, hebt die Microsoft-Komponente die vorherigen Vorgänge auf und schlägt den Miniport-Start fehl. Wenn beispielsweise OID_WDI_TASK_CREATE_PORT fehlschlägt, wird der Datenpfad bereinigt, OID_WDI_TASK_CLOSE gesendet, und der Miniport schlägt fehl.

MiniportHaltEx

In einem nativen Wi-Fi Miniport wird MiniportHaltEx verwendet, um den Miniport anweisen, Vorgänge zu beenden und den Adapter instance sauber. Im WDI-Modell verarbeitet die Microsoft-Komponente den ursprünglichen MiniportHaltEx-Aufruf und teilt ihn in mehrere WDI-Schnittstellenaufrufe auf.

  1. Rufen Sie MiniportWdiStopOperation auf.

    Dies ist ein optionaler WDI-Miniporthandler innerhalb NDIS_MINIPORT_DRIVER_WDI_CHARACTERISTICS , den der IHV-Treiber verwenden kann, um die in MiniportWdiStartOperation ausgeführten Vorgänge rückgängig zu machen.

  2. Mehrere WDI-Befehle mit MiniportOidRequest.

    Nach MiniportWdiStopOperation sendet die Microsoft-Komponente Aufgaben/Eigenschaften an den IHV-Miniport, um den aktuellen Zustand des IHV-Treibers zu sauber. Diese Bereinigung kann Folgendes umfassen.

    1. Rufen Sie OID_WDI_TASK_DISCONNECT/OID_WDI_TASK_STOP_AP auf, um alle vorhandenen Verbindungen aufzurufen.
    2. Rufen Sie OID_WDI_TASK_DELETE_PORT auf, um alle erstellten Ports zu löschen.
    3. Rufen Sie MiniportWdiTalTxRxStop auf, um den Datenpfad zu beenden.
    4. Rufen Sie MiniportWdiTalTxRxDeinitialize auf, um den Datenpfad zu deinitialisieren.
    5. Rufen Sie auf, um den Hardwarezustand sauber. Dieser wird mithilfe des vom IHV-Treiber registrierten MiniportWdiCloseAdapters an die IHV gesendet.
  3. Nachdem alle oben genannten Befehle aufgerufen wurden, ruft die Microsoft-Komponente MiniportWdiFreeAdapter auf, damit der IHV-Treiber alle Softwarezustände löschen kann.

Das folgende Diagramm zeigt den Ablauf von MiniportHaltEx.

wdi miniport halt flow.

Die MiniportHaltEx-Verarbeitung wird nicht ausgeführt, wenn das Gerät überraschend entfernt wird oder das System ausgeschaltet wird. Informationen zum Entfernen von Überraschungen finden Sie unter MiniportDevicePnPEventNotify-Handlerverhalten . Informationen zum Herunterfahren des Systems finden Sie unter MiniportShutdownEx-Handlerverhalten .

MiniportDriverUnload

MiniportDriverUnload ist der Handler, der aufgerufen wird, bevor der WDI IHV-Miniport entladen wird. Der WDI IHV-Miniporttreiber ruft die Microsoft-Komponente auf, um die Registrierung selbst aufzuheben. Die Microsoft-Komponente ruft NdisMDeregisterMiniportDriver auf.

Das folgende Diagramm zeigt den Ablauf von MiniportDriverUnload.

wdi miniport driver unload flow.wdi miniport driver unload flow.

MiniportPause

Die NDIS MiniportPause-Anforderungen werden von der Microsoft-Komponente verarbeitet. Im Rahmen von MiniportPause beendet die Microsoft-Komponente den Datenpfad und wartet darauf, dass er sauber. Der WDI IHV-Miniport kann optional für einen MiniportWdiPostAdapterPause-Rückruf registriert werden, der von der Microsoft-Komponente aufgerufen wird, nachdem die Datenpfadbereinigung abgeschlossen ist.

Das folgende Diagramm zeigt den Ablauf von MiniportPause.

wdi miniport pause flow.

MiniportRestart

Die NDIS MiniportRestart-Anforderungen werden von der Microsoft-Komponente verarbeitet. Im Rahmen von MiniportRestart hebt die Microsoft-Komponente die Arbeit zum Anhalten des Datenpfads auf, die sie im Rahmen von MiniportPause ausgeführt hat. Der WDI IHV-Miniport kann optional für einen MiniportWdiPostAdapterRestart-Rückruf registriert werden, der von der Microsoft-Komponente aufgerufen wird, nachdem der Neustart des Datenpfads abgeschlossen ist.

Das folgende Diagramm zeigt den Ablauf von MiniportRestart.

wdi Miniport-Neustartflow.

MiniportResetEx

MiniportResetEx wird nicht von der Microsoft-Komponente verarbeitet. Der WDI IHV-Miniport kann optional für einen MiniportResetEx-Rückruf registriert werden, der von der Microsoft-Komponente aufgerufen wird.

MiniportDevicePnPEventNotify

MiniportDevicePnPEventNotify wird verwendet, um einen NDIS-Treiber über PNP-Ereignisse wie die überraschende Entfernung eines Geräts zu benachrichtigen. Wenn NDIS diese Benachrichtigung sendet, wird sie zunächst zur Verarbeitung an den WDI IHV-Miniport weitergeleitet. Nachdem die IHV-Komponente die Verarbeitung abgeschlossen hat, führt die Microsoft-Komponente die entsprechende Verarbeitung für dieses Ereignis aus. Der Aufruf, der an die IHV-Komponente weitergeleitet wird, wird nicht mit anderen Aufgaben und Rückrufen serialisiert.

Das folgende Diagramm zeigt den Ablauf von MiniportDevicePnPEventNotify.

wdi miniport drive pnp notification flow.

MiniportShutdownEx

MiniportShutdownEx wird verwendet, um einen NDIS-Treiber über Ereignisse zum Herunterfahren des Systems zu benachrichtigen. Wenn NDIS diese Benachrichtigung sendet, wird sie zuerst von der Microsoft-Komponente verarbeitet. Nachdem die Microsoft-Komponente die Verarbeitung abgeschlossen hat, übergibt sie das Ereignis zur Verarbeitung an den WDI IHV-Miniport.

Das folgende Diagramm zeigt den Ablauf von MiniportShutdownEx.

Ablauf zum Herunterfahren des wdi-Miniports.

MiniportOidRequest

Der MiniportOidRequest-Handler ist ein erforderlicher Handler, den der WDI IHV-Miniport implementieren muss. Es wird von der Microsoft-Komponente verwendet, um WDI-Befehle an den IHV-Miniport zu übermitteln. Es wird auch verwendet, um OIDs, die die Microsoft-Komponente nicht verarbeitet, an den IHV-Miniport weiterzuleiten.

Der MiniportOidRequest-Aufruf im WDI-IHV-Miniport sollte als M1-Nachricht für einen WDI-Befehl betrachtet werden. Der Abschluss der OID (entweder über NdisMOidRequestComplete oder über eine Rückgabe ohne PENDING von MiniportOidRequest) sollte als M3-Nachricht für eine WDI-Aufgabe bzw. einen WDI-Befehl betrachtet werden.

Für jeden WDI-Befehl gibt es zwei potenzielle Felder, in denen ein NDIS_STATUS Code für den Vorgang zurückgegeben werden kann: der status Code aus dem MiniportOidRequest-Aufruf (oder NdisMOidRequestComplete) und der status Code im feld WDI_MESSAGE_HEADER (entweder bei der OID-Vervollständigung oder über NdisMIndicateStatusEx). Die Microsoft-Komponente betrachtet immer die NDIS_STATUS aus der OID-Vervollständigung, bevor sie das Feld WDI_MESSAGE_HEADERStatus . Die Erwartungen der IHV-Komponente an die WDI-OID-Verarbeitung sind wie folgt:

  1. WDI-OIDs werden mithilfe eines NDIS_OID_REQUESTRequestType von NdisRequestMethod an die IHV-Komponente übermittelt, und die entsprechende Nachrichten- und Nachrichtenlänge befinden sich in data . METHOD_INFORMATION. InformationBuffer und DATA. METHOD_INFORMATION. InputBufferLength-Felder .
  2. Die IHV-Komponente meldet einen Fehler in der OID-Vervollständigung, wenn bei der Verarbeitung des Befehls ein Fehler auftritt, und legt das Feld Status der WDI_MESSAGE_HEADER auf "Nicht erfolgreich" fest, wenn ein Fehler auf Wi-Fi Ebene auftritt.
  3. Für Aufgaben und Eigenschaften befindet sich die Portnummer für die Anforderung im Feld WDI_MESSAGE_HEADERPortId . Die PortNummer im NDIS_OID_REQUEST ist immer auf 0 festgelegt.
  4. Für den Abschluss der OID ist es akzeptabel, dass MiniportOidRequest NDIS_STATUS_PENDING zurückgibt und die OID später (synchron oder asynchron) mit NdisMOidRequestComplete abschließt.
  5. Wenn die IHV-Komponente die OID mit NDIS_STATUS_SUCCESS abschließt, muss sie das BytesWritten-Feld der OID-Anforderung mit der entsprechenden Anzahl von Bytes auffüllen, einschließlich des Speicherplatzes für die WDI_MESSAGE_HEADER.
  6. Wenn die IHV-Komponente nicht über genügend Speicherplatz in data verfügt. METHOD_INFORMATION. Das OutputBufferLength-Feld zum Ausfüllen der Antwort schließt die OID mit NDIS_STATUS_BUFFER_TOO_SHORT ab und füllt die DATEN auf. METHOD_INFORMATION. BytesNeeded-Feld . Die Microsoft-Komponente versucht möglicherweise, einen Puffer der angeforderten Größe zuzuweisen und eine neue Anforderung an die IHV zu übermitteln.
  7. Wenn es sich um eine Aufgabe handelt, darf der M4 (NdisMIndicateStatusEx) des Vorgangs nur angegeben werden, wenn der Vorgang als erfolgreich gestartet gemeldet wurde. Der OID-Abschluss ist erfolgreich und der Status im WDI_MESSAGE_HEADER in OID-Abschluss war erfolgreich.

Das folgende Diagramm zeigt ein Beispiel für eine NDIS-OID-Anforderung, die einem einzelnen WDI-Befehl zugeordnet ist. Wenn die OID-Anforderung vom Betriebssystem übermittelt wird, konvertiert die Microsoft-Komponente sie in eine WDI-OID-Anforderung und übermittelt die WDI-OID-Anforderung an den IHV-Miniport. Wenn der IHV-Miniport die OID abgeschlossen hat, schließt die Microsoft-Komponente die ursprüngliche OID-Anforderung ordnungsgemäß ab.

wdi miniport oid request sequence for single wdi command.

Wenn die OriginalOidRequest mehreren WDI-OidRequests zugeordnet ist und eine der WDI-Anforderungen fehlschlägt, schlägt auch die OriginalOidRequest fehl. Wenn eine Teilmenge der Zwischenvorgänge bereits abgeschlossen ist, versucht die Microsoft-Komponente, die Vorgänge rückgängig zu machen, die sauber unterstützen.

Das folgende Diagramm zeigt ein Beispiel für eine NDIS-OID-Anforderung, die von der Microsoft-Komponente verarbeitet wird. Wenn die OID-Anforderung vom Betriebssystem übermittelt wird, verarbeitet und schließt die Microsoft-Komponente die OID ab. Diese OID wird nicht an den WDI IHV-Miniport übergeben.

wdi miniport oid request sequence for oids, die von der Microsoft-Komponente behandelt werden.

OIDs, die von der Microsoft-Komponente nicht verstanden werden, werden zur Verarbeitung direkt an die IHV-Komponente weitergeleitet.

wdi miniport oid request sequence for oids not handled by microsoft component.

Das Verhalten von MiniportOidRequest ist für den WDI IHV-Miniporttreiber unverändert (im Vergleich zu einem nativen Wi-Fi Miniport). Die Aufrufe werden serialisiert, und der IHV-Miniport kann ihn entweder synchron oder asynchron mit einem Aufruf von NdisMOidRequestComplete abschließen.

MiniportCancelOidRequest

Dies ist ein optionaler Handler, der von einem WDI-IHV-Miniport verwendet wird, der OIDs verarbeiten muss, die nicht WDI-Nachrichten zugeordnet sind. Dieser Handler wird für keine WDI-OIDs verwendet. WDI-OIDs müssen schnell abgeschlossen werden, und der IHV-Miniporttreiber muss nicht versuchen, eine ausstehende OID abzubrechen. Der Abbruch von WDI-Aufgaben wird mithilfe der entsprechenden OID-Anforderung für den Abbruchtask verarbeitet. Für nicht zugeordnete OIDs wird das erwartete Verhalten durch NDIS definiert.

NdisMIndicateStatusEx

NdisMIndicateStatusEx wird vom WDI IHV-Miniport verwendet, um Hinweise an die Microsoft-Komponente zu senden. Die Hinweise können unaufgefragte Hinweise wie TKIP MIC-Fehler oder angeforderte Hinweise für die Fertigstellung (M4) für eine Aufgabe sein.

Das folgende Diagramm zeigt ein Beispiel für eine WDI-Anzeige, die über eine entsprechende NDIS/Native Wi-Fi-Angabe verfügt. Wenn die Angabe vom IHV-Miniport an die Microsoft-Komponente übermittelt wird, konvertiert die Microsoft-Komponente sie in eine vorhandene Angabe und leitet sie an das Betriebssystem weiter.

wdi miniport status anzeigefluss.

Das folgende Diagramm zeigt ein Beispiel für eine WDI-Angabe, die keine entsprechende NDIS/Native Wi-Fi-Angabe aufweist. Dies wird von der Microsoft-Komponente behandelt.

wdi status Angabe ohne direkte Zuordnung zu ndis.

Das folgende Diagramm zeigt einen Hinweis, der von der Microsoft-Komponente nicht erkannt wird. Die Angabe wird unverändert an das Betriebssystem weitergeleitet.

wdi status Angabe, die von der Microsoft-Komponente nicht erkannt wird.

Das Verhalten von NdisMIndicateStatusEx ist für den WDI IHV-Miniporttreiber unverändert (im Vergleich zu einem nativen Wi-Fi Miniport).

MiniportDirectOidRequest

Dies ist ein optionaler Handler, der von einem WDI IHV-Miniporttreiber registriert wird, wenn er Direct OIDs verarbeiten muss, die nicht WDI-Nachrichten zugeordnet sind. Alle vorhandenen direct OIDs für Wi-Fi Direct werden WDI-Nachrichten zugeordnet, sodass dieser Handler nicht erforderlich ist, um diese Funktionalität zu unterstützen. Nicht unterstützte direkte OIDs werden von der Microsoft-Komponente nicht serialisiert.

MiniportCancelDirectOidRequest

Dies ist ein optionaler Handler, der von einem WDI IHV-Miniport verwendet wird, der Direct OIDs verarbeiten muss, die nicht WDI-Nachrichten zugeordnet sind. Für nicht zugeordnete OIDs wird das erwartete Verhalten durch NDIS definiert.

MiniportSendNetBufferLists

Dieser Handler wird nicht in einem WDI IHV-Miniporttreiber verwendet und sollte nicht bereitgestellt werden. Die Microsoft-Komponente verwendet die Datenpfadhandler, die über NDIS_MINIPORT_DRIVER_WDI_CHARACTERISTICS registriert sind, um Sendepakete an den IHV-Miniport zu senden.

MiniportCancelSend

Dieser Handler wird nicht in einem WDI IHV-Miniporttreiber verwendet und sollte nicht bereitgestellt werden.

MiniportReturnNetBufferLists

Dieser Handler wird nicht in einem WDI IHV Miniport-Treiber verwendet und sollte nicht bereitgestellt werden. Die Microsoft-Komponente verwendet die über NDIS_MINIPORT_DRIVER_WDI_CHARACTERISTICS registrierten Datenpfadhandler, um empfangene Pakete an den IHV-Miniport zurückzugeben.

WDI-Handler: MiniportWdiOpenAdapter

Der MiniportWdiOpenAdapter-Handler wird von der Microsoft-Komponente verwendet, um den Vorgang "Aufgabe öffnen" für den IHV-Treiber zu initiieren. Dieser Aufruf muss schnell abgeschlossen werden. Wenn der geöffnete Vorgang erfolgreich gestartet wurde, muss der IHV NDIS_STATUS_SUCCESS für diesen Aufruf zurückgeben und den OpenAdapterComplete-Handler aufrufen, der an den NDIS_WDI_INIT_PARAMETERS-Parameter von MiniportWdiAllocateAdapter übergeben wird.

WDI-Handler: MiniportWdiCloseAdapter

Der MiniportWdiCloseAdapter-Handler wird von der Microsoft-Komponente verwendet, um den Vorgang "Task schließen" für den IHV-Treiber zu initiieren. Dieser Aufruf muss schnell abgeschlossen werden. Wenn der geöffnete Vorgang erfolgreich gestartet wurde, muss der IHV NDIS_STATUS_SUCCESS für diesen Aufruf zurückgeben und den CloseAdapterComplete-Handler aufrufen, der an den NDIS_WDI_INIT_PARAMETERS-Parameter des MiniportWdiAllocateAdapter übergeben wird.