Compartilhar via


GET_VIRTUAL_FUNCTION_PROBED_BARS função de retorno de chamada (wdm.h)

A rotina GetVirtualFunctionProbedBars retorna os valores dos BARs (Registros de Endereços Base) do PCI Express (PCIe) de um dispositivo que dá suporte à interface SR-IOV (virtualização de E/S de raiz única).

GetVirtualFunctionProbedBars retorna os valores bar que foram relatados pelo dispositivo após uma consulta que foi executada pelo driver de barramento PCI. Essa consulta determina a memória ou o espaço de endereço de E/S exigido pelo dispositivo.

Sintaxe

GET_VIRTUAL_FUNCTION_PROBED_BARS GetVirtualFunctionProbedBars;

NTSTATUS GetVirtualFunctionProbedBars(
  [in, out] PVOID Context,
  [out]     PULONG BaseRegisterValues
)
{...}

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.

[out] BaseRegisterValues

Um ponteiro para uma matriz de valores ULONG. A rotina GetVirtualFunctionProbedBars retorna um valor para cada BARRA do dispositivo.

GetVirtualFunctionProbedBars retorna um máximo de PCI_TYPE0_ADDRESSES valores dentro dessa matriz.

Retornar valor

A rotina GetVirtualFunctionProbedBars retorna um dos seguintes valores NTSTATUS:

Código de retorno Descrição
STATUS_SUCCESS A operação foi concluída com sucesso.
STATUS_INVALID_DEVICE_STATE O dispositivo não dá suporte à interface SR-IOV.

Comentários

O motorista do ônibus PCI. que é executado no sistema operacional de gerenciamento da partição pai do Hyper-V, consulta os requisitos de espaço de endereço de memória ou E/S de cada BARRA do dispositivo. O driver de barramento PCI executa essa consulta quando o detecta pela primeira vez o adaptador no barramento.

Por meio dessa consulta BAR, o motorista do barramento PCI determina o seguinte:

  • Se há suporte para uma BARRA no dispositivo.

  • Se houver suporte para uma BARRA, quanta memória ou espaço de endereço de E/S é necessário para a BARRA.

O driver PCI executa essa consulta BAR da seguinte maneira:

  1. O motorista do ônibus PCI grava 0xFFFFFFFF em uma BARRA.

  2. O driver de barramento PCI lê a BARRA para determinar a memória ou o espaço de endereço exigido pelo dispositivo. Um valor zero indica que o dispositivo não dá suporte à BARRA.

A rotina GetVirtualFunctionProbedBars é fornecida pela interface GUID_PCI_VIRTUALIZATION_INTERFACE .

As seguintes notas se aplicam à rotina GetVirtualFunctionProbedBars :

  • A interface SR-IOV não exige que os BARs de uma VF PCIe estejam em conformidade com o protocolo para determinar o tamanho do bloco de memória ou do espaço de endereço de E/S de uma BARRA. Portanto, o driver VPCI (PCI virtual), que é executado no sistema operacional convidado, determina o tamanho usando o tamanho equivalente dos BARs no dispositivo físico. O driver VPCI obtém essas informações chamando a rotina GetVirtualFunctionProbedBars .

  • O driver VPCI requer o tamanho da memória ou espaço de endereço de E/S para cada BARRA após o dispositivo físico ter sido iniciado. Nesse ponto, o driver PCI não pode executar uma consulta BAR no dispositivo sem alterar o valor atual da BARRA. Portanto, quando a rotina GetVirtualFunctionProbedBars é chamada pelo driver VPCI, o driver PCI retorna as informações de BARRA obtidas durante a consulta BAR. O driver PCI executou essa consulta quando o dispositivo foi detectado pela primeira vez no barramento.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte em Windows Server 2012 e versões posteriores do Windows.
Plataforma de Destino Área de Trabalho
Cabeçalho wdm.h (include Wdm.h)
IRQL PASSIVE_LEVEL

Confira também

PCI_VIRTUALIZATION_INTERFACE