MINIPORT_WDI_RX_GET_MPDUS Rückruffunktion (dot11wdi.h)
Wichtig
Dieses Thema ist Teil des in Windows 10 veröffentlichten WDI-Treiber modells. Das WDI-Treibermodell befindet sich im Wartungsmodus und erhält nur Korrekturen mit hoher Priorität. WiFiCx- ist das in Windows 11 veröffentlichte Wi-Fi Treibermodell. Es wird empfohlen, wiFiCx zu verwenden, um die neuesten Features nutzen zu können.
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.
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, der vom IHV miniport in MiniportWdiTalTxRxInitializezurü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
Nichts
Bemerkungen
Wenn PeerId und ExTid- keine Wildcards sind (z. B. PeerId- nicht gleich 0xFFFF ist, ist ExTid- nicht gleich 31), alle MPDUs in der Kette sind der gleichen Peer-ID und TID (in diesem Fall ist TID eine gültige TID 802.11 TID).
Jede 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 den Ziel-/TAL-Modus (oder host implementierter FIPS-Modus aktiviert ist) wird, weist die entsprechende NET_BUFFER_LIST einen NET_BUFFER auf, der das MSDU-Fragment beschreibt.
Der Datenoffset der einzelnen NET_BUFFER muss auf den Anfang des MAC-Headers festgelegt werden.
Beispiele
Um eine MiniportWdiRxGetMpdus-Funktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der Funktion identifiziert, die Sie definieren. Windows stellt eine Reihe von Funktionstypen für Treiber bereit. Durch das Deklarieren einer Funktion mithilfe der Funktionstypen können Codeanalyse für Treiber, statische Treiberüberprüfung (SDV) und andere Überprüfungstools Fehler finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.
Um beispielsweise eine MiniportWdiRxGetMpdus-Funktion zu definieren, die den Namen "MyRxGetMpdus" hat, verwenden Sie den MINIPORT_WDI_RX_GET_MPDUS Typ, 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 wird in der Headerdatei dot11wdi.h definiert. Um Fehler genauer zu identifizieren, wenn Sie die Codeanalysetools ausführen, müssen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzufügen. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen, die auf den Funktionstyp MINIPORT_WDI_RX_GET_MPDUS in der Headerdatei angewendet werden, verwendet 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_annotationsfinden Sie unter Annotating Function Behavior.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10 |
mindestens unterstützte Server- | Windows Server 2016 |
Zielplattform- | Fenster |
Header- | dot11wdi.h |