Partilhar via


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.

Observação Essa estrutura deve conter um contexto extensível de encaminhamento de comutador. Se a extensão criou ou clonou o pacote, ela deve ter alocado essa estrutura anteriormente chamando a função AllocateNetBufferListForwardingContext.
 

[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.

Observação A extensão recebeu essa estrutura por meio de uma chamada anterior para a função GetNetBufferListDestinations.
 

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:

Se a extensão adicionar ou modificar portas de destino na estrutura NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY, a extensão deverá chamar a função UpdateNetBufferListDestinations para confirmar essas alterações na estrutura de NET_BUFFER_LIST do pacote.
Observação Somente as extensões de encaminhamento podem chamar UpdateNetBufferListDestinations para confirmar portas de destino que foram adicionadas ou alteradas para pacotes com várias portas de destino. Para obter mais informações sobre esse tipo de extensão, consulte Extensões de Encaminhamento.
 
Se a chamada para UpdateNetBufferListDestinations retornar NDIS_STATUS_SUCCESS, a interface de comutador extensível garante que a porta de comutador extensível e a conexão do adaptador de rede referenciadas nas portas de destino não serão excluídas até que a operação de envio ou recebimento do pacote seja concluída.

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.

Observação Por motivos de desempenho, a extensão não deve chamar a função UpdateNetBufferListDestinations para confirmar as alterações em um pacote com apenas uma porta de destino. Em vez disso, a extensão chama AddNetBufferListDestination para confirmar as alterações na porta de destino do pacote.
 
Para obter mais informações sobre o contexto extensível de encaminhamento de comutador, consulte Hyper-Vde contexto de encaminhamento extensível 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

GetNetBufferListDestinations

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

NdisFOidRequest

OID_SWITCH_NIC_DELETE