次の方法で共有


MINIPORT_WDI_RX_GET_MPDUS コールバック関数 (dot11wdi.h)

重要

このトピックは、Windows 10でリリースされた WDI ドライバー モデルの一部です。 WDI ドライバー モデルはメンテナンス モードであり、優先度の高い修正のみを受け取ります。 WiFiCx は、Windows 11でリリースされた Wi-Fi ドライバー モデルです。 最新の機能を利用するには、WiFiCx を使用することをお勧めします。

MiniportWdiRxGetMpdus ハンドラー関数は 、NET_BUFFER_LIST チェーンを返します。 各NET_BUFFER_LISTは、1 つの MPDU を表します。

これは、 NDIS_MINIPORT_WDI_DATA_HANDLERS内の WDI ミニポート ハンドラーです。

メモMINIPORT_WDI_RX_GET_MPDUS型を使用して関数を宣言する必要があります。 詳細については、次の例に関するセクションを参照してください。
 

構文

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
)
{...}

パラメーター

[in] MiniportTalTxRxContext

ミニポートWdiTalTxRxInitialize の IHV ミニポートによって返される TAL デバイス ハンドル。

[in] PeerId

ピア ID。

[in] ExTid

拡張 TID。

[out] ppNBL

IHV ミニポートからの NET_BUFFER_LIST チェーンへのポインターへのポインター。

戻り値

なし

解説

PeerIdExTid がワイルドカードでない場合 (たとえば、PeerId が0xFFFFと等しくない、ExTid が 31 に等しくない)、チェーン内のすべての MPDU は同じピア ID と TID (この場合、TID は有効な 802.11 TID) になります。

NET_BUFFER_LISTは、NET_BUFFER構造体を指します。 各NET_BUFFER構造体は、1 つの MSDU を表します。

MPDU にペイロードとして MSDU フラグメントがあり、最適化がターゲット/TAL にオフロードされない (またはホスト実装 FIPS モードが有効になっている) 場合、対応するNET_BUFFER_LISTには MSDU フラグメントを記述する 1 つのNET_BUFFERがあります。

各NET_BUFFERのデータ オフセットは、MAC ヘッダーの先頭に設定する必要があります。

MiniportWdiRxGetMpdus 関数を定義するには、まず、定義する関数の種類を識別する関数宣言を指定する必要があります。 Windows には、ドライバー用の一連の関数型が用意されています。 関数の種類を使用して関数を宣言すると、ドライバー、静的ドライバー検証ツール (SDV)、およびその他の検証ツールのコード分析でエラーが検出され、Windows オペレーティング システムのドライバーを記述するための要件になります。

たとえば、"MyRxGetMpdus" という名前の MiniportWdiRxGetMpdus 関数を定義するには、次のコード例に示すように 、MINIPORT_WDI_RX_GET_MPDUS 型を使用します。

MINIPORT_WDI_RX_GET_MPDUS MyRxGetMpdus;

次に、次のように関数を実装します。

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

MINIPORT_WDI_RX_GET_MPDUS関数の種類は、dot11wdi.h ヘッダー ファイルで定義されています。 コード分析ツールの実行時にエラーをより正確に識別するには、 Use_decl_annotations 注釈を関数定義に追加してください。 Use_decl_annotations注釈を使用すると、ヘッダー ファイル内のMINIPORT_WDI_RX_GET_MPDUS関数型に適用される注釈が確実に使用されます。 関数宣言の要件の詳細については、「NDIS ドライバーの関数 ロール型を使用して関数を宣言する」を参照してください。

Use_decl_annotationsの詳細については、「関数の動作に注釈を付ける」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 10
サポートされている最小のサーバー Windows Server 2016
対象プラットフォーム Windows
ヘッダー dot11wdi.h

こちらもご覧ください

NDIS_MINIPORT_WDI_DATA_HANDLERS

NET_BUFFER

NET_BUFFER_LIST

TAL_TXRX_HANDLE

WDI RX パス

WDI_EXTENDED_TID

WDI_PEER_ID