Compartilhar via


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

Confira também

PCI_VIRTUALIZATION_INTERFACE