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

Nota Essa estrutura deve conter um contexto extensível de encaminhamento de comutador. Se a extensão criou ou clonou o pacote, ela deverá 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.

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 de encaminhamento chama 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 Gerenciando dados da porta de destino do Comutador Extensível do Hyper-V.

Nota 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 Contexto de encaminhamento extensível do Hyper-V.

  • 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.
    Nota Por motivos de desempenho, a extensão não deve chamar a função UpdateNetBufferListDestinations para confirmar as alterações do pacote.
     
Nota Depois que a extensão de encaminhamento confirmar as alterações das portas de destino para o contexto de encaminhamento, 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 de 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

GetNetBufferListDestinations

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

UpdateNetBufferListDestinations