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
ミニポートWdiTalTxRxInitialize で IHV ミニポート渡される NdisMiniportDataPathHandle です。
[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を使用する必要があります。 ミニポートWdiRxResume コンテキストで行われた表示は、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を設定する場合、RxEngine は、RxMgr が ミニポートWdiRxResume を発行し、できるだけ早くディスパッチ レベルを終了するまで、データ表示を作成しないでください。
RxEngine では、一時停止中に受信データを処理する方法を選択できます。 可能であれば、単にデータをバッファーする必要があります。 データの削除も可能です。
RxMgr は、PNDIS_RECEIVE_THROTTLE_PARAMETERSで指定された制限に対して NDIS に示されたフレームの数を追跡します。 RxMgr では、ディスパッチに費やされた時間も追跡されます。 制限に達すると、RxMgr はNDIS_STATUS_PAUSEDを返します。 RxEngine は、できるだけ早く DPC を返す/終了する必要があります。RxMgr がミニポートWdiRxResume を呼び出すまで、(NdisWdiRxInorderDataIndicationを介して) NET_BUFFER_LIST 構造体示してはなりません。 RxMgr に (ミニポートWdiRxGetMpdusを介して) 指定され、まだ示されていない NET_BUFFER_LIST 構造体は、DPC で過多の時間を費やすことを避けるために、別のコンテキストで NDIS まで示されます。 そのバックログがクリアされると、RxMgr はミニポートWdiRxResume 呼び出すことによって RxEngine の一時停止を解除します。
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 10 |
サポートされる最小サーバー | Windows Server 2016 |
ターゲット プラットフォーム の | ウィンドウズ |
ヘッダー | dot11wdi.h |
ミニポートWdiRxResume の
NDIS_RECEIVE_THROTTLE_PARAMETERS
WDI RX パス を する