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

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

[in] PortId

Um valor NDIS_SWITCH_PORT_ID que especifica o identificador exclusivo da porta de origem na opção extensível.

[in] NicIndex

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

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

Nota Esse parâmetro deve especificar o valor de índice de um adaptador de rede que esteja 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 os estados de conexão de rede, consulte Estados de Porta de Comutador Extensível e Adaptador de Rede do Hyper-V.
 

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 chama a função SetNetBufferListSource para definir o identificador de porta de origem e o índice do adaptador de rede na estrutura 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.
    Nota Antes que a extensão chame SetNetBufferListSource para um pacote alocado, ela 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 de porta de origem e o índice do adaptador de rede na estrutura 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.

Nota 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 quando origina 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 Gerenciando dados da porta de origem do comutador extensível do Hyper-V.
 
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
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

AllocateNetBufferListForwardingContext

NET_BUFFER

NET_BUFFER_LIST

NdisAllocateCloneNetBufferList

NdisFGetOptionalSwitchHandlers