estrutura PCI_VIRTUALIZATION_INTERFACE (wdm.h)
A estrutura PCI_VIRTUALIZATION_INTERFACE permite que os drivers gerenciem e configurem o espaço de configuração do PCI Express (PCIe) para uma VF (função virtual). As VFs são expostas no barramento PCI por dispositivos que dão suporte à interface SR-IOV (virtualização de E/S de raiz única).
Essa estrutura descreve a interface GUID_PCI_VIRTUALIZATION_INTERFACE .
Sintaxe
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;
Membros
Size
O tamanho, em bytes, dessa estrutura.
Version
A versão da interface definida pelo driver.
Context
Um ponteiro para informações de contexto específicas da interface.
InterfaceReference
Um ponteiro para uma rotina InterfaceReference que incrementa a contagem de referência da interface.
InterfaceDereference
Um ponteiro para uma rotina InterfaceDereference que diminui a contagem de referência da interface.
SetVirtualFunctionData
Um ponteiro para uma rotina SetVirtualFunctionData que grava dados no espaço de configuração PCIe do VF de um dispositivo SR-IOV.
GetVirtualFunctionData
Um ponteiro para uma rotina GetVirtualFunctionData que lê dados do espaço de configuração PCIe do VF de um dispositivo SR-IOV.
GetLocation
Um ponteiro para uma rotina GetLocation que fornece informações sobre o local atual do dispositivo de um VF na hierarquia PCIe. Essas informações são necessárias para um sistema de virtualização que está usando uma IOMMU (unidade de gerenciamento de memória de E/S) para rotear o tráfego de ou para o dispositivo.
GetResources
Um ponteiro para uma rotina GetResources que fornece informações sobre os recursos disponíveis para virtualização em um dispositivo SR-IOV.
EnableVirtualization
Um ponteiro para uma rotina EnableVirtualization que habilita ou desabilita a virtualização em um dispositivo SR-IOV.
GetVirtualFunctionProbedBars
Um ponteiro para uma rotina GetVirtualFunctionProbedBars que permite que uma VM (máquina virtual) do Hyper-V sem privilégios determine o que seria lido dos BARs (Registros de Endereços Base) da PCIe de uma VF após uma consulta pelo driver de barramento PCI. O driver PCI executa essa consulta para determinar a memória ou o espaço de endereço de E/S necessário para o dispositivo.
Comentários
Para dispositivos que dão suporte à interface SR-IOV, os drivers ocasionalmente precisam acessar e gerenciar o espaço de configuração PCIe das VFs do dispositivo. Os drivers chamam rotinas da interface GUID_PCI_VIRTUALIZATION_INTERFACE para acessar o espaço de configuração PCIe das VFs no dispositivo.
Como as VFs de um dispositivo não aparecem como dispositivos PCIe completos no barramento PCI, a interface GUID_BUS_INTERFACE_STANDARD não pode ser usada para o gerenciamento de uma VF.
A estrutura PCI_VIRTUALIZATION_INTERFACE é uma extensão da estrutura INTERFACE .
Um driver obtém um ponteiro para a estrutura de PCI_VIRTUALIZATION_INTERFACE enviando um IRP (pacote de solicitação de E/S) de IRP_MN_QUERY_INTERFACE para seu driver de barramento com InterfaceType definido como GUID_PCI_VIRTUALIZATION_INTERFACE.
Requisitos
Requisito | Valor |
---|---|
Servidor mínimo com suporte | Windows Server 2012 |
Cabeçalho | wdm.h (include Wdm.h) |