NetTxQueueNotifyMoreCompletedPacketsAvailable function (nettxqueue.h)

The client driver calls NetTxQueueNotifyMoreCompletedPacketsAvailable to resume queue operations after NetAdapterCx calls the client's EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED event callback routine.

Syntax

void NetTxQueueNotifyMoreCompletedPacketsAvailable(
  [_In_] NETPACKETQUEUE PacketQueue
);

Parameters

[_In_] PacketQueue

A handle to a net transmit queue.

Return value

None

Remarks

This function should only be called when polling is disabled.

After NetAdapterCx calls a client driver's EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED event callback routine with NotificationEnabled set to TRUE, the client enables the queue's hardware interrupt. When the device generates a hardware interrupt, the client typically calls NetTxQueueNotifyMoreCompletedPacketsAvailable from its *EVT_WDF_INTERRUPT_DPC callback function, after it completes a pending NET_PACKET in the transmit queue's NET_RING.

The client should only call NetTxQueueNotifyMoreCompletedPacketsAvailable once per enabling of the notification. If the most recent call to EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED has NotificationEnabled set to FALSE, the client should avoid invoking NetTxQueueNotifyMoreCompletedPacketsAvailable. Because NetAdapterCx invokes EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED repeatedly, the client may miss a few cases and call NetTxQueueNotifyMoreCompletedPacketsAvailable when NotificationEnabled is set to FALSE. In these cases, the call will be a no-op.

Requirements

Requirement Value
Target Platform Universal
Minimum KMDF version 1.27
Minimum UMDF version 2.33
Header nettxqueue.h (include netadaptercx.h)
IRQL <= HIGH_LEVEL

See also

EVT_PACKET_QUEUE_ADVANCE

EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED