Función NdisMEnableVirtualization (ndis.h)
Un controlador de minipuerto llama a la función NdisMEnableVirtualization durante la creación o eliminación de un conmutador NIC en el adaptador de red. Al llamar a esta función, el controlador configura la estructura de funcionalidad extendida de virtualización de E/S raíz única (SR-IOV) en el espacio de configuración de PCI Express (PCIe) para la función física (PF) del adaptador de red.
Sintaxis
NDIS_STATUS NdisMEnableVirtualization(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] USHORT NumVFs,
[in] BOOLEAN EnableVFMigration,
[in] BOOLEAN EnableMigrationInterrupt,
[in] BOOLEAN EnableVirtualization
);
Parámetros
[in] NdisMiniportHandle
Identificador del adaptador de red que NDIS pasó al parámetro MiniportAdapterHandle de MiniportInitializeEx.
[in] NumVFs
Valor de USHORT que contiene el número de funciones virtuales (VFs) que se van a habilitar para el adaptador de red. NdisMEnableVirtualization establece el miembro NumVFs de la estructura de funcionalidad extendida SR-IOV en el valor del parámetro NumVFs .
[in] EnableVFMigration
Este parámetro está reservado para NDIS y debe establecerse en FALSE.
[in] EnableMigrationInterrupt
Este parámetro está reservado para NDIS y debe establecerse en FALSE.
[in] EnableVirtualization
Valor BOOLEAN que especifica si la virtualización debe habilitarse en el espacio de configuración PCI del adaptador de red. Si EnableVirtualization es TRUE, NdisMEnableVirtualization establece el bit Enable de VF del miembro SR-IOV Control. NdisMEnableVirtualization borra este bit si EnableVirtualization es FALSE.
Valor devuelto
NdisMEnableVirtualization puede devolver uno de los siguientes valores de estado.
Código devuelto | Descripción |
---|---|
|
La operación de virtualización se completó correctamente. |
|
El adaptador o sistema no admite SR-IOV. |
|
El parámetro EnableVirtualization se establece en FALSE y el parámetro NumVFs se establece en un valor distinto de cero. |
|
Error en la operación de virtualización.
Nota Se produce un error en la función de NdisMEnableVirtualization si se llama a para habilitar la virtualización cuando la virtualización ya está habilitada. El controlador primero debe deshabilitar la virtualización (mediante una llamada a la función con el parámetro EnableVirtualization establecido en FALSE) antes de que el controlador pueda volver a habilitar la virtualización.
|
Comentarios
Los controladores de minipuerto PF llaman a NdisMEnableVirtualization para configurar los campos de funcionalidad extendida SR-IOV en el espacio de configuración pci. Esta llamada se usa para habilitar o deshabilitar la virtualización en el espacio de configuración, y también para especificar el número de máquinas virtuales que el adaptador de red debe exponer al tejido PCIe.
Cuando el controlador de minipuerto PF controla una solicitud de método OID de OID_NIC_SWITCH_CREATE_SWITCH, el controlador llama a NdisMEnableVirtualization para habilitar la virtualización en el adaptador de red para el conmutador NIC. El controlador lo hace llamando a NdisMEnableVirtualization con la siguiente configuración de parámetros.
Término | Descripción |
---|---|
NumVFs | Establezca en el número de máquinas virtuales que se habilitarán para el conmutador de NIC. |
EnableVirtualization | Establézcalo en TRUE. |
Cuando el controlador de minipuerto PF controla una solicitud de método OID de OID_NIC_SWITCH_DELETE_SWITCH, el controlador llama a NdisMEnableVirtualization para deshabilitar la virtualización en el adaptador de red. El controlador lo hace llamando a NdisMEnableVirtualization con la siguiente configuración de parámetros:
Término | Descripción |
---|---|
NumVFs | Establecer en cero. |
EnableVirtualization | Establézcalo en FALSE. |
Para obtener más información sobre cómo crear un conmutador NIC, consulte Creación de un conmutador NIC.
Para obtener más información sobre la interfaz SR-IOV, vea Información general sobre la virtualización de E/S raíz única (SR-IOV).
Interacción con un controlador de bus virtual
Si un proveedor de hardware independiente (IHV) proporciona un controlador de bus virtual (VBD) como parte de su paquete de controladores SR-IOV, su controlador de minipuerto no debe llamar a NdisMEnableVirtualization. En su lugar, el controlador debe interactuar con VBD a través de un canal de comunicación privado y solicitar que la llamada de VBD EnableVirtualization. Esta función la proporciona la interfaz GUID_PCI_VIRTUALIZATION_INTERFACE compatible con el controlador de bus PCI subyacente.El VBD que se ejecuta en el sistema operativo de administración de la partición primaria de Hyper-V puede consultar la interfaz de GUID_PCI_VIRTUALIZATION_INTERFACE mediante la emisión de una solicitud de IRP_MN_QUERY_INTERFACE a su objeto de dispositivo físico (PDO) en el bus PCI. Esta solicitud se debe realizar desde IRQL = PASSIVE_LEVEL. En esta solicitud, el controlador debe establecer el parámetro InterfaceType en GUID_PCI_VIRTUALIZATION_INTERFACE.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Se admite en NDIS 6.30 y versiones posteriores. |
Plataforma de destino | Universal |
Encabezado | ndis.h (incluya Ndis.h) |
Library | Ndis.lib |
IRQL | PASSIVE_LEVEL |
Consulte también