функция обратного вызова SRIOV_QUERY_VF_LUID (pcivirt.h)

Возвращает локальный уникальный идентификатор функции PCI Express SR-IOV Virtual Function (VF).

Синтаксис

SRIOV_QUERY_VF_LUID SriovQueryVfLuid;

NTSTATUS SriovQueryVfLuid(
  [in]  PVOID Context,
  [in]  USHORT VfIndex,
  [out] PLUID Luid
)
{...}

Параметры

[in] Context

Указатель на определяемый драйвером контекст.

[in] VfIndex

Отсчитываемый от нуля индекс VF, запрашиваемый.

[out] Luid

Указатель на локальный уникальный идентификатор устройства SR_IOV, реализующего интерфейс.

Возвращаемое значение

Возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае верните соответствующий код ошибки NTSTATUS.

Замечания

Эта функция обратного вызова реализуется драйвером физической функции (PF). Он вызывается, когда система хочет получить идентификатор конкретной виртуальной функции.

Драйвер PF регистрирует свою реализацию, задав QueryLuid член SRIOV_DEVICE_INTERFACE_STANDARD_2, настроив структуру WDF_QUERY_INTERFACE_CONFIG и вызвав WdfDeviceAddQueryInterface.

Ниже приведен пример реализации этой функции обратного вызова. Драйвер PF создает уникальный идентификатор, вызывая ZwAllocateLocallyUniqueId и сохраняя его в контексте устройства.


NTSTATUS
Virtualization_QueryLuid (
    _In_        PVOID             Context,
    _Out_       PLUID             Luid
    )
{
    PDEVICE_CONTEXT deviceContext;

    PAGED_CODE();

    deviceContext = (PDEVICE_CONTEXT)Context;
    *Luid = deviceContext->Luid;

    return STATUS_SUCCESS;
}


Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10
минимальный поддерживаемый сервер Windows Server 2016
целевая платформа Виндоус
заголовка pcivirt.h