MINIPORT_WDI_TX_TAL_QUEUE_IN_ORDER callback function

The MiniportWdiTxTalQueueInOrder handler function notifies the TAL target that one or more paused RA/TID queues (with WDI_TX_PAUSE_REASON_PS) is ready to transmit.

This means:

  • Each of the queues has no outstanding TX frames with TAL/target.
  • All frames that were TX completed with WDI_TxFrameStatus_SendPostponed were inserted in the RA-TID queue in the correct order.
This is a WDI miniport handler inside NDIS_MINIPORT_WDI_DATA_HANDLERS.
Note  You must declare the function by using the MINIPORT_WDI_TX_TAL_QUEUE_IN_ORDER type. For more information, see the following Examples section.
 

Syntax

MINIPORT_WDI_TX_TAL_QUEUE_IN_ORDER MiniportWdiTxTalQueueInOrder;

void MiniportWdiTxTalQueueInOrder(
  TAL_TXRX_HANDLE MiniportTalTxRxContext,
  WDI_PEER_ID PeerId,
  UINT32 ExTidBitmask
)
{...}

Parameters

MiniportTalTxRxContext

TAL device handle returned by the IHV miniport in MiniportWdiTalTxRxInitialize.

PeerId

The peer ID.

ExTidBitmask

The Extended TID bitmask.

Return Value

This callback function does not return a value.

Remarks

The TAL/target waits for this notification before issuing a TX restart indication to a paused queue with WDI_TX_PAUSE_REASON_PS.

Note  WDI_TxFrameStatus_SendPostponed is not allowed when TargetPriorityQueueing is TRUE, so this request is never made when in that mode.
 

Examples

To define a MiniportWdiTxTalQueueInOrder 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 MiniportWdiTxTalQueueInOrder function that is named "MyTxTalQueueInOrder", use the MINIPORT_WDI_TX_TAL_QUEUE_IN_ORDER type as shown in this code example:

MINIPORT_WDI_TX_TAL_QUEUE_IN_ORDER MyTxTalQueueInOrder;
Then, implement your function as follows:
_Use_decl_annotations_
VOID
 MyTxTalQueueInOrder(
    TAL_TXRX_HANDLE MiniportTalTxRxContext,
    WDI_PEER_ID PeerId,
    UINT32 ExTidBitmask
    )
  {...}
The MINIPORT_WDI_TX_TAL_QUEUE_IN_ORDER 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_TAL_QUEUE_IN_ORDER 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.

Requirements

   
Minimum supported client Windows 10
Minimum supported server Windows Server 2016
Target Platform Windows
Header dot11wdi.h

See Also

NDIS_MINIPORT_WDI_DATA_HANDLERS

TAL_TXRX_HANDLE

WDI_PEER_ID

WDI_TXRX_CAPABILITIES

WDI_TX_FRAME_STATUS

WDI_TX_PAUSE_REASON