NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS função de retorno de chamada (ndis.h)
A extensão de comutador extensível do Hyper-V chama a função UpdateNetBufferListDestinations para confirmar modificações feitas pela extensão em um pacote que contém várias portas de destino de comutador extensíveis. A função salva essas modificações no contexto de encaminhamento extensível de opção OOB (fora de banda) da estrutura de NET_BUFFER_LIST do pacote.
Sintaxe
NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS NdisSwitchUpdateNetBufferListDestinations;
NDIS_STATUS NdisSwitchUpdateNetBufferListDestinations(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST NetBufferList,
[in] UINT32 NumberOfNewDestinations,
[in] PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Destinations
)
{...}
Parâmetros
[in] NdisSwitchContext
Um valor NDIS_SWITCH_CONTEXT que contém o identificador do módulo de comutador extensível ao qual a extensão do comutador extensível do Hyper-V está anexada. Quando a extensão chama NdisFGetOptionalSwitchHandlers, esse identificador é retornado por meio do parâmetro NdisSwitchContext .
[in, out] NetBufferList
Um ponteiro para uma estrutura NET_BUFFER_LIST para um único pacote.
[in] NumberOfNewDestinations
Um valor UINT32 que especifica o número de novas portas de destino que foram adicionadas ao pacote.
[in] Destinations
Um ponteiro para uma estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Essa estrutura especifica as portas de destino do comutador extensível do pacote.
Retornar valor
Se a chamada for bem-sucedida, a função retornará NDIS_STATUS_SUCCESS. Caso contrário, ele retornará um código de erro NDIS_STATUS_Xxx definido em Ndis.h.
Comentários
A extensão de comutador extensível chama a função GetNetBufferListDestinations para obter uma matriz das portas de destino do comutador extensível para um pacote. Se a função retornar com êxito, a matriz será obtida por meio do parâmetro Destinations , que contém um ponteiro para uma estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Cada elemento nessa matriz é formatado como uma estrutura NDIS_SWITCH_PORT_DESTINATION que especifica uma porta de destino para o pacote.
Depois que a extensão obtém a estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY , a extensão pode fazer o seguinte:
-
Adicione elementos de NDIS_SWITCH_PORT_DESTINATION adicionais na matriz.
Para obter mais informações, consulte Adicionando dados de porta de destino de comutador extensível a um pacote.
-
Modifique os elementos NDIS_SWITCH_PORT_DESTINATION existentes da matriz para excluir um pacote de ser encaminhado para uma porta especificada.
Para obter mais informações, consulte Excluindo a entrega de pacotes para portas de destino comutador extensível.
Além disso, depois que as alterações das portas de destino tiverem sido confirmadas, as portas de destino não poderão ser removidas e somente o membro IsExcluded da estrutura NDIS_SWITCH_PORT_DESTINATION de uma porta de destino poderá ser alterado. Para obter mais informações, consulte Excluindo a entrega de pacotes para portas de destino comutador extensível.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.30 e posterior. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Confira também
AllocateNetBufferListForwardingContext