NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS função de retorno de chamada (ndis.h)
A extensão de comutador extensível Hyper-V chama a função UpdateNetBufferListDestinations para confirmar modificações feitas em um pacote que contém várias portas de destino de comutador extensível. A função salva essas modificações no contexto de encaminhamento extensível do OOB (out-of-band) 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 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 de comutador extensível do pacote.
Valor de retorno
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.
Observações
A extensão de comutador extensível chama a função GetNetBufferListDestinations para obter uma matriz das portas de destino de 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 de NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY. Cada elemento nessa matriz é formatado como uma estrutura de 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 extensíveis 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 extensíveis de comutador.
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 IsExcluded membro da estrutura de NDIS_SWITCH_PORT_DESTINATION de uma porta de destino pode ser alterado. Para obter mais informações, consulte Excluindo a entrega de pacotes para portas de destino extensíveis de comutador.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Com suporte no NDIS 6.30 e posterior. |
da Plataforma de Destino | Área de trabalho |
cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Consulte também
AllocateNetBufferListForwardingContext