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

重要

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

MINIPORT_WDI_TX_TARGET_DESC_INIT コールバック関数は、不透明なターゲット TX 記述子をNET_BUFFER_LIST (MiniportReserved[1] フィールド) に関連付け、(該当する場合) NET_BUFFER_LISTのWDI_FRAME_METADATA バッファーの TX コスト フィールド (クレジット 単位) を設定します (ミニポート予約[0])。

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

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

構文

MINIPORT_WDI_TX_TARGET_DESC_INIT MiniportWdiTxTargetDescInit;

void MiniportWdiTxTargetDescInit(
  [in]  TAL_TXRX_HANDLE MiniportTalTxRxContext,
  [in]  PNET_BUFFER_LIST pNBL,
  [out] NDIS_STATUS *pWifiStatus
)
{...}

パラメーター

[in] MiniportTalTxRxContext

MINIPORT_WDI_TAL_TXRX_INITIALIZE コールバック関数で IHV ミニポートによって返される TAL デバイス ハンドル。

[in] pNBL

1 つの NET_BUFFER_LISTへのポインター。

[out] pWifiStatus

MINIPORT_WDI_TX_TARGET_DESC_INITコールバック関数の結果を示す IHV によって設定された状態へのポインター。

戻り値

なし

解説

NDIS_STATUS_RESOURCESの状態は、Tx 記述子が使い果たされた場合にのみ使用する必要があります。 最適な動作は、IHV ミニポートが NDIS_STATUS_RESOURCESを使用しない場合に発生します。 NDIS_STATUS_SUCCESSおよびNDIS_STATUS_RESOURCES以外の状態は、IHV ミニポートまたはファームウェアがNET_BUFFER_LISTを処理できないことを示すその他のエラーに使用する必要があります。

IHV ミニポートは、適切な NDIS 退避機能と高度な機能を使用して 、NET_BUFFER のバックフィルを利用できます。 パケット オフセットの開始は、 MINIPORT_WDI_TX_TARGET_DESC_DEINIT コールバック関数の前または前に復元する必要があります。 TxMgr はデキュー時間中にフレームの長さを決定するため、 MINIPORT_WDI_TX_TARGET_DESC_INIT コールバック関数のフレーム長に対する変更は、デキュー サイズを量子に制限することに含まれます。 この場合、IHV ミニポートは、差分を考慮するように量子を適切に調整する必要があります。

大事な IHV ミニポートは、この呼び出しのコンテキストで任意の兆候を行うには許可されていません。 TxMgr は、 TxTargetDescInitHandler への呼び出しをシリアル化します。
 

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

たとえば、"MyTxTargetDescInit" という名前 のMINIPORT_WDI_TX_TARGET_DESC_INIT コールバック関数を定義するには、次のコード例に示すように 、MINIPORT_WDI_TX_TARGET_DESC_INIT 型を使用します。

MINIPORT_WDI_TX_TARGET_DESC_INIT MyTxTargetDescInit;

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

_Use_decl_annotations_
VOID
 MyTxTargetDescInit(
    TAL_TXRX_HANDLE MiniportTalTxRxContext,
    PNET_BUFFER_LIST pNBL,
    NDIS_STATUS *pWifiStatus
    )
  {...}

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

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

要件

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

こちらもご覧ください

MINIPORT_WDI_TX_TARGET_DESC_DEINIT

NDIS_MINIPORT_WDI_DATA_HANDLERS

NET_BUFFER_LIST

TAL_TXRX_HANDLE

WDI TX パス

WDI_FRAME_METADATA