次の方法で共有


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

重要

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

MiniportWdiTxTalSend ハンドラー関数は、送信元の RA-TID またはポート キューを指定します。 TxMgr は、IHV 予約範囲内の拡張 TID を持つ RA-TID キューに 対して、MiniportWdiTxDataSend の代わりにこの要求を使用します。 オペレーティング システム、再開表示、または作業項目から TX スレッドのコンテキストで発行されます。

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

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

構文

MINIPORT_WDI_TX_TAL_SEND MiniportWdiTxTalSend;

void MiniportWdiTxTalSend(
  [in] TAL_TXRX_HANDLE MiniportTalTxRxContext,
  [in] WDI_PORT_ID PortId,
  [in] WDI_PEER_ID PeerId,
  [in] WDI_EXTENDED_TID ExTid,
  [in] UINT16 NumQueueFrames,
  [in] UINT32 NumActiveFrames,
  [in] BOOLEAN bRobustnessFlag
)
{...}

パラメーター

[in] MiniportTalTxRxContext

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

[in] PortId

ポート ID。

[in] PeerId

ピア ID。

[in] ExTid

拡張 TID。

[in] NumQueueFrames

キューの長さ (フレーム単位)。

[in] NumActiveFrames

アクション (スケジュール可能) キュー内のフレームの合計数。

[in] bRobustnessFlag

堅牢性フラグ。 堅牢性フラグが TRUE に設定されている場合、NIC は CTS やその他のメカニズムを使用してフレームに使用される TX データ レートを積極的に下げることで、少数の再試行内で信頼性の高い配信を保証します。

戻り値

なし

解説

ポート キュー モードでは、 PeerIdExTid はワイルドカードに設定されます。 送信要求のコンテキストでは、TxEngine は NdisWdiTxDequeueIndication を発行して、FIFO RA-TID キューから複数のフレームの所有権を取得し、ターゲットに転送します。 フレームをデキューできない場合、TxEngine は NdisWdiTxDequeueIndication ではなく、同じコンテキストで NdisWdiTxSendPauseIndication を発行します

TxEngine は転送完了を発行し、TxMgr にデキューするフレームの所有権を返す完全な指示を送信する必要があります。 転送完了にエラー コードが含まれている場合、TxEngine は送信完了を発行しないでください。

PeerId は、ポートがアクセス ポイント/Wi-Fi Direct グループ所有者として構成され、フレームに受信側アドレスとしてグループ アドレスがある場合、ワイルドカードに設定されます。

失敗した場合、TxEngine は適切な障害状態でターゲットへのフレーム転送を完了します。

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

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

MINIPORT_WDI_TX_TAL_SEND MyTxTalSend;

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

_Use_decl_annotations_
VOID
 MyTxTalSend(
    TAL_TXRX_HANDLE MiniportTalTxRxContext,
    WDI_PORT_ID PortId,
    WDI_PEER_ID PeerId,
    WDI_EXTENDED_TID ExTid,
    UINT16 NumQueueFrames,
    UINT32 NumActiveFrames,
    BOOLEAN bRobustnessFlag
    )
  {...}

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

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

要件

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

こちらもご覧ください

MiniportWdiTxDataSend

NDIS_MINIPORT_WDI_DATA_HANDLERS

NdisWdiTxDequeueIndication

NdisWdiTxSendPauseIndication

TAL_TXRX_HANDLE

WDI TX パス

WDI_EXTENDED_TID

WDI_PEER_ID

WDI_PORT_ID