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 PCI Express SR-IOV (VF) que se va a usar para generar un identificador de Plug and Play más genérico para el 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

None

Observaciones

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

La especificación PCI Express SR-IOV 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 diferentes códigos de clase, a través de las interfaces de espacio de configuración), de modo que cada VF pueda aparecer con los identificadores de 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 Value
Cliente mínimo compatible Windows 10
Servidor mínimo compatible Windows Server 2016
Plataforma de destino Windows
Encabezado pcivirt.h
IRQL PASSIVE_LEVEL