NetRxQueueNotifyMoreReceivedPacketsAvailable function (netrxqueue.h)

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

Syntax

void NetRxQueueNotifyMoreReceivedPacketsAvailable(
  [_In_] NETPACKETQUEUE PacketQueue
);

Parameters

[_In_] PacketQueue

A handle to a net receive queue object.

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 NetRxQueueNotifyMoreReceivedPacketsAvailable from its EVT_WDF_INTERRUPT_DPC callback function, after it completes a pending NET_PACKET in the receive queue's NET_RING.

The client should only call NetRxQueueNotifyMoreReceivedPacketsAvailable 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 NetRxQueueNotifyMoreReceivedPacketsAvailable. Because NetAdapterCx invokes EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED repeatedly, the client may miss a few cases and call NetRxQueueNotifyMoreReceivedPacketsAvailable 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
Header netrxqueue.h (include netadaptercx.h)
IRQL <= HIGH_LEVEL

See also

EVT_PACKET_QUEUE_ADVANCE

EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED