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 SR-IOV (virtualização de E/S de raiz única) no espaço de configuração do PCI Express (PCIe) para a PF (Função Física) 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 de 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 de Capacidade Estendida SR-IOV para o valor do parâmetro NumVFs .
[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 PCI do adaptador de rede. Se EnableVirtualization for TRUE, NdisMEnableVirtualization definirá o bit Habilitar VF do membro do controle SR-IOV. NdisMEnableVirtualization limpa esse bit se EnableVirtualization for FALSE.
Retornar valor
NdisMEnableVirtualization pode retornar um dos seguintes valores de status.
Código de retorno | Descrição |
---|---|
|
A operação de virtualização foi concluída com êxito. |
|
O adaptador ou sistema não dá suporte a SR-IOV. |
|
O parâmetro EnableVirtualization é definido como FALSE e o parâmetro NumVFs é definido como um valor diferente de zero. |
|
Falha na operação de virtualização.
Nota 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.
|
Comentários
Os drivers de miniporto PF chamam NdisMEnableVirtualization para configurar os campos de Capacidade Estendida SR-IOV no espaço de configuração do 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 expostas à malha PCIe pelo adaptador de rede.
Quando o driver de miniporto PF lida com 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 configurações de parâmetro a seguir.
Termo | 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 lida com 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:
Termo | Descrição |
---|---|
NumVFs | Defina 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 SR-IOV (Virtualização de E/S de Raiz Única).
Interfacing to a Virtual Bus Driver
Se um IHV (fornecedor independente de hardware) fornecer um VBD (driver de barramento 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 o VBD chame EnableVirtualization. Essa função é fornecida pela interface GUID_PCI_VIRTUALIZATION_INTERFACE compatível com o driver de barramento PCI subjacente.O VBD executado no sistema operacional de gerenciamento da partição pai do Hyper-V pode consultar a interface de GUID_PCI_VIRTUALIZATION_INTERFACE emitindo uma solicitação de IRP_MN_QUERY_INTERFACE para seu PDO (objeto de dispositivo físico) no barramento PCI. Essa solicitação deve ser feita de IRQL = PASSIVE_LEVEL. Nessa solicitação, o driver deve definir o parâmetro InterfaceType como GUID_PCI_VIRTUALIZATION_INTERFACE.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.30 e posterior. |
Plataforma de Destino | Universal |
Cabeçalho | ndis.h (inclua Ndis.h) |
Biblioteca | Ndis.lib |
IRQL | PASSIVE_LEVEL |
Confira também