Ruta de acceso de transmisión de VMQ

En el caso de las solicitudes de transmisión, el controlador de sobreaprovisionamiento usa la macro NET_BUFFER_LIST_RECEIVE_QUEUE_ID para establecer el identificador de cola de la cola saliente en los datos salientes con la información de OOB netBufferListFilteringInfo . La información de NetBufferListFilteringInfo se especifica en una estructura de NDIS_NET_BUFFER_LIST_FILTERING_INFO .

Los controladores NDIS pueden usar la macro NET_BUFFER_LIST_RECEIVE_QUEUE_ID para establecer u obtener el identificador de cola de una estructura de NET_BUFFER_LIST . Si un grupo de colas contiene más de una cola de máquina virtual, el identificador de cola del paquete de transmisión puede establecerse en el identificador de cola de cualquiera de las colas de máquina virtual del grupo.

Los controladores de protocolo establecen el bit NDIS_SEND_FLAGS_SINGLE_QUEUE en el parámetro SendFlags de la función NdisSendNetBufferLists para indicar que todas las estructuras de transmisión NET_BUFFER_LIST de la llamada son para la misma cola de transmisión.

Los controladores de miniport establecen el bit de NDIS_SEND_COMPLETE_FLAGS_SINGLE_QUEUE en el parámetro SendCompleteFlags de la función NdisMSendNetBufferListsComplete para indicar que todas las NET_BUFFER_LISTs de la llamada se enviaron en la misma cola de transmisión.

Para más información sobre las pruebas de filtro, consulte Operaciones de filtro de VMQ.

Nota Cuando se elimina una VMQ (por ejemplo, durante la migración en vivo de la máquina virtual), es posible que el controlador de miniporte reciba un NBL que contenga un valor QueueId no válido. Si esto sucede, el miniport debe omitir el identificador de cola no válido y usar 0 (la cola predeterminada) en su lugar. QueueId se encuentra en la parte NetBufferListFilteringInfo de los datos OOB de NBL y se recupera mediante la macro NET_BUFFER_LIST_RECEIVE_QUEUE_ID.