Compartilhar via


estrutura NDIS_SWITCH_NIC_PARAMETERS (ntddndis.h)

A estrutura NDIS_SWITCH_NIC_PARAMETERS especifica os parâmetros de configuração para um ADAPTADOR de Rede (NIC) que está conectado a uma porta de comutador extensível do Hyper-V.

Sintaxe

typedef struct _NDIS_SWITCH_NIC_PARAMETERS {
  NDIS_OBJECT_HEADER           Header;
  ULONG                        Flags;
  NDIS_SWITCH_NIC_NAME         NicName;
  NDIS_SWITCH_NIC_FRIENDLYNAME NicFriendlyName;
  NDIS_SWITCH_PORT_ID          PortId;
  NDIS_SWITCH_NIC_INDEX        NicIndex;
  NDIS_SWITCH_NIC_TYPE         NicType;
  NDIS_SWITCH_NIC_STATE        NicState;
  NDIS_VM_NAME                 VmName;
  NDIS_VM_FRIENDLYNAME         VmFriendlyName;
  GUID                         NetCfgInstanceId;
  ULONG                        MTU;
  USHORT                       NumaNodeId;
  UCHAR                        PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
  UCHAR                        VMMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
  UCHAR                        CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
  BOOLEAN                      VFAssigned;
  ULONG64                      NdisReserved[2];
} NDIS_SWITCH_NIC_PARAMETERS, *PNDIS_SWITCH_NIC_PARAMETERS;

Membros

Header

O tipo, a revisão e o tamanho da estrutura NDIS_SWITCH_NIC_PARAMETERS . Esse membro é formatado como uma estrutura NDIS_OBJECT_HEADER .

O membro Type de Header deve ser definido como NDIS_OBJECT_TYPE_DEFAULT. Para especificar a versão da estrutura NDIS_SWITCH_NIC_PARAMETERS , o membro Revision do Header deve ser definido com o seguinte valor:

NDIS_SWITCH_NIC_PARAMETERS_REVISION_1

Versão original do NDIS 6.30 e posterior.

Defina o membro Size como NDIS_SIZEOF_NDIS_SWITCH_NIC_PARAMETERS_REVISION_1.

Flags

Um valor ULONG que contém um OR bit a bit de sinalizadores. O valor do sinalizador a seguir é definido.

Valor Significado
NDIS_SWITCH_NIC_FLAGS_NIC_INITIALIZING
Esse sinalizador é definido quando o OID_SWITCH_NIC_CREATE OID é emitido pela primeira vez no tempo de vida de um objeto NIC da VM. Se esse sinalizador estiver definido:
  • Opcionalmente, uma extensão do Comutador Extensível do Hyper-V pode reduzir o valor do membro MTU na estrutura NDIS_SWITCH_NIC_PARAMETERS se precisar reservar espaço para encapsulamento antes de passar o OID para baixo na pilha. A extensão não poderá reservar espaço para encapsulamento para qualquer outro tipo de NIC.
  • A extensão não deve aumentar o valor de MTU .
Esse sinalizador será definido somente se o membro NicType for NdisSwitchNicTypeSynthetic.

NicName

Um valor NDIS_SWITCH_NIC_NAME que especifica o nome interno exclusivo do adaptador de rede que está conectado a uma porta de comutador extensível.

Para obter mais informações, consulte a seção Comentários.

NicFriendlyName

Um valor NDIS_SWITCH_NIC_FRIENDLYNAME que especifica a descrição amigável do adaptador de rede.

PortId

Um valor NDIS_SWITCH_PORT_ID que contém o identificador exclusivo da porta de comutador extensível à qual o adaptador de rede está conectado.

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 membro PortId .

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

NicType

Um valor NDIS_SWITCH_NIC_TYPE que especifica o tipo do adaptador de rede que está conectado a uma porta de comutador extensível.

NicState

Um valor NDIS_SWITCH_NIC_STATE que especifica o estado atual do adaptador de rede.

VmName

Um valor NDIS_VM_NAME que especifica o nome interno exclusivo da partição filho do Hyper-V na qual o sistema operacional convidado que expõe o adaptador de rede está em execução.

A partição filho do Hyper-V também é conhecida como VM (máquina virtual).

Nota Esse membro só será válido se o membro NicType contiver um valor de NdisSwitchNicSyntheticNic ou NdisSwitchNicEmulatedNic.
 

VmFriendlyName

NetCfgInstanceId

Um valor guid que especifica o valor do registro NetCfgInstanceId do adaptador de rede subjacente.

Nota Esse membro só será válido se o membro NicType estiver definido como NdisSwitchNicTypeExternal ou NdisSwitchNicTypeInternal. NetCfgInstanceId não será válido até que o adaptador de rede virtual tenha sido inicializado.
 

MTU

Um valor ULONG que especifica o tamanho máximo da MTU (unidade de transmissão), em bytes, para o adaptador de rede.

Nota O valor desse membro pode ser alterado durante o tempo de vida de uma NIC de VM. Portanto, as extensões devem ler esse membro da estrutura NDIS_SWITCH_NIC_PARAMETERS que é passada para baixo com os seguintes OIDs:
 

NumaNodeId

Um valor ushort que especifica o identificador para o nó NUMA (Acesso à Memória Não Uniforme) preferencial de uma CPU. Em computadores que dão suporte à arquitetura NUMA, o nó NUMA preferencial é a CPU que tem a menor distância até o adaptador de rede.

Nota Esse membro só será válido se o membro NicType estiver definido como NdisSwitchNicTypeSynthetic ou NdisSwitchNicTypeEmulated.
 

PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]

Uma matriz UCHAR que especifica o endereço MAC (controle de acesso à mídia) conforme configurado na partição de host para o adaptador de rede. Isso pode ser diferente do endereço MAC atualmente em uso pelo adaptador de rede.

VMMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]

Uma matriz UCHAR que especifica o endereço MAC configurado no adaptador de rede dentro da própria VM. O campo é todos zeros para NICs não VM. Se AllowMacSpoofing (de NDIS_SWITCH_PORT_PROPERTY_SECURITY) for TRUE, esse endereço também será aplicado ao CurrentMacAddress.

CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]

Uma matriz UCHAR que especifica o endereço MAC que está sendo usado no momento na opção para o adaptador de rede. Se AllowMacSpoofing e AllowTeaming forem FALSE, esse valor será igual a PermanentMacAddress. Se AllowMacSpoofing for TRUE, esse valor será igual à VMMacAddress. Se AllowTeaming for TRUE e o failover de agrupamento tiver ocorrido dentro da VM, CurrentMacAddress será igual ao endereço MAC que fez failover para o adaptador de rede ou PermanentMacAddress se nenhum failover tiver ocorrido.

VFAssigned

Um valor BOOLEAN que, se definido como TRUE, especifica que o adaptador de rede está anexado a uma VF (função virtual) PCI Express (PCIe). Uma VF é exposta por um adaptador de rede física subjacente que dá suporte à interface SR-IOV (virtualização de E/S de raiz única).

Para obter mais informações, consulte a seção Comentários.

Nota O membro VFAssigned só será válido se o membro NicType contiver um valor de NdisSwitchNicTypeEmulated ou NdisSwitchNicTypeSynthetic. Esse membro deverá ser definido como FALSE se o membro NicType contiver um valor de NdisSwitchNicTypeExternal ou NdisSwitchNicTypeInternal.
 

NdisReserved[2]

Comentários

Solicitações de consulta OID de OID_SWITCH_NIC_ARRAY retornam uma estrutura NDIS_SWITCH_NIC_ARRAY que contém zero ou mais elementos. Cada elemento é formatado como uma estrutura NDIS_SWITCH_NIC_PARAMETERS .

A estrutura NDIS_SWITCH_NIC_PARAMETERS também é usada nas seguintes solicitações OID:

Nota Os tipos de dados NDIS_SWITCH_NIC_NAME, NDIS_SWITCH_NIC_FRIENDLYNAME, NDIS_VM_NAME e NDIS_VM_FRIENDLYNAME são definidos por tipo pela estrutura IF_COUNTED_STRING . Uma cadeia de caracteres definida por essa estrutura não precisa ser terminada em nulo. No entanto, o comprimento da cadeia de caracteres deve ser definido no membro Length dessa estrutura. Se a cadeia de caracteres for terminada em nulo, o membro Length não deverá incluir o caractere nulo de terminação.
 

Diretrizes para os membros NicType e NicName

Com base no valor membro NicType , o formato do membro NicName é o seguinte:
  • Se o membro NicType estiver definido como NdisSwitchNicTypeExternal, o valor do membro NicName será o identificador de instância exclusivo (InstanceId) do adaptador de rede física associado ao adaptador de rede externo. Esse tipo de adaptador de rede é exposto no sistema operacional de gerenciamento executado na partição pai do Hyper-V.

    O adaptador de rede externo fornece uma conexão com o adaptador de rede física que está disponível no host. O adaptador de rede externo pode ser acessado pela partição pai do Hyper-V e por todas as partições filho.

    Nota O valor InstanceId é gerado pelo gerenciador de Plug and Play que é executado no sistema operacional de gerenciamento.
     
  • Se o membro NicType estiver definido como NdisSwitchNicTypeInternal, o valor do membro NicName será o nome de exibição do dispositivo que identifica o adaptador de rede interno. Esse tipo de adaptador de rede é exposto no sistema operacional de gerenciamento de uma partição pai do Hyper-V.

    O adaptador de rede interno pode ser acessado pela partição pai do Hyper-V e por todas as partições filho. No entanto, o adaptador de rede interno não se conecta ao adaptador de rede física que está disponível no host.

    Nota O nome de exibição do dispositivo é gerado pela camada de gerenciamento WMI do Hyper-V executada no sistema operacional de gerenciamento.
     
  • Para todos os outros valores de membro NicType , o valor do membro NicName é atribuído exclusivamente ao adaptador de rede sintético ou emulado pela interface de gerenciamento de política. Esses tipos de adaptadores de rede são expostos no sistema operacional convidado que é executado é uma partição filho do Hyper-V.

Diretrizes para o membro VFAssigned

Uma VF PCIe é criada e alocada por um adaptador físico subjacente que dá suporte à interface SR-IOV. Depois que o PCIe VF é criado, a pilha de virtualização anexa ou atribui uma partição filho do Hyper-V ao VF. O sistema operacional convidado executado nessa partição expõe um adaptador de rede de VM (máquina virtual) anexado ou atribuído ao adaptador físico SR-IOV subjacente.

Se o membro VFAssigned for definido como TRUE, os pacotes serão roteados diretamente entre o adaptador de rede física SR-IOV subjacente e o adaptador virtual. No entanto, como a opção extensível não está envolvida na entrega de pacotes, as políticas extensíveis de porta de comutador, como ACLs (listas de controle de acesso), não são aplicadas a esses pacotes.

A extensão pode remover uma atribuição de VF emitindo uma indicação de status NDIS_STATUS_SWITCH_PORT_REMOVE_VF. Essa indicação faz com que os pacotes sejam entregues por meio de uma porta de comutador extensível em vez de diretamente entre o adaptador de rede da VM e o adaptador físico SR-IOV. Isso permite que as políticas de porta de comutador extensível sejam aplicadas a pacotes recebidos ou enviados pela porta do comutador extensível. Quando a extensão faz o NDIS_STATUS_SWITCH_PORT_REMOVE_VF status indicação, ela especifica a porta do comutador extensível à qual o adaptador de rede virtual está conectado.

Para obter mais informações, consulte NDIS_STATUS_SWITCH_PORT_REMOVE_VF.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.30 e posterior.
Cabeçalho ntddndis.h (inclua Ndis.h, Fwpsk.h)

Confira também

NDIS_OBJECT_HEADER

NDIS_STATUS_SWITCH_PORT_REMOVE_VF

NDIS_SWITCH_NIC_ARRAY

NDIS_SWITCH_NIC_PARAMETERS

NDIS_SWITCH_NIC_STATE

NDIS_SWITCH_NIC_TYPE

OID_SWITCH_NIC_ARRAY

OID_SWITCH_NIC_CONNECT

OID_SWITCH_NIC_CREATE

OID_SWITCH_NIC_DELETE

OID_SWITCH_NIC_DISCONNECT

OID_SWITCH_NIC_SAVE

OID_SWITCH_NIC_SAVE_COMPLETE

OID_SWITCH_NIC_UPDATED