Share via


SRIOV_GET_VENDOR_AND_DEVICE_IDS回呼函式 (pcivirt.h)

提供PCI Express SR-IOV 虛擬函式的廠商和裝置識別碼 (VF) ,以用於產生 VF 的更一般 隨插即用 識別碼。 這些標識碼無法直接從 VF 的組態空間讀取。

語法

SRIOV_GET_VENDOR_AND_DEVICE_IDS SriovGetVendorAndDeviceIds;

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

參數

[in] Context

驅動程式定義內容的指標。

[in] VfIndex

套用此寫入作業之 VF 的以零起始的索引。

[out] VendorId

以 VF 廠商識別碼填入的 USHORT 變數指標。

[out] DeviceId

已填入 VF 裝置識別碼的 USHORT 變數指標。

傳回值

備註

此回呼函式是由實體函式實作, (PF) 驅動程式。 當系統想要擷取指定 VF 的廠商和裝置識別碼時,就會叫用它。

PCI Express SR-IOV 規格要求所有 VFS 具有相同的廠商和裝置識別碼。 這是相容硬體的需求。 不過,您可以佈建 VF,使其功能彼此不同,而且通常很適合在不同的硬體上載入不同的驅動程式。 因此,Windows 可讓 PF 驅動程式透過組態空間介面) 提供個別的裝置和廠商標識碼, (提供不同的類別代碼,讓每個 VF 可能會與最適合其使用的 隨插即用 標識符一起出現。

PF 驅動程式會藉由設定SRIOV_DEVICE_INTERFACE_STANDARDGetVendorAndDevice 成員、設定WDF_QUERY_INTERFACE_CONFIG結構,以及呼叫 WdfDeviceAddQueryInterface 來註冊其實作。

以下是這個回呼函式的範例實作。

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;
}

規格需求

需求
最低支援的用戶端 Windows 10
最低支援的伺服器 Windows Server 2016
目標平台 Windows
標頭 pcivirt.h
IRQL PASSIVE_LEVEL