Compartilhar via


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.

ObservaçãoNdisMQueryProbedBars só deve ser chamado pelo driver de miniporto para PF (Função Física PCIe) do 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.

ObservaçãoNdisMQueryProbedBars retorna um máximo de valores PCI_TYPE0_ADDRESSES dentro dessa matriz.
 

Valor de retorno

NdisMQueryProbedBars pode retornar um dos seguintes valores de status.

Código de retorno Descrição
NDIS_STATUS_SUCCESS
A operação de consulta foi concluída com êxito.
NDIS_STATUS_FAILURE
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.
O driver de ônibus virtual PCI (VPCI) é executado no sistema operacional convidado de uma partição filho Hyper-V. Quando uma VF (função virtual) PCI Express (PCIe) é anexada à partição filho, o driver de barramento VPCI exporá um adaptador de rede virtual para o VF (adaptador de rede VF). Antes de fazer isso, o driver de barramento VPCI deve executar uma consulta PCI BAR para determinar a memória necessária ou o espaço de endereço exigido pelo adaptador de rede VF.

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

GUID_PCI_VIRTUALIZATION_INTERFACE

GetVirtualFunctionProbedBars

OID_SRIOV_PROBED_BARS