Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Nota Esta página pressupõe que você esteja familiarizado com as informações e diagramas em Visão geral do Comutador Extensível Hyper-V e Encaminhamento Híbrido.
O tráfego de pacotes que se move pelo caminho de dados do comutador extensível Hyper-V é obtido por extensões da seguinte maneira:
Uma extensão obtém um pacote do caminho de dados de entrada quando sua função FilterSendNetBufferLists é chamada. A extensão encaminha o pacote para extensões subjacentes no caminho de dados de entrada chamando NdisFSendNetBufferLists. As extensões de filtragem e encaminhamento também podem remover o pacote do caminho de dados de entrada chamando NdisFSendNetBufferListsComplete.
Uma extensão obtém um pacote do caminho de dados de saída quando sua função FilterReceiveNetBufferLists é chamada. A extensão encaminha o pacote para extensões sobrepostas no percurso de dados de saída chamando NdisFIndicateReceiveNetBufferLists. As extensões de filtragem e encaminhamento também podem remover o pacote do caminho de dados de saída chamando NdisFReturnNetBufferLists.
Os sinalizadores a seguir podem ser definidos no parâmetro SendFlags de FilterSendNetBufferLists ou NdisFSendNetBufferLists:
NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE
Se esse sinalizador for definido, todos os pacotes em uma lista vinculada de estruturas de NET_BUFFER_LIST se originaram da mesma porta de origem do comutador extensível Hyper-V.
Quando o NDIS chama FilterSendNetBufferLists, ele definirá este sinalizador se a interface extensível do switch tiver agrupado múltiplos pacotes da mesma porta de origem. Para obter o melhor desempenho, as extensões devem manter esse agrupamento e definir esse sinalizador quando elas chamarem NdisFSendNetBufferLists. A extensão também pode adicionar pacotes originados ou clonados à lista vinculada de estruturas de NET_BUFFER_LIST se a extensão usar a mesma porta de origem que os outros pacotes na lista.
Nota Se cada pacote na lista vinculada de estruturas de NET_BUFFER_LIST usar a mesma porta de origem, a extensão deverá definir o sinalizador NDIS_SEND_COMPLETE_FLAGS_SWITCH_SINGLE_SOURCE no parâmetro SendCompleteFlags de NdisFSendNetBufferListsComplete quando concluir a solicitação de envio.
NDIS_SEND_FLAGS_SWITCH_DESTINATION_GROUP
Se esse sinalizador for definido, todos os pacotes em uma lista vinculada de estruturas de NET_BUFFER_LIST deverão ser encaminhados para a mesma porta de destino de comutador extensível.
Uma extensão de encaminhamento pode usar este sinalizador para uma lista encadeada de estruturas NET_BUFFER_LIST que ela encaminha no caminho de dados de entrada, após determinar as portas de destino de cada pacote. Esse sinalizador é consumido e removido pela borda do miniporto subjacente do comutador extensível antes de encaminhar os pacotes até o caminho de dados de saída.
As extensões de captura e filtragem não podem usar esse sinalizador.
Nota A extensão de encaminhamento determina apenas as portas de destino do pacote para pacotes não NVGRE. Se o pacote for um pacote NVGRE, o componente HNV (Virtualização de Rede) Hyper-V determinará as portas de destino do pacote e encaminha o pacote. Para obter mais informações, consulte de Encaminhamento Híbrido.
Para obter o melhor desempenho, as extensões de encaminhamento devem definir esse sinalizador se todos os pacotes na lista vinculada forem encaminhados para a mesma porta de destino. Ao definir esse sinalizador, a extensão está reconhecendo que todos os pacotes na lista vinculada têm os mesmos elementos de porta de destino no contexto extensível de encaminhamento de comutador.
Nota A extensão de encaminhamento não deve definir esse sinalizador para uma lista vinculada de pacotes que têm várias portas de destino.
Os sinalizadores a seguir podem ser definidos no parâmetro ReceiveFlags de FilterReceiveNetBufferLists ou NdisFIndicateReceiveNetBufferLists:
NDIS_RECEIVE_FLAGS_SWITCH_SINGLE_SOURCE
Se esse sinalizador for definido, todos os pacotes em uma lista vinculada de estruturas de NET_BUFFER_LIST se originaram da mesma porta de origem do comutador extensível Hyper-V.
Quando o NDIS chama FilterReceiveNetBufferLists, ele definirá esse sinalizador se o comutador extensível tiver agrupado vários pacotes da mesma porta de origem. Para obter o melhor desempenho, as extensões devem manter esse agrupamento em vigor e definir esse sinalizador quando chamarem NdisMIndicateReceiveNetBufferLists. As extensões também devem adicionar pacotes originados ou clonados à lista vinculada de estruturas de NET_BUFFER_LIST se o pacote tiver a mesma porta de origem que os outros pacotes na lista.
Nota Se cada pacote na lista vinculada de estruturas NET_BUFFER_LIST usar a mesma porta de origem, a extensão deverá definir o sinalizador NDIS_RETURN_FLAGS_SWITCH_SINGLE_SOURCE no parâmetro ReturnFlags de FilterReturnNetBufferLists quando a solicitação de recebimento for concluída. A extensão deve definir esse sinalizador no parâmetro ReturnFlags se chamar NdisFReturnNetBufferLists para retornar pacotes que ele não originou ou clonou.
NDIS_RECEIVE_FLAGS_SWITCH_DESTINATION_GROUP
Se esse sinalizador for definido, todos os pacotes em uma lista vinculada de estruturas de NET_BUFFER_LIST deverão ser encaminhados para a mesma porta de destino de comutador extensível.
Quando o NDIS chama FilterReceiveNetBufferLists, ele definirá esse sinalizador se o comutador extensível tiver agrupado vários pacotes que têm as mesmas portas de destino. Para obter o melhor desempenho, as extensões devem manter esse agrupamento em vigor e definir esse sinalizador quando as extensões chamarem NdisMIndicateReceiveNetBufferLists. As extensões também devem adicionar pacotes originados ou clonados à lista vinculada de estruturas de NET_BUFFER_LIST se o pacote tiver as mesmas portas de destino que os outros pacotes na lista.
Nota Quando uma extensão chama NdisFIndicateReceiveNetBufferLists, ela não deve definir o sinalizador NDIS_RECEIVE_FLAGS_RESOURCES no parâmetro ReceiveFlags . A interface de comutador extensível ignora esse sinalizador e concluirá a indicação de recebimento chamando FilterReturnNetBufferLists.