Compartilhar via


NDIS_SWITCH_NIC_PARAMETERS estrutura (ntddndis.h)

A estrutura NDIS_SWITCH_NIC_PARAMETERS especifica os parâmetros de configuração para um NIC (adaptador de rede) que está conectado a uma porta de comutador extensível 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 tipo do de cabeçalho deve ser definido como NDIS_OBJECT_TYPE_DEFAULT. Para especificar a versão da estrutura de NDIS_SWITCH_NIC_PARAMETERS, o membro de revisão do de cabeçalho deve ser definido como o seguinte valor:

NDIS_SWITCH_NIC_PARAMETERS_REVISION_1

Versão original do NDIS 6.30 e posterior.

Defina o membro tamanho como NDIS_SIZEOF_NDIS_SWITCH_NIC_PARAMETERS_REVISION_1.

Flags

Um valor de 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 do OID_SWITCH_NIC_CREATE é emitido pela primeira vez no tempo de vida de um objeto NIC de VM. Se esse sinalizador estiver definido:
  • Uma extensão do Comutador Extensível Hyper-V pode, opcionalmente, reduzir o valor do membro mtu na estrutura NDIS_SWITCH_NIC_PARAMETERS se precisar reservar espaço para encapsulamento antes de passar a OID para baixo na pilha. A extensão não poderá reservar espaço para cabeçalho de encapsulamento para qualquer outro tipo de NIC.
  • A extensão não deve aumentar o valor de 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 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 Hyper-V na qual o sistema operacional convidado que expõe o adaptador de rede está em execução.

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

Observação Este membro será válido somente se o membro NicType contiver um valor de NdisSwitchNicSyntheticNic ou NdisSwitchNicEmulatedNic.
 

VmFriendlyName

NetCfgInstanceId

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

Observação Este membro será válido somente 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.

Observação O valor desse membro pode ser alterado durante o tempo de vida de uma NIC de VM. Portanto, as extensões devem ler este membro da estrutura de NDIS_SWITCH_NIC_PARAMETERS que é passado 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 para o adaptador de rede.

Observação Este membro será válido somente 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 de 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 ao VMMacAddress. Se AllowTeaming for TRUE e o failover de agrupamento tiver ocorrido dentro da VM, o 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ísico subjacente que dá suporte à interface de virtualização de E/S raiz única (SR-IOV).

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

Observação O membro VFAssigned será válido somente 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]

Observações

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 de NDIS_SWITCH_NIC_PARAMETERS também é usada nas seguintes solicitações de OID:

Observação os tipos de dados NDIS_SWITCH_NIC_NAME, NDIS_SWITCH_NIC_FRIENDLYNAME, NDIS_VM_NAMEe NDIS_VM_FRIENDLYNAME são definidos por tipo pela estrutura de 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 comprimento dessa estrutura. Se a cadeia de caracteres for terminada em nulo, o membro Length não deverá incluir o caractere nulo de encerramento.
 

Diretrizes de para os membros nictype e NicName

Com base no valor membro do 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ísico associado ao adaptador de rede externo. Esse tipo de adaptador de rede é exposto no sistema operacional de gerenciamento executado na partição pai 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 Hyper-V e todas as partições filho.

    Observação O valor InstanceId é gerado pelo do 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 Hyper-V.

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

    Observação O nome de exibição do dispositivo é gerado pela camada de gerenciamento do Hyper-V WMI que é executada no sistema operacional de gerenciamento.
     
  • Para todos os outros valores de membro do 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 Hyper-V.

Diretrizes de para o membro de 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 é anexada ou atribui, uma partição filho Hyper-V à VF. O sistema operacional convidado executado nesta partição expõe um adaptador de rede de máquina virtual (VM) 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ísico SR-IOV subjacente e o adaptador virtual. No entanto, como o comutador extensível não está envolvido na entrega de pacotes, 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 de comutador extensível. Quando a extensão faz a indicação de status NDIS_STATUS_SWITCH_PORT_REMOVE_VF, ela especifica a porta de 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
de cliente com suporte mínimo Com suporte no NDIS 6.30 e posterior.
cabeçalho ntddndis.h (inclua Ndis.h, Fwpsk.h)

Consulte 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