Compartilhar via


Caminho de Transmissão do VMQ

Para solicitações de transmissão, o driver de sobreposição usa a macro NET_BUFFER_LIST_RECEIVE_QUEUE_ID para definir o identificador de fila da fila de saída nos dados de saída com as informações do OOB NetBufferListFilteringInfo . As informações de NetBufferListFilteringInfo são especificadas em uma estrutura NDIS_NET_BUFFER_LIST_FILTERING_INFO .

Os drivers NDIS podem usar a macro NET_BUFFER_LIST_RECEIVE_QUEUE_ID para definir ou obter o identificador de fila de uma estrutura de NET_BUFFER_LIST . Se um grupo de filas contiver mais de uma fila de VM, o identificador de fila do pacote de transmissão poderá ser definido como o identificador de fila de qualquer uma das filas de VM no grupo.

Os drivers de protocolo definem o bit NDIS_SEND_FLAGS_SINGLE_QUEUE no parâmetro SendFlags da função NdisSendNetBufferLists para indicar que todas as estruturas de transmissão NET_BUFFER_LIST na chamada são para a mesma fila de transmissão.

Os drivers de miniporte definem o bit NDIS_SEND_COMPLETE_FLAGS_SINGLE_QUEUE no parâmetro SendCompleteFlags da função NdisMSendNetBufferListsComplete para indicar que todas as NET_BUFFER_LISTs na chamada foram enviadas na mesma fila de transmissão.

Para obter mais informações sobre testes de filtro, consulte Operações de filtro VMQ.

Nota Quando uma VMQ é excluída (por exemplo, durante a migração dinâmica da VM), é possível que o driver de miniporto receba um NBL que contenha um valor QueueId inválido. Se isso acontecer, o miniporto deverá ignorar a ID da fila inválida e usar 0 (a fila padrão). A QueueId é encontrada na parte NetBufferListFilteringInfo dos dados OOB da NBL e é recuperada usando a macro NET_BUFFER_LIST_RECEIVE_QUEUE_ID .