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 de 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 ni 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 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 de cliente pueden usarlo según sea necesario o elegir no usarlo en absoluto. BeginIndex es leído por 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 Transmisión y recepción de colas.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.27 |
Versión mínima de UMDF | 2,33 |
Encabezado | netpacketqueue.h (include netadaptercx.h) |
IRQL | PASSIVE_LEVEL |
Consulte también
EVT_NET_ADAPTER_CREATE_RXQUEUE
EVT_NET_ADAPTER_CREATE_TXQUEUE