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:
O motorista do ônibus PCI grava 0xFFFFFFFF em uma BARRA.
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 |