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


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

Возвращает локальный уникальный идентификатор устройства SR-IOV.

Синтаксис

SRIOV_QUERY_LUID SriovQueryLuid;

NTSTATUS SriovQueryLuid(
  [in]  PVOID Context,
  [out] PLUID Luid
)
{...}

Параметры

[in] Context

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

[out] Luid

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

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

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

Замечания

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

Драйвер PF регистрирует свою реализацию путем задания QueryLuid члена SRIOV_DEVICE_INTERFACE_STANDARD, настройки структуры 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
IRQL PASSIVE_LEVEL