Compartilhar via


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

A função SetNetBufferListSource define o identificador de porta de origem do comutador extensível Hyper-V e o índice do adaptador de rede para um pacote especificado por uma estrutura de NET_BUFFER_LIST.

Sintaxe

NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE NdisSwitchSetNetBufferListSource;

NDIS_STATUS NdisSwitchSetNetBufferListSource(
  [in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
       PNET_BUFFER_LIST NetBufferList,
  [in] NDIS_SWITCH_PORT_ID PortId,
  [in] NDIS_SWITCH_NIC_INDEX NicIndex
)
{...}

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.

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 que foi alocado anteriormente chamando a função AllocateNetBufferListForwardingContext. Para obter mais informações sobre o contexto extensível de encaminhamento de comutador, consulte Hyper-Vde contexto de encaminhamento extensível de comutador .
 

[in] PortId

Um valor NDIS_SWITCH_PORT_ID que especifica o identificador exclusivo da porta de origem no comutador extensível.

[in] NicIndex

Um valor NDIS_SWITCH_NIC_INDEX que especifica o índice do adaptador de rede que está conectado à porta de comutador extensível especificada pelo parâmetro PortId.

Para obter mais informações sobre valores NDIS_SWITCH_NIC_INDEX, consulte valores de índice do adaptador de rede.

Observação Esse parâmetro deve especificar o valor de índice de um adaptador de rede que está em um estado conectado. Valores de índice para adaptadores de rede que estão em um estado criado ou desconectado não podem ser especificados. Para obter mais informações sobre estados de conexão de rede, consulte Hyper-V Porta do Comutador Extensível e Estados do Adaptador de Rede.
 

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 SetNetBufferListSource para definir o identificador de porta de origem e o índice do adaptador de rede na estrutura de NET_BUFFER_LIST de um pacote. A extensão faz isso para os seguintes tipos de pacotes:

  • Um novo pacote que a extensão alocou para operações de envio ou recebimento.
    Observação Antes que a extensão chame SetNetBufferListSource para um pacote alocado, ele deve chamar AllocateNetBufferListForwardingContext.
     
  • Um pacote duplicado que a extensão clonou de um pacote original que estava filtrando. A extensão duplica um pacote chamando NdisAllocateCloneNetBufferList.
Em ambos os casos, um pacote novo ou duplicado terá seu identificador de porta de origem definido como NDIS_SWITCH_DEFAULT_PORT_ID e seu índice de adaptador de rede de origem definido como NDIS_SWITCH_DEFAULT_NIC_INDEX. A extensão chama a função SetNetBufferListSource para alterar o identificador da porta de origem e o índice do adaptador de rede na estrutura de NET_BUFFER_LIST de um pacote.

Por exemplo, um pacote que tem um identificador de porta de origem de NDIS_SWITCH_DEFAULT_PORT_ID é confiável e ignora muitas políticas extensíveis de porta de comutador. Essas políticas incluem ACLs (listas de controle de acesso) e QoS (qualidade do serviço). Se a extensão especificar uma porta de origem não padrão para o pacote, isso permitirá que as políticas dessa porta sejam aplicadas ao pacote.

Observação Como os pacotes com um identificador de porta de origem de NDIS_SWITCH_DEFAULT_PORT_ID são confiáveis, a extensão deve usar esse identificador de porta de origem com muito cuidado ao originar o tráfego de pacotes. Para obter mais informações sobre o uso recomendado do NDIS_SWITCH_DEFAULT_PORT_ID para portas de origem, consulte Managing Hyper-V Extensible Switch Source Port Data.
 
Para obter mais informações sobre operações de envio e recebimento de pacotes, consulte Filtrar operações de envio e recebimento do módulo.

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

NET_BUFFER

NET_BUFFER_LIST

NdisAllocateCloneNetBufferList

NdisFGetOptionalSwitchHandlers