GET_VIRTUAL_DEVICE_LOCATION função de retorno de chamada (wdm.h)
A rotina GetLocation retorna o local do dispositivo de uma VF (função virtual) PCI Express (PCIe) em um barramento PCI. Um dispositivo que dá suporte à interface SR-IOV (virtualização de E/S de raiz única) pode expor um ou mais VFs no barramento PCI.
Sintaxe
GET_VIRTUAL_DEVICE_LOCATION GetVirtualDeviceLocation;
NTSTATUS GetVirtualDeviceLocation(
[in, out] PVOID Context,
[in] USHORT VirtualFunction,
[out] PUINT16 SegmentNumber,
[out] PUINT8 BusNumber,
[out] PUINT8 FunctionNumber
)
{...}
Parâmetros
[in, out] Context
Um ponteiro para informações de contexto específicas da interface. O chamador passa o valor que é passado como o membro Context da estrutura PCI_VIRTUALIZATION_INTERFACE para a interface.
[in] VirtualFunction
Um valor baseado em zero que especifica o VF no dispositivo para o qual o local do dispositivo é retornado
[out] SegmentNumber
Um ponteiro para uma variável fornecida pelo chamador na qual essa rotina retorna um valor UINT16 para o número atual do segmento PCI. Esse valor especifica o grupo de barramentos PCI no qual o dispositivo está anexado.
[out] BusNumber
Um ponteiro para uma variável fornecida pelo chamador na qual essa rotina retorna um valor UINT8. Esse valor especifica o número do barramento PCI atual no qual o dispositivo está anexado.
[out] FunctionNumber
Um ponteiro para uma variável fornecida pelo chamador na qual essa rotina retorna um valor UINT8. Esse valor contém o número da função para o VF especificado no barramento PCI.
Retornar valor
A rotina GetLocation retorna um dos seguintes valores NTSTATUS:
Código de retorno | Descrição |
---|---|
STATUS_SUCCESS | A operação foi concluída com sucesso. |
STATUS_INVALID_PARAMETER | O parâmetro VirtualFunction é maior que o valor do membro TotalVFs da estrutura de Capacidade Estendida SR-IOV para o dispositivo. |
Comentários
A rotina GetLocation retorna 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.
Após um retorno bem-sucedido de uma chamada para a rotina GetLocation , o parâmetro FunctionNumber contém um valor que representa o número da função para o VF especificado no barramento PCI. Esse valor se baseia na opção ARI (Interpretação alternativa de roteamento) da especificação PCI Express 3.0. A ARI trata um barramento PCIe como um único dispositivo com um espaço de função de 8 bits, o que permite 256 funções no barramento.
A rotina GetLocation é fornecida pela interface GUID_PCI_VIRTUALIZATION_INTERFACE .
O número do barramento PCI no qual o VF está localizado pode ser alterado. Não recomendamos que os drivers armazenem o local do dispositivo para uma VF em armazenamento não volátil, como o Registro.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte em Windows Server 2012 e versões posteriores do Windows Server. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | wdm.h (include Wdm.h) |
IRQL | PASSIVE_LEVEL |