Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O NDIS emite uma solicitação de consulta de identificador de objeto (OID) de OID_SRIOV_PROBED_BARS para obter os valores dos Registradores de Endereço Base (BARs) PCI Express (PCIe) de um adaptador de rede. Esta função retorna os valores de barra que foram relatados pelo adaptador de rede após uma consulta realizada pelo driver de barramento PCI. Esta consulta determina a memória ou o espaço de endereço de E/S exigido pelo adaptador de rede.
O NDIS emite solicitações de consulta OID de OID_SRIOV_PROBED_BARS para o driver de miniporta para a função física PCIe (PF) do adaptador de rede. Essa solicitação de consulta OID é necessária para drivers de miniporta PF que suportam a interface de virtualização de E/S de 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 para uma operação de leitura nas barras PCI de um adaptador de rede.
Uma matriz de valores ULONG para cada BAR do adaptador de rede PCIe. O número máximo de elementos dentro dessa matriz é PCI_TYPE0_ADDRESSES.
Comentários
O driver de barramento PCI, que é executado no sistema operacional de gerenciamento da partição pai do Hyper-V, consulta os requisitos de memória ou espaço de endereço de E/S de cada barra (Registro de Endereço Base) PCI do adaptador de rede. O driver de barramento PCI executa essa consulta quando deteta pela primeira vez o adaptador no barramento.
Através desta consulta PCI BAR, o driver de barramento PCI determina o seguinte:
Se uma barra PCI é suportada pelo adaptador de rede.
Se uma BAR for suportada, quanta memória ou espaço de endereçamento de E/S é necessário para a BAR.
O driver de barramento PCI virtual (VPCI) é executado no sistema operacional convidado de uma partição filho Hyper-V. Quando uma função virtual (VF) PCI Express (PCIe) é conectada à partição filho, o driver de barramento VPCI irá 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 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 barramento VPCI consulta as barras PCI, o NDIS emite uma solicitação de consulta OID de OID_SRIOV_PROBED_BARS para o driver de miniporta 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.
Nota os pedidos OID de OID_SRIOV_PROBED_BARS só podem ser emitidos 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 NDIS_SRIOV_PROBED_BARS_INFO. Quando o driver de miniporta PF manipula esse OID, o driver deve retornar os valores de barra PCI dentro da matriz referenciada pelo BaseRegisterValuesOffset membro da estrutura NDIS_SRIOV_PROBED_BARS_INFO. Para cada deslocamento dentro da matriz, o driver de miniporta PF deve definir o elemento da matriz para o valor ULONG da BAR no mesmo deslocamento dentro do espaço de configuração PCI do adaptador físico.
Cada valor de barra retornado pelo driver deve ser o mesmo valor que seguiria uma consulta PCI BAR conforme executada pelo driver PCI executado no sistema operacional de gerenciamento. O driver de miniporta PF pode chamar NdisMQueryProbedBars para determinar essas informações.
Para obter mais informações sobre as BARs de um dispositivo PCI, consulte o PCI Local Bus Specification.
Para obter mais informações sobre como consultar registradores PCI BAR para um VF, consulte o Consultando os registradores de endereço base PCI de uma função virtual.
Códigos de status de retorno
O driver de miniporta 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 miniporta PF não suporta a interface de virtualização de E/S de 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 miniporta PF deve definir o DATA. QUERY_INFORMATION. BytesNeeded membro na estrutura NDIS_OID_REQUEST para o tamanho mínimo de buffer necessário. |
NDIS_STATUS_FAILURE |
O pedido foi rejeitado por outros motivos. |
Requerimentos
Versão |
Suportado no NDIS 6.30 e posterior. |
Cabeçalho |
Ntddndis.h (inclui Ndis.h) |