Compartilhar via


NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATION função de retorno de chamada (ndis.h)

A função AddNetBufferListDestination adiciona uma única porta de destino para um pacote especificado por uma estrutura de NET_BUFFER_LIST.

Sintaxe

NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATION NdisSwitchAddNetBufferListDestination;

NDIS_STATUS NdisSwitchAddNetBufferListDestination(
  [in]      NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in, out] PNET_BUFFER_LIST NetBufferList,
  [in]      PNDIS_SWITCH_PORT_DESTINATION Destination
)
{...}

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 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] Destination

Um ponteiro para uma estrutura NDIS_SWITCH_PORT_DESTINATION. Essa estrutura especifica a porta de comutador extensível de destino para a qual o pacote será encaminhado.

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

As chamadas de extensão de comutador extensível de encaminhamento AddNetBufferListDestination para definir uma única porta de destino de comutador extensível para um pacote. A extensão especifica essa porta inicializando uma estrutura de NDIS_SWITCH_PORT_DESTINATION. A extensão define o parâmetro Destination como um ponteiro para essa estrutura. Para obter mais informações sobre como especificar uma porta de destino de comutador extensível, consulte Gerenciamento Hyper-Vde dados de porta de destino extensível de comutador extensível.

Observação Por motivos de desempenho, a extensão não deve chamar pacotes AddNetBufferListDestination com várias portas de destino.
 
A extensão deve seguir estas diretrizes antes de chamar AddNetBufferListDestination:
  • Somente extensões de encaminhamento podem chamar AddNetBufferListDestination para adicionar uma porta de destino para um pacote. Para obter mais informações sobre esse tipo de extensão, consulte Extensões de Encaminhamento.
  • Se a extensão de encaminhamento estiver originando um pacote com uma porta de destino, a extensão deverá primeiro chamar a função AllocateNetBufferListForwardingContext. Essa função aloca o contexto extensível de encaminhamento de comutador para o pacote. Esses dados contêm a origem do comutador extensível e as portas de destino dentro das informações de OOB (fora de banda) do pacote.

    Para obter mais informações sobre esse contexto, consulte Hyper-V contexto de encaminhamento extensível de comutador.

  • Depois que a extensão modifica as informações da porta de destino na estrutura NDIS_SWITCH_PORT_DESTINATION, ela chama AddNetBufferListDestination para confirmar as alterações na estrutura de NET_BUFFER_LIST do pacote.
    Observação Por motivos de desempenho, a extensão não deve chamar a função UpdateNetBufferListDestinations para confirmar as alterações do pacote.
     
Observação Após a extensão de encaminhamento confirmar as alterações das portas de destino para o contexto de encaminhamento, as portas de destino não podem 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

GetNetBufferListDestinations

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

UpdateNetBufferListDestinations