Compartir a través de


OID_SRIOV_PROBED_BARS

NDIS emite una solicitud de consulta de identificador de objeto (OID) de OID_SRIOV_PROBED_BARS para obtener los valores de los registros de direcciones base (BAR) de PCI Express (PCIe) de un adaptador de red. Esta función devuelve los valores BAR notificados por el adaptador de red después de una consulta realizada por el controlador de bus PCI. Esta consulta determina el espacio de direcciones de E/S o memoria que requiere el adaptador de red.

NDIS emite solicitudes de consulta OID de OID_SRIOV_PROBED_BARS al controlador de miniport para la función física PCIe (PF) del adaptador de red. Esta solicitud de consulta OID es necesaria para los controladores de miniport pf que admiten la interfaz de virtualización de E/S raíz única (SR-IOV).

El informationBuffer miembro de la estructura NDIS_OID_REQUEST contiene un puntero a un búfer. Este búfer tiene el formato para contener lo siguiente:

  • Estructura NDIS_SRIOV_PROBED_BARS_INFO que contiene los parámetros de una operación de lectura en los BAR PCI de un adaptador de red.

  • Matriz de valores de ULONG para cada BARRA del adaptador de red PCIe. El número máximo de elementos de esta matriz es PCI_TYPE0_ADDRESSES.

Observaciones

El controlador de bus PCI, que se ejecuta en el sistema operativo de administración de la partición primaria Hyper-V, consulta los requisitos de espacio de direcciones de E/S o memoria de memoria de cada registro de direcciones base pci (BAR) del adaptador de red. El controlador de bus PCI realiza esta consulta cuando detecta por primera vez el adaptador en el bus.

A través de esta consulta PCI BAR, el controlador de bus PCI determina lo siguiente:

  • Indica si el adaptador de red admite pci bar.

  • Si se admite una BARRA, se requiere memoria o espacio de direcciones de E/S para la BARRA.

El controlador de bus pci virtual (VPCI) se ejecuta en el sistema operativo invitado de una partición secundaria de Hyper-V. Cuando una función virtual de PCI Express (PCIe) (VF) está conectada a la partición secundaria, el controlador de bus VPCI expondrá un adaptador de red virtual para el VF (adaptador de red VF). Antes de hacerlo, el controlador de bus VPCI debe realizar una consulta PCI BAR para determinar la memoria o el espacio de direcciones requeridos por el adaptador de red VF.

Dado que el acceso al espacio de configuración de PCI es una operación con privilegios, solo los componentes que se ejecutan en el sistema operativo de administración de una partición primaria de Hyper-V. Cuando el controlador de bus VPCI consulta los BAR de PCI, NDIS emite una solicitud de consulta OID de OID_SRIOV_PROBED_BARS al controlador de miniporte PF. Los resultados devueltos por esta solicitud de consulta OID se reenvían al controlador de bus VPCI para que pueda determinar cuánto espacio de direcciones de memoria necesitaría el adaptador de red VF.

Nota solicitudes de OID de OID_SRIOV_PROBED_BARS solo puede ser emitida por NDIS. La solicitud de OID no debe emitirse mediante el uso excesivo de controladores, como el protocolo de controladores de filtro.

La solicitud de consulta OID_SRIOV_PROBED_BARS contiene una estructura NDIS_SRIOV_PROBED_BARS_INFO. Cuando el controlador de miniporte PF controla este OID, el controlador debe devolver los valores DE PCI BAR dentro de la matriz a la que hace referencia el BaseRegisterValuesOffset miembro de la estructura NDIS_SRIOV_PROBED_BARS_INFO. Para cada desplazamiento dentro de la matriz, el controlador de minipuerto PF debe establecer el elemento de matriz en el valor ULONG de la BARRA en el mismo desplazamiento dentro del espacio de configuración PCI del adaptador físico.

Cada valor BAR devuelto por el controlador debe ser el mismo valor que seguiría una consulta PCI BAR que realiza el controlador PCI que se ejecuta en el sistema operativo de administración. El controlador de miniport pf puede llamar a NdisMQueryProbedBars para determinar esta información.

Para obtener más información sobre los BAR de un dispositivo PCI, consulte la especificación de bus local pci.

Para obtener más información sobre cómo consultar registros de PCI BAR para un VF, consulte el Consulta de los registros de direcciones base pci de una función virtual.

Códigos de estado de retorno

El controlador de miniport pf devuelve uno de los siguientes códigos de estado para la solicitud de consulta de OID_SRIOV_PROBED_BARS:

Código de estado Descripción

NDIS_STATUS_SUCCESS

La solicitud OID se completó correctamente.

NDIS_STATUS_NOT_SUPPORTED

El controlador de miniport pf no admite la interfaz de virtualización de E/S raíz única (SR-IOV) o no está habilitada para usar la interfaz.

NDIS_STATUS_INVALID_PARAMETER

Uno o varios de los miembros de la estructura NDIS_SRIOV_PROBED_BARS_INFO tienen valores no válidos.

NDIS_STATUS_INVALID_LENGTH

El búfer de información es menor que (sizeof(NDIS_SRIOV_PROBED_BARS_INFO) + PCI_TYPE0_ADDRESSES). El controlador de minipuerto PF debe establecer el DATA. QUERY_INFORMATION. BytesNeeded miembro de la estructura NDIS_OID_REQUEST al tamaño mínimo del búfer necesario.

NDIS_STATUS_FAILURE

Error en la solicitud por otros motivos.

Requisitos

Versión

Compatible con NDIS 6.30 y versiones posteriores.

Encabezado

Ntddndis.h (include Ndis.h)

Consulte también


NDIS_OID_REQUEST

NDIS_SRIOV_PROBED_BARS_INFO

NdisMQueryProbedBars