Função NdisMQueryProbedBars (ndis.h)
Um driver de miniporto chama a função NdisMQueryProbedBars para obter os valores dos BARs (Registros de Endereço Base) PCI Express (PCIe) de um adaptador de rede. Essa função retorna os valores bar que foram relatados pelo adaptador de rede após uma consulta executada pelo driver de barramento PCI. Essa consulta determina o espaço de endereço de E/S ou memória exigido pelo adaptador de rede.
Sintaxe
NDIS_STATUS NdisMQueryProbedBars(
[in] NDIS_HANDLE NdisMiniportHandle,
[out] PULONG BaseRegisterValues
);
Parâmetros
[in] NdisMiniportHandle
O identificador do adaptador de rede que o NDIS passou para o parâmetro MiniportAdapterHandle de MiniportInitializeEx.
[out] BaseRegisterValues
Um ponteiro para uma matriz de valores ULONG. A matriz contém um valor ULONG para cada BARRA do adaptador de rede PCIe.
Valor de retorno
NdisMQueryProbedBars pode retornar um dos seguintes valores de status.
Código de retorno | Descrição |
---|---|
|
A operação de consulta foi concluída com êxito. |
|
Falha na operação de consulta. |
Observações
O driver de barramento PCI, que é executado no sistema operacional de gerenciamento da partição pai Hyper-V, consulta os requisitos de espaço de endereço de E/S ou memória de cada BAR (Registro de Endereço Base) do PCI do adaptador de rede. O motorista do ônibus PCI executa essa consulta quando detecta pela primeira vez o adaptador no barramento.
Por meio dessa consulta PCI BAR, o motorista do ônibus PCI determina o seguinte:
- Se há suporte para uma BARRA de PCI pelo adaptador de rede.
- Se houver suporte para uma BARRA, a quantidade de memória ou espaço de endereço de E/S será necessária para a BARRA.
Como o acesso ao espaço de configuração de PCI é uma operação privilegiada, ele só pode ser executado por componentes executados no sistema operacional de gerenciamento de uma partição pai Hyper-V. Quando o driver de ônibus VPCI consulta os BARs de PCI, o NDIS emite uma solicitação de consulta OID (identificador de objeto) de OID_SRIOV_PROBED_BARS para o driver de miniporto PF. Os resultados retornados por essa solicitação de consulta OID são encaminhados para o driver de barramento VPCI para que ele possa determinar quanto espaço de endereço de memória seria necessário para o adaptador de rede VF.
Durante a manipulação dessa solicitação OID, o driver pode chamar NdisMQueryProbedBars para obter os valores retornados da consulta BAR executada pelo driver PCI.
Para obter mais informações sobre como consultar registros PCI BAR para um VF, consulte Consultando os registros de endereço base PCI de uma função virtual.
Para obter mais informações sobre a interface SR-IOV, consulte Visão geral da virtualização de E/S de Raiz Única (SR-IOV).
interfiguração para um motorista de ônibus virtual
Se um IHV (fornecedor de hardware independente) fornecer um VBD (driver de ônibus virtual) como parte de seu pacote de SR-IOV driver, seu driver de miniporto não deverá chamar NdisMQueryProbedBars. Em vez disso, o driver deve fazer a interface com o VBD por meio de um canal de comunicação privado e solicitar que a chamada do VBD GetVirtualFunctionProbedBars. Essa função é exposta a partir da interface de GUID_PCI_VIRTUALIZATION_INTERFACE que é compatível com o driver de ônibus PCI subjacente.O VBD executado no sistema operacional de gerenciamento da partição pai Hyper-V pode consultar a interface GUID_PCI_VIRTUALIZATION_INTERFACE emitindo uma solicitação IRP_MN_QUERY_INTERFACE para seu objeto de dispositivo físico (PDO) no barramento PCI. Essa solicitação deve ser feita de IRQL = PASSIVE_LEVEL. Nesta solicitação, o driver deve definir o parâmetro InterfaceType como GUID_PCI_VIRTUALIZATION_INTERFACE.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Com suporte no NDIS 6.30 e posterior. |
da Plataforma de Destino | Universal |
cabeçalho | ndis.h (inclua Ndis.h) |
biblioteca | Ndis.lib |
IRQL | PASSIVE_LEVEL |
Consulte também