estructura PCI_VIRTUALIZATION_INTERFACE (wdm.h)
La estructura de PCI_VIRTUALIZATION_INTERFACE permite a los controladores administrar y configurar el espacio de configuración de PCI Express (PCIe) para una función virtual (VF). Las máquinas virtuales se exponen en el bus PCI mediante dispositivos que admiten la interfaz de virtualización de E/S raíz única (SR-IOV).
Esta estructura describe la interfaz GUID_PCI_VIRTUALIZATION_INTERFACE .
Sintaxis
typedef struct _PCI_VIRTUALIZATION_INTERFACE {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
PSET_VIRTUAL_DEVICE_DATA SetVirtualFunctionData;
PGET_VIRTUAL_DEVICE_DATA GetVirtualFunctionData;
PGET_VIRTUAL_DEVICE_LOCATION GetLocation;
PGET_VIRTUAL_DEVICE_RESOURCES GetResources;
PENABLE_VIRTUALIZATION EnableVirtualization;
PGET_VIRTUAL_FUNCTION_PROBED_BARS GetVirtualFunctionProbedBars;
} PCI_VIRTUALIZATION_INTERFACE, *PPCI_VIRTUALIZATION_INTERFACE;
Miembros
Size
Tamaño, en bytes, de esta estructura.
Version
Versión de la interfaz definida por el controlador.
Context
Puntero a información de contexto específica de la interfaz.
InterfaceReference
Puntero a una rutina InterfaceReference que incrementa el recuento de referencias de la interfaz.
InterfaceDereference
Puntero a una rutina InterfaceDereference que disminuye el recuento de referencias de la interfaz.
SetVirtualFunctionData
Puntero a una rutina SetVirtualFunctionData que escribe datos en el espacio de configuración PCIe de un VF del dispositivo SR-IOV.
GetVirtualFunctionData
Puntero a una rutina GetVirtualFunctionData que lee los datos del espacio de configuración PCIe del VF de un dispositivo SR-IOV.
GetLocation
Puntero a una rutina GetLocation que proporciona información sobre la ubicación actual del dispositivo de una VF en la jerarquía de PCIe. Esta información es necesaria para un sistema de virtualización que usa una unidad de administración de memoria de E/S (IOMMU) para enrutar el tráfico hacia o desde el dispositivo.
GetResources
Puntero a una rutina GetResources que proporciona información sobre los recursos que están disponibles para la virtualización en un dispositivo SR-IOV.
EnableVirtualization
Puntero a una rutina EnableVirtualization que habilita o deshabilita la virtualización en un dispositivo SR-IOV.
GetVirtualFunctionProbedBars
Puntero a una rutina GetVirtualFunctionProbedBars que permite que una máquina virtual (VM) de Hyper-V sin privilegios determine qué se leería en los registros de direcciones base (BAR) de pcIe de una VF después de una consulta por parte del controlador de bus PCI. El controlador PCI realiza esta consulta para determinar el espacio de direcciones de E/S o memoria que requiere el dispositivo.
Comentarios
En el caso de los dispositivos que admiten la interfaz SR-IOV, los controladores ocasionalmente tienen que acceder y administrar el espacio de configuración PCIe de las máquinas virtuales del dispositivo. Los controladores llaman a rutinas desde la interfaz GUID_PCI_VIRTUALIZATION_INTERFACE para acceder al espacio de configuración PCIe de las máquinas virtuales del dispositivo.
Dado que las máquinas virtuales de un dispositivo no aparecen como dispositivos PCIe completos en el bus PCI, la interfaz GUID_BUS_INTERFACE_STANDARD no se puede usar para la administración de una VF.
La estructura PCI_VIRTUALIZATION_INTERFACE es una extensión de la estructura INTERFACE .
Un controlador obtiene un puntero a la estructura de PCI_VIRTUALIZATION_INTERFACE enviando un paquete de solicitud de E/S (IRP) de IRP_MN_QUERY_INTERFACE a su controlador de bus con InterfaceType establecido en GUID_PCI_VIRTUALIZATION_INTERFACE.
Requisitos
Requisito | Value |
---|---|
Servidor mínimo compatible | Windows Server 2012 |
Encabezado | wdm.h (incluya Wdm.h) |