Compartilhar via


Função NdisMEnableVirtualization (ndis.h)

Um driver de miniporto chama a função NdisMEnableVirtualization durante a criação ou exclusão de um comutador NIC no adaptador de rede. Ao chamar essa função, o driver configura a estrutura de funcionalidade estendida de E/S raiz única (SR-IOV) no espaço de configuração do PCI Express (PCIe) para a Função Física (PF) do adaptador de rede.

Observação NdisMEnableVirtualization só deve ser chamado pelo driver de miniporto para o PF do adaptador de rede.
 

Sintaxe

NDIS_STATUS NdisMEnableVirtualization(
  [in] NDIS_HANDLE NdisMiniportHandle,
  [in] USHORT      NumVFs,
  [in] BOOLEAN     EnableVFMigration,
  [in] BOOLEAN     EnableMigrationInterrupt,
  [in] BOOLEAN     EnableVirtualization
);

Parâmetros

[in] NdisMiniportHandle

O identificador do adaptador de rede que o NDIS passou para o parâmetro MiniportAdapterHandle de MiniportInitializeEx.

[in] NumVFs

Um valor USHORT que contém o número de VFs (Funções Virtuais) que devem ser habilitadas para o adaptador de rede. NdisMEnableVirtualization define o membro NumVFs da estrutura SR-IOV Capacidade Estendida para o valor do parâmetro numVFs.

Observação Se o parâmetro EnableVirtualization for FALSE, numVFs deverão ser definidos como zero.
 

[in] EnableVFMigration

Esse parâmetro é reservado para NDIS e deve ser definido como FALSE.

[in] EnableMigrationInterrupt

Esse parâmetro é reservado para NDIS e deve ser definido como FALSE.

[in] EnableVirtualization

Um valor BOOLEAN que especifica se a virtualização deve ser habilitada no espaço de configuração de PCI do adaptador de rede. Se EnableVirtualization for TRUE, NdisMEnableVirtualization definirá o VF Enable bit do membro do Controle de SR-IOV. NdisMEnableVirtualization limpará esse bit se EnableVirtualization for FALSE.

Valor de retorno

NdisMEnableVirtualization pode retornar um dos seguintes valores de status.

Código de retorno Descrição
NDIS_STATUS_SUCCESS
A operação de virtualização foi concluída com êxito.
NDIS_STATUS_NOT_SUPPORTED
O adaptador ou sistema não dá suporte a SR-IOV.
NDIS_STATUS_INVALID_PARAMETER
O parâmetro EnableVirtualization é definido como FALSE e o parâmetro numVFs é definido como um valor diferente de zero.
NDIS_STATUS_FAILURE
Falha na operação de virtualização.
Observação a função NdisMEnableVirtualization falhará se for chamada para habilitar a virtualização quando a virtualização já estiver habilitada. O driver deve primeiro desabilitar a virtualização (chamando a função com o parâmetro EnableVirtualization definido como FALSE) antes que o driver possa reabilitar a virtualização.
 

Observações

Os drivers de miniporto PF chamam NdisMEnableVirtualization para configurar os campos SR-IOV Capacidade Estendida no espaço de configuração de PCI. Essa chamada é usada para habilitar ou desabilitar a virtualização no espaço de configuração e também para especificar o número de VFs que devem ser expostos à malha PCIe pelo adaptador de rede.

Quando o driver de miniporto PF manipula uma solicitação de método OID de OID_NIC_SWITCH_CREATE_SWITCH, o driver chama NdisMEnableVirtualization para habilitar a virtualização no adaptador de rede para o comutador NIC. O driver faz isso chamando NdisMEnableVirtualization com as seguintes configurações de parâmetro.

Prazo Descrição
numVFs Defina como o número de VFs a serem habilitados para a opção NIC.
EnableVirtualization Defina como TRUE.
 

Quando o driver de miniporto PF manipula uma solicitação de método OID de OID_NIC_SWITCH_DELETE_SWITCH, o driver chama NdisMEnableVirtualization para desabilitar a virtualização no adaptador de rede. O driver faz isso chamando NdisMEnableVirtualization com as seguintes configurações de parâmetro:

Prazo Descrição
numVFs Definido como zero.
EnableVirtualization Defina como FALSE.
 

Para obter mais informações sobre como criar um comutador NIC, consulte Criando um comutador NIC.

Para obter mais informações sobre a interface SR-IOV, consulte Visão geral da virtualização de E/S de Raiz Única (SR-IOV).

interfiguração para um motorista de ônibus virtual

Se um fornecedor de hardware independente (IHV) fornecer um VBD (driver de ônibus virtual) como parte de seu pacote de driver SR-IOV , seu driver de miniporto não deverá chamar NdisMEnableVirtualization. Em vez disso, o driver deve fazer interface com o VBD por meio de um canal de comunicação privado e solicitar que a chamada do VBD EnableVirtualization. Essa função é fornecida pela interface GUID_PCI_VIRTUALIZATION_INTERFACE compatível com o driver de ônibus PCI subjacente.

O VBD executado no sistema operacional de gerenciamento da partição pai Hyper-V pode consultar a interface GUID_PCI_VIRTUALIZATION_INTERFACE emitindo uma solicitação IRP_MN_QUERY_INTERFACE para seu objeto de dispositivo físico (PDO) no barramento PCI. Essa solicitação deve ser feita de IRQL = PASSIVE_LEVEL. Nesta solicitação, o driver deve definir o parâmetro InterfaceType como GUID_PCI_VIRTUALIZATION_INTERFACE.

Requisitos

Requisito Valor
de cliente com suporte mínimo Com suporte no NDIS 6.30 e posterior.
da Plataforma de Destino Universal
cabeçalho ndis.h (inclua Ndis.h)
biblioteca Ndis.lib
IRQL PASSIVE_LEVEL

Consulte também

EnableVirtualization

GUID_PCI_VIRTUALIZATION_INTERFACE

OID_NIC_SWITCH_CREATE_SWITCH

OID_NIC_SWITCH_DELETE_SWITCH