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 necesita el adaptador de red.

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

El miembro InformationBuffer de la estructura NDIS_OID_REQUEST contiene un puntero a un búfer. Este búfer tiene el formato 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 de Hyper-V, consulta los requisitos de espacio de direcciones de E/S o 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:

  • Si el adaptador de red admite una BARRA PCI.

  • Si se admite una barra, se requiere mucha 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 adaptador de red 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 necesario que requiere 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 pci, NDIS emite una solicitud de consulta OID de OID_SRIOV_PROBED_BARS al controlador de minipuerto PF. Los resultados devueltos por esta solicitud de consulta OID se reenvían al controlador de bus VPCI para que pueda determinar la cantidad de espacio de direcciones de memoria que necesitaría el adaptador de red VF.

Nota Las solicitudes de OID de OID_SRIOV_PROBED_BARS solo pueden ser emitidas por NDIS. La solicitud de OID no debe emitirse mediante controladores excesivos, como el protocolo de controladores de filtro.

La solicitud de consulta OID_SRIOV_PROBED_BARS contiene una estructura de NDIS_SRIOV_PROBED_BARS_INFO . Cuando el controlador de miniporte PF controla este OID, el controlador debe devolver los valores PCI BAR dentro de la matriz a la que hace referencia el miembro BaseRegisterValuesOffset 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 realizada por el controlador PCI que se ejecuta en el sistema operativo de administración. El controlador de minipuerto PF puede llamar a NdisMQueryProbedBars para determinar esta información.

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

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

Códigos de estado de devolución

El controlador de minipuerto 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 de OID se completó correctamente.

NDIS_STATUS_NOT_SUPPORTED

El controlador de minipuerto 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 data . QUERY_INFORMATION. Miembro BytesNeeded 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

Se admite en NDIS 6.30 y versiones posteriores.

Encabezado

Ntddndis.h (incluye Ndis.h)

Consulte también


NDIS_OID_REQUEST

NDIS_SRIOV_PROBED_BARS_INFO

NdisMQueryProbedBars