NDIS_WDI_RX_INORDER_DATA_IND コールバック関数 (dot11wdi.h)
重要
このトピックは、Windows 10でリリースされた WDI ドライバー モデルの一部です。 WDI ドライバー モデルはメンテナンス モードであり、優先度の高い修正のみを受け取ります。 WiFiCx は、Windows 11でリリースされた Wi-Fi ドライバー モデルです。 最新の機能を利用するには、WiFiCx を使用することをお勧めします。
NdisWdiRxInorderDataIndication コールバック関数は、指定された RX フレームの一覧が正しい順序で存在することを RxMgr に通知します。
これは、 NDIS_WDI_DATA_API内のコールバックです。
構文
NDIS_WDI_RX_INORDER_DATA_IND NdisWdiRxInorderDataInd;
void NdisWdiRxInorderDataInd(
[in] NDIS_HANDLE NdisMiniportDataPathHandle,
[in] WDI_RX_INDICATION_LEVEL IndicationLevel,
[in] WDI_PEER_ID PeerId,
[in] WDI_EXTENDED_TID ExTid,
[in] PNDIS_RECEIVE_THROTTLE_PARAMETERS pRxThrottleParams,
[out] NDIS_STATUS *pWifiStatus
)
{...}
パラメーター
[in] NdisMiniportDataPathHandle
NdisMiniportDataPathHandle は、MiniportWdiTalTxRxInitialize の IHV ミニポートに渡されます。
[in] IndicationLevel
RX 表示レベルを指定する WDI_RX_INDICATION_LEVEL 列挙値。
[in] PeerId
ピア ID。
[in] ExTid
拡張 TID。
[in] pRxThrottleParams
NDIS_RECEIVE_THROTTLE_PARAMETERS構造体へのポインター。
[out] pWifiStatus
NdisWdiRxInorderDataIndication の WDI からの状態。 詳細については、「解説」セクションを参照してください。
戻り値
なし
解説
RxEngine では、DPC の最初のデータ表示 NdisWdiRxInorderDataIndication である場合は、WDI_RX_INDICATION_DISPATCH_FIRST_OF_DPCが使用されます。 後続のデータ表示では、WDI_RX_INDICATION_DISPATCH_GENERALが使用されます。 指示がパッシブ レベルで行われる場合、RxEngine は WDI_RX_INDICATION_PASSIVEを使用する必要があります。 MiniportWdiRxResume のコンテキストで行われた表示では、WDI_RX_INDICATION_FROM_RX_RESUME_FRAMESを使用する必要があります。 このパラメーターは、DPC の有効期間を制限するために必要な RxMgr 情報を提供します。
WDI_RX_INDICATION_FLAG_RESOURCESビットごとの ORed と他の列挙型の値を使用して、RxMgr がデータ表示にNDIS_RECEIVE_FLAG_RESOURCESフラグを設定できます。
RxMgr は、受信したデータをプルする ミニポートWdiRxGetMpdus 要求を発行します。
ターゲットが RX フレーム分類に対応せず、異なる PeerID/TID ペアの RX フレームに個別の指示を使用する場合、PeerID はワイルドカード (0xFFFF) に設定され、TID は WDI_EXT_TID_UNKNOWN に設定されます。
ターゲット/TAL がバッファー管理の並べ替えを完全に担当する場合は、すべての破棄アクションも実行します。 MPDU の状態は必要ありません。
PNDIS_RECEIVE_THROTTLE_PARAMETERSは ReceiveThrottleParameters を指します。これは、NDIS に登録された割り込みに対して NDIS によって渡されます。 これは、WDI_RX_INDICATION_DISPATCH_FIRST_OF_DPCに対してのみ設定する必要があります。 このパラメーターは無視されるため、その他のデータ表示はすべて NULL を渡す必要があります。
RxMgr でWDI_STATUSが成功に設定されている場合、RxEngine は同じ DPC のコンテキストでより多くのデータ表示を作成できます。 RxMgr がWDI_STATUSを一時停止に設定した場合、RxMgr が MiniportWdiRxResume を発行し、できるだけ早くディスパッチ レベルを終了するまで、RxEngine はデータインジケーターを作成しないでください。
RxEngine では、一時停止中に受信データを処理する方法を選択できます。 可能であれば、データをバッファーに格納するだけです。 データの削除も可能です。
RxMgr は、NDIS に示されたフレーム数を、PNDIS_RECEIVE_THROTTLE_PARAMETERSで指定された制限に対して追跡します。 RxMgr では、ディスパッチに費やされた時間も追跡されます。 制限に達すると、RxMgr はNDIS_STATUS_PAUSEDを返します。 RxEngine は、できるだけ早く DPC を返す/終了する必要があります。RxMgr が MiniportWdiRxResume を呼び出すまで、(NdisWdiRxInorderDataIndication を介して) それ以上のNET_BUFFER_LIST構造体を示さないでください。 RxMgr に (MiniportWdiRxGetMpdus 経由で) 指定され、まだ示されていないNET_BUFFER_LIST構造体は、DPC での時間の消費を避けるために、別のコンテキストで NDIS まで示されます。 そのバックログがクリアされると、RxMgr は MiniportWdiRxResume を呼び出して RxEngine の一時停止を解除します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 |
サポートされている最小のサーバー | Windows Server 2016 |
対象プラットフォーム | Windows |
ヘッダー | dot11wdi.h |