EVT_PACKET_QUEUE_START función de devolución de llamada (netpacketqueue.h)

La función de devolución de llamada EvtPacketQueueStart es una devolución de llamada opcional implementada por el controlador cliente para iniciar la ruta de acceso de datos de una cola de paquetes.

Sintaxis

EVT_PACKET_QUEUE_START EvtPacketQueueStart;

void EvtPacketQueueStart(
  [_In_] NETPACKETQUEUE PacketQueue
)
{...}

Parámetros

[_In_] PacketQueue

Identificador de una cola de paquetes.

Valor devuelto

None

Observaciones

Se trata de una devolución de llamada opcional. Registre esta función de devolución de llamada en la devolución de llamada EVT_NET_ADAPTER_CREATE_TX(RX)QUEUE . Establezca el miembro adecuado de una estructura de NET_PACKET_QUEUE_CONFIG después de inicializar la estructura con NET_PACKET_QUEUE_CONFIG_INIT y, a continuación, llame a NetTx(Rx)QueueCreate.

En esta devolución de llamada, un controlador cliente normalmente configura información que su hardware necesita para la transmisión o recepción de paquetes. Dado que esta devolución de llamada no devuelve un valor y, por lo tanto, no debe producir errores, los controladores de cliente deben realizar acciones como la asignación de recursos durante la creación de la cola. Por lo tanto, esta devolución de llamada debe ser una función ligera que se ejecuta rápidamente.

Los controladores de cliente no recibirán llamadas a EVT_PACKET_QUEUE_ADVANCE, EVT_PACKET_QUEUE_CANCEL o EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED hasta que se devuelva EvtPacketQueueStart . Además, se llama a EvtPacketQueueStart en el mismo contexto de ejecución o subproceso, como EvtPacketQueueAdvance, EvtPacketQueueCancel y EvtPacketQueueSetNotificationEnabled, por lo que los controladores de cliente no necesitan sincronizarse entre estas funciones de devolución de llamada para una instancia de cola individual.

Cuando se inicia una cola, NetAdapterCx garantiza que BeginIndex == NextIndex == 0 para todos los búferes de anillo de esta cola. Después del inicio, el marco no lee ni escribe NextIndex para los búferes de anillo de paquetes, por lo que los controladores de cliente pueden usarlo según sea necesario o elegir no usarlo en absoluto. BeginIndex lo lee el marco, pero no se modifica fuera de EvtPacketQueueStart.

Para obtener más información y un diagrama en el que se muestra el modelo de sondeo de ruta de acceso de datos netAdapterCx, consulte Transmisión y recepción de colas.

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.27
Encabezado netpacketqueue.h (include netadaptercx.h)
IRQL PASSIVE_LEVEL

Consulte también

EVT_NET_ADAPTER_CREATE_RXQUEUE

EVT_NET_ADAPTER_CREATE_TXQUEUE

NetRxQueueCreate

NetTxQueueCreate

EVT_PACKET_QUEUE_ADVANCE

EVT_PACKET_QUEUE_CANCEL

EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED

EVT_PACKET_QUEUE_STOP