Compartir a través de


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

Ninguno

Observaciones

Se trata de una devolución de llamada opcional. Registre esta función de devolución de llamada en la EVT_NET_ADAPTER_CREATE_TX(RX)QUEUE devolución de llamada. Establezca el miembro adecuado de una estructura de NET_PACKET_QUEUE_CONFIG después de inicializar la estructura con NET_PACKET_QUEUE_CONFIG_INITy, 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 un error, 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 cliente no recibirán llamadas a EVT_PACKET_QUEUE_ADVANCE, EVT_PACKET_QUEUE_CANCELo EVT_PACKET_QUEUE_SET_NOTIFICATION_ENABLED hasta después de evtPacketQueueStart. Además, EvtPacketQueueStart se llama en el mismo contexto de ejecución, o subproceso, como EvtPacketQueueAdvance, EvtPacketQueueCancely EvtPacketQueueSetNotificationEnabled, por lo que los controladores de cliente no necesitan sincronizar 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 de iniciarse, el marco no lee ni escribe NextIndex para los búferes de anillo de paquetes, por lo que los controladores cliente pueden usarlo según sea necesario o optar por 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 de NetAdapterCx, consulte Transmitir y recibir colas.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
versión mínima de KMDF 1.27
versión mínima de UMDF 2.33
encabezado de 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