Función NdisMEnableVirtualization (ndis.h)
Un controlador de miniporta 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 virtualización de E/S raíz única (SR-IOV) Estructura de funcionalidad extendida 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 de 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 VF Enable bit del miembro control de SR-IOV. 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 La función NdisMEnableVirtualization produce un error si se llama a para habilitar la virtualización cuando la virtualización ya está habilitada. El controlador primero debe deshabilitar la virtualización (llamando a la función con la EnableVirtualization parámetro establecido en FALSE) antes de que el controlador pueda volver a habilitar la virtualización.
|
Observaciones
Los controladores de miniport pf llaman a NdisMEnableVirtualization para configurar los campos de funcionalidad extendida de SR-IOV en el espacio de configuración de 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 miniporte 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. Para ello, llama a NdisMEnableVirtualization con la siguiente configuración de parámetros.
Término | Descripción |
---|---|
NumVFs | Establézcalo en el número de máquinas virtuales que se va a habilitar para el conmutador NIC. |
enableVirtualization | Establezca en TRUE. |
Cuando el controlador de miniport 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. Para ello, llama a NdisMEnableVirtualization con la siguiente configuración de parámetros:
Término | Descripción |
---|---|
NumVFs | Establézcalo 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 de SR-IOV, consulte Información general sobre la virtualización de E/S raíz única (SR-IOV).
interfase a un controlador de Virtual Bus
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 miniport 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 Hyper-V partición primaria 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 debe realizarse desde IRQL = PASSIVE_LEVEL. En esta solicitud, el controlador debe establecer el parámetro InterfaceType en GUID_PCI_VIRTUALIZATION_INTERFACE.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Compatible con NDIS 6.30 y versiones posteriores. |
de la plataforma de destino de | Universal |
encabezado de | ndis.h (incluya Ndis.h) |
biblioteca de | Ndis.lib |
irQL | PASSIVE_LEVEL |
Consulte también