Freigeben über


WDI IHV-Treiberschnittstellen

Der WDI IHV Miniport ist wie jeder andere NDIS Miniport-Treiber und würde die Entwicklungsmethoden und Dokumentationen für jeden NDIS-Miniport befolgen. 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, damit jeder IHV diese Arbeit nicht wiederholen muss. Die Zuordnung und das geänderte Verhalten der NDIS-Handler für den Native WLAN IHV-Miniport bei Anwendung auf einen WDI IHV-Miniport werden im Folgenden beschrieben.

Driver installation

Es gibt keine Änderungen an der Art und Weise, wie der WDI IHV Miniport-Treiber geladen und auf dem System installiert wird. Der INF- und Installationsprozess ähnelt dem eines IHV Native WLAN Miniport-Treibers. Wie bei bestehenden NDIS-Treibern ruft das Betriebssystem die DriverEntry-Routine des IHV-Miniport-Treibers auf, wenn der IHV-Treiber geladen werden muss, um mit dem WLAN-Adapter von IHV zu arbeiten.

DriverEntry

Das Betriebssystem ruft die DriverEntry-Routine des WDI IHV-Miniporttreibers direkt auf. Der IHV-Miniport folgt den meisten Richtlinien der DriverEntry-Routine eines regulären NDIS-Miniports. Die einzige Ausnahme besteht darin, dass der IHV-Miniport, anstatt NdisMRegisterMiniportDriveraufzurufen, stattdessen NdisMRegisterWdiMiniportDriver aufruft, um dem Betriebssystem mitzuteilen, dass die Microsoft WLAN-Komponente aktiviert wird.

Im Folgenden sind die wichtigsten Parameter von NdisMRegisterWdiMiniportDriveraufgeführt.

  • NDIS_MINIPORT_DRIVER_CHARACTERISTICS: Dies ist die ursprüngliche NDIS-Struktur, die ein Native Wi-Fi-Miniport verwendet, um sich bei NDIS zu registrieren. Bei einem 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 ist, ruft die Microsoft WLAN-Komponente den Handler im Allgemeinen auf, nachdem er eine eigene Verarbeitung für den Handler ausgeführt hat.
  • NDIS_MINIPORT_DRIVER_WDI_CHARACTERISTICS: Dies ist der neue Satz von Handlern, die ein WDI-Miniporttreiber implementieren muss. Es wird vom IHV-Treiber verwendet, um zusätzliche Handler für den Steuerpfad und den umfassenden 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 die NDIS-Funktion NdisMRegisterMiniportDriverauf. Die Aktualisierungen werden vorgenommen, damit die Microsoft WLAN-Komponente die Handler abfangen kann, für die sie dem WDI IHV-Miniport-Treiber Unterstützung/Vereinfachung bieten kann.

Unten sehen Sie den typischen Fluss des DriverEntry-Prozesses für den WDI IHV Miniport-Treiber.

wdi DriverEntry-Ablauf.

Weitere Informationen zu DriverEntry finden Sie unter DriverEntry von 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 Miniport-Treibers mit NdisMRegisterWdiMiniportDriverauf.

Wenn der IHV-Miniport-Treiber Optionshandler mit NdisSetOptionalHandlersregistriert, werden diese Handler von der Microsoft-Komponente möglicherweise nicht über die WDI-Schicht serialisiert. Daher ist die IHV-Komponente für die Behandlung aller Synchronisierungsanforderungen für diese Handler verantwortlich.

MiniportInitializeEx

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

  1. Call MiniportWdiAllocateAdapter.

    Wenn das Betriebssystem eine Instanz 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 ermittelt, die in die Struktur NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES eingetragen werden. Die tatsächliche Initialisierung des Geräts und der 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 auf 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 Rücksetzungs-/Wiederherstellungsvorgänge ausführen, sodass alle hier ausgeführten Aktivitäten schnell und zuverlässig sein sollten.

  2. Call MiniportWdiOpenAdapter.

    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 MiniportWdiOpenAdaptersendet die Microsoft-Komponente die folgenden Aufgaben/Eigenschaften/Aufrufe an den IHV-Miniport.

    1. Rufen Sie MiniportWdiTalTxRxInitialize auf, um den Datenpfad zu initialisieren und Handler auszutauschen.
    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 nicht bereits im erwarteten Zustand befindet.
    5. Rufen Sie MiniportWdiTalTxRxStart- auf, um den Datenpfad einzurichten.
    6. Rufen Sie OID_WDI_TASK_CREATE_PORT auf, um den ursprünglichen Port zu erstellen.

    Im Rahmen der MiniportInitializeEx-Verarbeitung der Microsoft-Komponente können auch andere Befehle an die IHV-Komponente gesendet werden. Bis MiniportWdiStartOperation aufgerufen wird, sendet die Microsoft-Komponente jedoch keine Aufgaben nach unten, die eine drahtlose Kommunikation erfordern. Abgesehen davon, dass OID_WDI_TASK_OPEN 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. Call MiniportWdiStartOperation.

    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. Sie kann auch vom IHV-Miniport als Hinweis verwendet werden, dass die Microsoft-Komponente die Initialisierung des Miniports abgeschlossen hat, und der Miniport kann alle erforderlichen Hintergrundaktivitäten starten.

    Das folgende Diagramm zeigt den Fluss von MiniportInitializeEx.

    WDI-Miniport-Initialisierungsablauf.

    Wenn eine dazwischenliegende Operation fehlschlägt, macht die Microsoft-Komponente die vorherigen Operationen rückgängig und scheitert beim Einrichten des Miniports. Wenn beispielsweise OID_WDI_TASK_CREATE_PORT fehlschlägt, wird der Datenpfad aufgeräumt, OID_WDI_TASK_CLOSE gesendet, sodass der Miniport fehlschlägt.

MiniportHaltEx

In einem Native Wi-Fi Miniport wird MiniportHaltEx verwendet, um dem Miniport mitzuteilen, dass er die Operationen stoppen und die Adapterinstanz aufräumen soll. Im WDI-Modell verarbeitet die Microsoft-Komponente den ursprünglichen MiniportHaltEx-Aufruf und teilt ihn in mehrere WDI-Schnittstellenaufrufe auf.

  1. Call MiniportWdiStopOperation.

    Dies ist ein optionaler WDI-Miniport-Handler innerhalb von NDIS_MINIPORT_DRIVER_WDI_CHARACTERISTICS , mit dem der IHV-Treiber die Operationen rückgängig machen kann, die er in MiniportWdiStartOperationdurchgeführt hat.

  2. Mehrere WDI-Befehle mit MiniportOidRequest.

    Nach MiniportWdiStopOperationsendet die Microsoft-Komponente Aufgaben/Eigenschaften an den IHV-Miniport, um den aktuellen Zustand des IHV-Treibers aufzuräumen. Diese Bereinigung kann Folgendes umfassen.

    1. Rufen Sie OID_WDI_TASK_DISCONNECT/OID_WDI_TASK_STOP_AP auf, um alle bestehenden Verbindungen abzubauen.
    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 stoppen.
    4. Rufen Sie MiniportWdiTalTxRxDeinitialize auf, um den Datenpfad zu deinitialisieren.
    5. Aufruf zum Bereinigen des Hardwarestatus. Diese wird über den MiniportWdiCloseAdapter , der vom IHV-Treiber registriert wurde, an die IHV gesendet.
  3. Sobald alle oben genannten Befehle aufgerufen wurden, ruft die Microsoft-Komponente MiniportWdiFreeAdapter auf, damit der IHV-Treiber alle möglicherweise bestehenden Softwarezustände löscht.

Das folgende Diagramm zeigt den Fluss von MiniportHaltEx.

wdi miniport stop flow.

Die MiniportHaltEx-Verarbeitung wird nicht ausgeführt, wenn das Gerät unerwartet entfernt wird oder das System ausgeschaltet wird. Um Überraschungen zu entfernen, lesen Sie das Verhalten des MiniportDevicePnPEventNotify Handlers. Zum Herunterfahren des Systems lesen Sie bitte das Verhalten des MiniportShutdownEx Handlers.

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 sich selbst abzumelden. Die Microsoft-Komponente ruft NdisMDeregisterMiniportDriverauf.

Das folgende Diagramm zeigt den Fluss von MiniportDriverUnload.

WDI-Miniport-Treiber-Entladevorgang.

MiniportPause

Die NDIS MiniportPause -Anforderungen werden von der Microsoft-Komponente behandelt. Als Teil von MiniportPause stoppt die Microsoft-Komponente den Datenpfad und wartet darauf, dass dieser bereinigt wird. Der WDI IHV-Miniport kann sich optional für einen MiniportWdiPostAdapterPause -Callback registrieren, der von der Microsoft-Komponente aufgerufen wird, nachdem sie die Bereinigung des Datenpfads abgeschlossen hat.

Das folgende Diagramm zeigt den Fluss von MiniportPause.

WDI-Miniport-Pausenfluss.

MiniportRestart

Die NDIS MiniportRestart -Anforderungen werden von der Microsoft-Komponente übernommen. Im Rahmen von MiniportRestart macht die Microsoft-Komponente die Arbeit der Datenpfadpause rückgängig, die sie im Rahmen von MiniportPause durchgeführt hat. Der WDI IHV-Miniport kann sich optional für einen MiniportWdiPostAdapterRestart -Callback registrieren, der von der Microsoft-Komponente aufgerufen wird, nachdem sie den Neustart des Datenpfads abgeschlossen hat.

Das folgende Diagramm zeigt den Fluss von MiniportRestart.

wdi Miniport-Neustartablauf.

MiniportResetEx

MiniportResetEx- wird von der Microsoft-Komponente nicht behandelt. Der WDI IHV-Miniport kann sich optional für einen MiniportResetEx Callback registrieren, der von der Microsoft-Komponente aufgerufen wird.

MiniportDevicePnPEventNotify

MiniportDevicePnPEventNotify wird verwendet, um einen NDIS-Treiber über PnP-Ereignisse wie das plötzliche Entfernen eines Geräts zu benachrichtigen. Wenn NDIS diese Benachrichtigung sendet, wird sie zuerst 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 Fluss von MiniportDevicePnPEventNotify.

wdi miniport drive pnp Benachrichtigungsfluss.

MiniportShutdownEx

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

Das folgende Diagramm zeigt den Fluss von MiniportShutdownEx.

wdi Miniport-Abschaltvorgang.

MiniportOidRequest

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

Der MiniportOidRequest -Aufruf in den WDI IHV-Miniport sollte als M1-Nachricht für ein WDI-Kommando betrachtet werden. Die Fertigstellung der OID (entweder über NdisMOidRequestComplete oder über eine Rückkehr non-PENDING von MiniportOidRequest) sollte als M3-Nachricht für eine WDI-Aufgabe/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 - den Statuscode aus dem MiniportOidRequest Aufruf (oder NdisMOidRequestComplete) und den Statuscode im feld WDI_MESSAGE_HEADER (entweder auf dem OID-Abschluss oder über NdisMIndicateStatusEx). Die Microsoft-Komponente betrachtet immer den NDIS_STATUS aus der OID-Vervollständigung, bevor sie das Feld WDI_MESSAGE_HEADERStatus betrachtet. Die Erwartungen der IHV-Komponente für die WDI OID-Verarbeitung sind wie folgt.

  1. WDI OIDs werden an die IHV-Komponente mit einem NDIS_OID_REQUESTRequestType von NdisRequestMethodübermittelt, und die entsprechende Nachricht und Nachrichtenlänge sind in den DATA.METHOD_INFORMATION.InformationBuffer bzw. DATA.METHOD_INFORMATION.InputBufferLength enthalten.
  2. Die IHV-Komponente meldet einen Fehler in der OID-Vervollständigung, wenn bei der Verarbeitung des Befehls ein Fehler auftritt, und setzt das Feld Status des WDI_MESSAGE_HEADER auf Nicht-Erfolg, wenn ein Fehler auf Wi-Fi-Ebene vorliegt.
  3. Bei Vorgängen und Eigenschaften befindet sich die Portnummer für die Anforderung im Feld WDI_MESSAGE_HEADERPortId. Die PortNumber in der NDIS_OID_REQUEST ist immer auf 0 gesetzt.
  4. Für die Vervollständigung der OID ist es akzeptabel, dass MiniportOidRequest NDIS_STATUS_PENDING zurückgibt und die OID später (synchron oder asynchron) mit NdisMOidRequestCompletevervollständigt.
  5. Wenn die IHV-Komponente die OID mit NDIS_STATUS_SUCCESS abschließt, muss sie das Feld BytesWritten der OID-Anforderung mit der entsprechenden Anzahl von Bytes auffüllen, einschließlich Platz für den WDI_MESSAGE_HEADER.
  6. Wenn die IHV-Komponente nicht genügend Speicherplatz im Feld DATA.METHOD_INFORMATION.OutputBufferLength hat, um die Antwort zu vervollständigen, schließt sie die OID mit NDIS_STATUS_BUFFER_TOO_SHORT ab und füllt das Feld DATA.METHOD_INFORMATION.BytesNeeded aus. Die Microsoft-Komponente versucht möglicherweise, einen Puffer der angeforderten Größe zuzuweisen und eine neue Anforderung an den IHV zu übermitteln.
  7. Wenn es sich um eine Task handelt, muss der M4 der Task (NdisMIndicateStatusEx) nur angegeben werden, wenn die Task als erfolgreich gestartet gemeldet wurde -- der OID-Abschluss ist erfolgreich und der Status im WDI_MESSAGE_HEADER im 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 sendet die WDI OID-Anforderung an den IHV-Miniport. Wenn der IHV-Miniport das OID abschließt, schließt die Microsoft-Komponente die ursprüngliche OID-Anforderung entsprechend ab.

wdi miniport oid Anfragesequenz für einen einzelnen wdi-Befehl.

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 bereits abgeschlossenen Zwischenvorgänge abgeschlossen ist, versucht die Microsoft-Komponente, die Vorgänge rückgängig zu machen, die die Bereinigung 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 das OID ab. Diese OID wird nicht an den WDI IHV Miniport übergeben.

WDI Miniport OID-Anforderungssequenz für OIDs, die von Microsoft-Komponenten behandelt werden.

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

WDI-Miniport-OID-Anforderungssequenz für OIDs, die nicht von Microsoft-Komponenten behandelt werden.

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 NdisMOidRequestCompleteabschließ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 nicht für WDI-OIDs verwendet. WDI-OIDs müssen schnell abgeschlossen werden und der IHV-Miniport-Treiber muss nicht versuchen, eine ausstehende OID abzubrechen. Der Abbruch von WDI-Aufgaben wird mittels der entsprechenden OID-Anforderung zum Abbrechen einer Aufgabe gehandhabt. Für nicht zugeordnete OIDs ist das erwartete Verhalten durch NDIS definiert.

NdisMIndicateStatusEx

NdisMIndicateStatusEx wird vom WDI IHV Miniport verwendet, um Indikationen an die Microsoft-Komponente zu senden. Bei den Meldungen kann es sich um unaufgeforderte Meldungen handeln, wie z.B. TKIP MIC-Fehler, oder um angeforderte Meldungen für den Abschluss (M4) einer Aufgabe.

Das folgende Diagramm zeigt ein Beispiel für eine WDI-Indikation, die über eine entsprechende NDIS/Native-Wi-Fi-Indikation 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-Statusanzeigeablauf.

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

wdi-Statusanzeige ohne direktes Mapping auf ndis.

Das folgende Diagramm zeigt einen Hinweis darauf, dass die Microsoft-Komponente nicht erkannt wird. Die Angabe wird as-is an das Betriebssystem weitergeleitet.

wdi-Statusanzeige, 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 Direct 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 ist 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 über NDIS_MINIPORT_DRIVER_WDI_CHARACTERISTICS registrierten Datenpfad-Handler, um Sendepakete an den IHV-Miniport zu übergeben.

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 Datenpfad-Handler, um empfangene Pakete an den IHV-Miniport zurückzugeben.

WDI-Handler: MiniportWdiOpenAdapter

Der MiniportWdiOpenAdapter -Handler wird von der Microsoft-Komponente verwendet, um die Operation "Task öffnen" für den IHV-Treiber zu initiieren. Dieser Aufruf muss schnell abgeschlossen werden und wenn der Öffnungsvorgang erfolgreich gestartet wurde, muss die IHV bei diesem Aufruf NDIS_STATUS_SUCCESS zurückgeben und den OpenAdapterComplete Handler aufrufen, der in den NDIS_WDI_INIT_PARAMETERS Parameter von MiniportWdiAllocateAdapter.

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 und wenn der Öffnungsvorgang erfolgreich gestartet wurde, muss die IHV bei diesem Aufruf NDIS_STATUS_SUCCESS zurückgeben und den CloseAdapterComplete Handler aufrufen, der in den NDIS_WDI_INIT_PARAMETERS Parameter des MiniportWdiAllocateAdapterübergeben wird.