Поделиться через


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

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

Синтаксис

SRIOV_QUERY_VF_LUID SriovQueryVfLuid;

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

Параметры

[in] Context

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

[in] VfIndex

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

[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
Целевая платформа Windows
Header pcivirt.h