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

こちらもご覧ください

ミニポートWdiRxGetMpdus

ミニポートWdiRxResume

NDIS_RECEIVE_THROTTLE_PARAMETERS

NDIS_WDI_DATA_API

NET_BUFFER_LIST

WDI RX パス

WDI_EXTENDED_TID

WDI_PEER_ID

WDI_RX_INDICATION_LEVEL