Función NdisMQueryProbedBars (ndis.h)
Un controlador de miniport llama a la función NdisMQueryProbedBars 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.
Sintaxis
NDIS_STATUS NdisMQueryProbedBars(
[in] NDIS_HANDLE NdisMiniportHandle,
[out] PULONG BaseRegisterValues
);
Parámetros
[in] NdisMiniportHandle
Identificador del adaptador de red que NDIS pasó al parámetro MiniportAdapterHandle de MiniportInitializeEx.
[out] BaseRegisterValues
Puntero a una matriz de valores de ULONG. La matriz contiene un valor ULONG para cada BARRA del adaptador de red PCIe.
Valor devuelto
NdisMQueryProbedBars puede devolver uno de los siguientes valores de estado.
Código devuelto | Descripción |
---|---|
|
La operación de consulta se completó correctamente. |
|
Error en la operación de consulta. |
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.
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 de identificador de objeto (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.
Durante el control de esta solicitud OID, el controlador puede llamar a NdisMQueryProbedBars para obtener los valores devueltos de la consulta BAR realizada por el controlador PCI.
Para obtener más información sobre cómo consultar registros de PCI BAR para un VF, consulte Consulta de los registros de direcciones base PCI de una función virtual.
Para obtener más información sobre la interfaz de SR-IOV, consulte Información general sobre la virtualización de E/S raíz única (SR-IOV).
interfase a un controlador de Virtual Bus
Si un proveedor de hardware independiente (IHV) proporciona un controlador de bus virtual (VBD) como parte de su paquete de controladores SR-IOV , su controlador de miniport no debe llamar a NdisMQueryProbedBars. En su lugar, el controlador debe interactuar con VBD a través de un canal de comunicación privado y solicitar que la llamada de VBD GetVirtualFunctionProbedBars. Esta función se expone desde la interfaz GUID_PCI_VIRTUALIZATION_INTERFACE compatible con el controlador de bus PCI subyacente.El VBD que se ejecuta en el sistema operativo de administración de Hyper-V partición primaria puede consultar la interfaz de GUID_PCI_VIRTUALIZATION_INTERFACE mediante la emisión de una solicitud de IRP_MN_QUERY_INTERFACE a su objeto de dispositivo físico (PDO) en el bus PCI. Esta solicitud debe realizarse desde IRQL = PASSIVE_LEVEL. En esta solicitud, el controlador debe establecer el parámetro InterfaceType en GUID_PCI_VIRTUALIZATION_INTERFACE.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Compatible con NDIS 6.30 y versiones posteriores. |
de la plataforma de destino de | Universal |
encabezado de | ndis.h (incluya Ndis.h) |
biblioteca de | Ndis.lib |
irQL | PASSIVE_LEVEL |
Consulte también