// dot11wdi.h
MINIPORT_WDI_TX_DATA_SEND MiniportWdiTxDataSend;
void MiniportWdiTxDataSend(
[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
)
{...}
View the official Windows Driver Kit DDI reference// dot11wificxintf.h
MINIPORT_WDI_TX_DATA_SEND MiniportWdiTxDataSend;
void MiniportWdiTxDataSend(
TAL_TXRX_HANDLE MiniportTalTxRxContext,
WDI_PORT_ID PortId,
WDI_PEER_ID PeerId,
WDI_EXTENDED_TID ExTid,
UINT16 NumQueueFrames,
UINT32 NumActiveFrames,
BOOLEAN bRobustnessFlag
)
{...}
View the official Windows Driver Kit DDI referenceNo description available.
[!IMPORTANT] This topic is part of the WDI driver model released in Windows 10. The WDI driver model is in maintenance mode and will only receive high priority fixes. WiFiCx is the Wi-Fi driver model released in Windows 11. We recommend that you use WiFiCx to take advantage of the latest features.
The MiniportWdiTxDataSend handler function specifies an RA-TID or port queue to transmit from. It is issued in the context of the TX thread from the operating system, resume indication, or a work item.
This is a WDI miniport handler inside NDIS_MINIPORT_WDI_DATA_HANDLERS.
Note You must declare the function by using the MINIPORT_WDI_TX_DATA_SEND type. For more information, see the following Examples section.
MiniportTalTxRxContext [in]TAL device handle returned by the IHV miniport in MiniportWdiTalTxRxInitialize.
PortId [in]The port ID.
PeerId [in]The peer ID.
ExTid [in]The Extended TID.
NumQueueFrames [in]The queue length, in frames.
NumActiveFrames [in]The total number of frames in action (schedulable) queues.
bRobustnessFlag [in]The robustness flag. If the robustness flag is set to TRUE, the NIC ensures reliable delivery within a small number of retries by aggressively lowering the TX data rate used for the frame using CTS and/or other mechanisms.
In port queuing mode, the WDI_PEER_ID and WDI_EXTENDED_TID are set to wildcards. In the context of the send request, the TxEngine issues NdisWdiTxDequeueIndication to take ownership of a number of frames from the FIFO RA-TID queue and transfer them to the target. If it cannot dequeue any frames, the TxEngine issues NdisWdiTxSendPauseIndication in the same context instead of NdisWdiTxDequeueIndication.
The TxEngine must issue a transfer complete and send complete indications to return ownership of any frames it dequeues to TxMgr. If the transfer complete contains a failure code, the TxEngine must not issue a send completion.
To define a MiniportWdiTxDataSend function, you must first provide a function declaration that identifies the type of function you're defining. Windows provides a set of function types for drivers. Declaring a function using the function types helps Code Analysis for Drivers, Static Driver Verifier (SDV), and other verification tools find errors, and it's a requirement for writing drivers for the Windows operating system.
For example, to define a MiniportWdiTxDataSend function that is named "MyTxDataSend", use the MINIPORT_WDI_TX_DATA_SEND type as shown in this code example:
MINIPORT_WDI_TX_DATA_SEND MyTxDataSend;
Then, implement your function as follows:
_Use_decl_annotations_
VOID
MyTxDataSend(
TAL_TXRX_HANDLE MiniportTalTxRxContext,
WDI_PORT_ID PortId,
WDI_PEER_ID PeerId,
WDI_EXTENDED_TID ExTid,
UINT16 NumQueueFrames,
UINT32 NumActiveFrames,
BOOLEAN bRobustnessFlag
)
{...}
The MINIPORT_WDI_TX_DATA_SEND function type is defined in the dot11wdi.h header file. To more accurately identify errors when you run the code analysis tools, be sure to add the _Use_decl_annotations_ annotation to your function definition. The _Use_decl_annotations_ annotation ensures that the annotations that are applied to the MINIPORT_WDI_TX_DATA_SEND function type in the header file are used. For more information about the requirements for function declarations, see Declaring Functions by Using Function Role Types for NDIS Drivers.
For information about _Use_decl_annotations_, see Annotating Function Behavior.
NDIS_MINIPORT_WDI_DATA_HANDLERS
[!IMPORTANT] This topic is part of the WiFiCx driver model. WiFiCx is the Wi-Fi driver model released in Windows 11. We recommend that you use WiFiCx to take advantage of the latest features. The previous Wi-Fi driver model WDI is in maintenance mode and will only receive high priority fixes.
[!WARNING] Some information in this topic relates to prereleased product, which may be substantially modified before it is commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
This function is reserved for system use and should not be called in your code.
MiniportTalTxRxContextReserved.
PortIdReserved.
PeerIdReserved.
ExTidReserved.
NumQueueFramesReserved.
NumActiveFramesReserved.
bRobustnessFlagReserved.