Freigeben über


MINIPORT_WDI_RX_GET_MPDUS Rückruffunktion (dot11wdi.h)

Wichtig

Dieses Thema ist Teil des WDI-Treibermodells, das in Windows 10 veröffentlicht wurde. Das WDI-Treibermodell befindet sich im Wartungsmodus und erhält nur Korrekturen mit hoher Priorität. WiFiCx ist das Wi-Fi Treibermodell, das in Windows 11 veröffentlicht wurde. Es wird empfohlen, wiFiCx zu verwenden, um die neuesten Features zu nutzen.

Die MiniportWdiRxGetMpdus-Handlerfunktion gibt eine NET_BUFFER_LIST Kette zurück. Jede NET_BUFFER_LIST stellt eine MPDU dar.

Dies ist ein WDI-Miniporthandler innerhalb NDIS_MINIPORT_WDI_DATA_HANDLERS.

Hinweis Sie müssen die Funktion mit dem typ MINIPORT_WDI_RX_GET_MPDUS deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt Beispiele.
 

Syntax

MINIPORT_WDI_RX_GET_MPDUS MiniportWdiRxGetMpdus;

void MiniportWdiRxGetMpdus(
  [in]  TAL_TXRX_HANDLE MiniportTalTxRxContext,
  [in]  WDI_PEER_ID PeerId,
  [in]  WDI_EXTENDED_TID ExTid,
  [out] PNET_BUFFER_LIST *ppNBL
)
{...}

Parameter

[in] MiniportTalTxRxContext

TAL-Gerätehandle, das vom IHV-Miniport in MiniportWdiTalTxRxInitialize zurückgegeben wird.

[in] PeerId

Die Peer-ID.

[in] ExTid

Die erweiterte TID.

[out] ppNBL

Zeiger auf einen Zeiger auf eine NET_BUFFER_LIST Kette vom IHV-Miniport.

Rückgabewert

Keine

Bemerkungen

Wenn PeerId und ExTid keine Wildcards sind (z. B. ist PeerId nicht gleich 0xFFFF, ExTid ist nicht gleich 31), haben alle MPDUs in der Kette dieselbe Peer-ID und TID (in diesem Fall ist TID eine gültige 802.11 TID).

Jedes NET_BUFFER_LIST verweist auf NET_BUFFER Strukturen. Jede NET_BUFFER-Struktur stellt eine MSDU dar.

Wenn ein MPDU über ein MSDU-Fragment als Nutzlast verfügt und die Defragmentierung nicht in ziel/TAL ausgeladen wird (oder der vom Host implementierte FIPS-Modus aktiviert ist), verfügt die entsprechende NET_BUFFER_LIST über eine NET_BUFFER, die das MSDU-Fragment beschreibt.

Der Datenoffset jedes NET_BUFFER muss auf den Anfang des MAC-Headers festgelegt werden.

Beispiele

Um eine MiniportWdiRxGetMpdus-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der zu definierenden Funktion identifiziert. Windows bietet eine Reihe von Funktionstypen für Treiber. Das Deklarieren einer Funktion mithilfe der Funktionstypen hilft der Codeanalyse für Treiber, der statischen Treiberüberprüfung (Static Driver Verifier , SDV) und anderen Überprüfungstools, Fehler zu finden, und es ist eine Voraussetzung für das Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine MiniportWdiRxGetMpdus-Funktion mit dem Namen "MyRxGetMpdus" zu definieren, verwenden Sie den typ MINIPORT_WDI_RX_GET_MPDUS , wie in diesem Codebeispiel gezeigt:

MINIPORT_WDI_RX_GET_MPDUS MyRxGetMpdus;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
VOID
 MyRxGetMpdus(
    TAL_TXRX_HANDLE MiniportTalTxRxContext,
    WDI_PEER_ID PeerId,
    WDI_EXTENDED_TID ExTid,
    PNET_BUFFER_LIST *ppNBL
    )
  {...}

Der MINIPORT_WDI_RX_GET_MPDUS Funktionstyp ist in der Headerdatei dot11wdi.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, müssen Sie der Funktionsdefinition die anmerkung Use_decl_annotations hinzufügen. Die Use_decl_annotations-Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den MINIPORT_WDI_RX_GET_MPDUS Funktionstyp in der Headerdatei angewendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für NDIS-Treiber.

Informationen zu Use_decl_annotations finden Sie unter Verhalten von Funktionen mit Anmerkungen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Unterstützte Mindestversion (Server) Windows Server 2016
Zielplattform Windows
Kopfzeile dot11wdi.h

Weitere Informationen

NDIS_MINIPORT_WDI_DATA_HANDLERS

NET_BUFFER

NET_BUFFER_LIST

TAL_TXRX_HANDLE

WDI RX-Pfad

WDI_EXTENDED_TID

WDI_PEER_ID