Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O NDIS emite uma solicitação de consulta OID (identificador de objeto) de OID_SRIOV_PROBED_BARS 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.
O NDIS emite solicitações de consulta OID de OID_SRIOV_PROBED_BARS para o driver de miniporto para PF (Função Física PCIe) do adaptador de rede. Essa solicitação de consulta OID é necessária para drivers de miniporto PF que dão suporte à interface de virtualização de E/S raiz única (SR-IOV).
O InformationBuffer membro da estrutura NDIS_OID_REQUEST contém um ponteiro para um buffer. Esse buffer é formatado para conter o seguinte:
Uma estrutura NDIS_SRIOV_PROBED_BARS_INFO que contém os parâmetros de uma operação de leitura nos BARs de PCI de um adaptador de rede.
Uma matriz de valores ULONG para cada BARRA do adaptador de rede PCIe. O número máximo de elementos dentro dessa matriz é PCI_TYPE0_ADDRESSES.
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 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.
Observação solicitações OID de OID_SRIOV_PROBED_BARS só podem ser emitidas pelo NDIS. A solicitação OID não deve ser emitida por drivers sobrepostos, como o protocolo de drivers de filtro.
A solicitação de consulta OID_SRIOV_PROBED_BARS contém uma estrutura de NDIS_SRIOV_PROBED_BARS_INFO. Quando o driver de miniporto PF manipula essa OID, o driver deve retornar os valores da BARRA de PCI dentro da matriz referenciada pelo membro BaseRegisterValuesOffset membro da estrutura NDIS_SRIOV_PROBED_BARS_INFO. Para cada deslocamento dentro da matriz, o driver de miniporto PF deve definir o elemento de matriz como o valor ULONG da BARRA no mesmo deslocamento dentro do espaço de configuração PCI do adaptador físico.
Cada valor BAR retornado pelo driver deve ser o mesmo valor que seguiria uma consulta PCI BAR, conforme executado pelo driver PCI executado no sistema operacional de gerenciamento. O driver de miniporto PF pode chamar NdisMQueryProbedBars para determinar essas informações.
Para obter mais informações sobre os BARs de um dispositivo PCI, consulte o de Especificação do Barramento Local da PCI.
Para obter mais informações sobre como consultar registros PCI BAR para um VF, consulte o consultando os registros de endereço base PCI de uma função virtual.
Códigos de status de retorno
O driver de miniporto PF retorna um dos seguintes códigos de status para a solicitação de consulta de OID_SRIOV_PROBED_BARS:
| Código de status | Descrição |
|---|---|
NDIS_STATUS_SUCCESS |
A solicitação OID foi concluída com êxito. |
NDIS_STATUS_NOT_SUPPORTED |
O driver de miniporto PF não dá suporte à interface de virtualização de E/S raiz única (SR-IOV) ou não está habilitado para usar a interface. |
NDIS_STATUS_INVALID_PARAMETER |
Um ou mais dos membros da estrutura NDIS_SRIOV_PROBED_BARS_INFO têm valores inválidos. |
NDIS_STATUS_INVALID_LENGTH |
O buffer de informações é menor que (sizeof(NDIS_SRIOV_PROBED_BARS_INFO) + PCI_TYPE0_ADDRESSES). O driver de miniporto PF deve definir o data . QUERY_INFORMATION. BytesNeededed membro na estrutura NDIS_OID_REQUEST para o tamanho mínimo do buffer necessário. |
NDIS_STATUS_FAILURE |
A solicitação falhou por outros motivos. |
Requisitos
Versão |
Com suporte no NDIS 6.30 e posterior. |
Cabeçalho |
Ntddndis.h (inclua Ndis.h) |