Compartir a través de


SRIOV_GET_VENDOR_AND_DEVICE_IDS función de devolución de llamada (pcivirt.h)

Proporciona el proveedor y el identificador de dispositivo para una función virtual de PCI Express SR-IOV (VF) que se usará para generar un identificador de Plug and Play más genérico para VF. Estos identificadores no se pueden leer directamente desde el espacio de configuración de VF.

Sintaxis

SRIOV_GET_VENDOR_AND_DEVICE_IDS SriovGetVendorAndDeviceIds;

void SriovGetVendorAndDeviceIds(
  [in]  PVOID Context,
  [in]  USHORT VfIndex,
  [out] PUSHORT VendorId,
  [out] PUSHORT DeviceId
)
{...}

Parámetros

[in] Context

Puntero a un contexto definido por el controlador.

[in] VfIndex

Índice de base cero del VF al que se aplica esta operación de escritura.

[out] VendorId

Puntero a una variable de USHORT que se rellena con el identificador de proveedor del VF.

[out] DeviceId

Puntero a una variable de USHORT que se rellena con el identificador de dispositivo del VF.

Valor devuelto

Ninguno

Observaciones

El controlador de función física (PF) implementa esta función de devolución de llamada. Se invoca cuando el sistema quiere recuperar los identificadores de proveedor y dispositivo del VF especificado.

La especificación de SR-IOV PCI Express requiere que todas las máquinas virtuales tengan los mismos identificadores de proveedor y dispositivo. Este es un requisito de hardware compatible. Sin embargo, es posible aprovisionar máquinas virtuales de forma que sus funcionalidades se diferencian entre sí y a menudo resulta útil cargar controladores diferentes en hardware diferente. Por lo tanto, Windows permite que el controlador PF proporcione identificadores de dispositivo y proveedor independientes (con códigos de clase diferentes, a través de las interfaces de espacio de configuración), de modo que cada VF pueda aparecer con los identificadores Plug and Play más adecuados para su uso.

El controlador PF registra su implementación estableciendo el miembro GetVendorAndDevice del SRIOV_DEVICE_INTERFACE_STANDARD, configurando una estructura de WDF_QUERY_INTERFACE_CONFIG y llamando a WdfDeviceAddQueryInterface.

Esta es una implementación de ejemplo de esta función de devolución de llamada.

Virtualization_GetVendorAndDevice (
    _In_    PVOID           Context,
    _In_    USHORT          VfIndex,
    _Out_   PUSHORT         VendorId,
    _Out_   PUSHORT         DeviceId
    )
{
    PDEVICE_CONTEXT deviceContext;

    UNREFERENCED_PARAMETER(VfIndex);
    PAGED_CODE();

    deviceContext = (PDEVICE_CONTEXT)Context;

    *VendorId = deviceContext->VendorId;
    *DeviceId = deviceContext->DeviceId;
}

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10
servidor mínimo admitido Windows Server 2016
de la plataforma de destino de Windows
encabezado de pcivirt.h
irQL PASSIVE_LEVEL