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.
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 |