IOCTL_SRIOV_PROXY_QUERY_LUID IOCTL (pcivirt.h)

此请求提供实现接口的SR_IOV设备的本地唯一标识符。

主要代码

IRP_MJ_DEVICE_CONTROL

输出缓冲区

指向用标识符填充 的SRIOV_PROXY_QUERY_LUID_OUTPUT 结构的指针。

输出缓冲区长度

SRIOV_PROXY_QUERY_LUID_OUTPUT 结构的大小

状态块

Irp->如果请求成功,IoStatus.Status 设置为 STATUS_SUCCESS。 否则, 状态 为相应的错误条件作为 NTSTATUS 代码。

注解

此 IOCTL 请求由虚拟化堆栈发送到 PCI Express SR-IOV 物理函数 (PF) 驱动程序,该驱动程序公开GUID_DEVINTERFACE_VIRTUALIZABLE_DEVICE。

此 IOCTL 请求源自用户模式,并由 PF) 驱动程序 (物理函数处理,以提供物理设备的本地唯一标识符。 只有执行直接分配的 SR-IOV 设备才需要此请求。

在发送此请求之前,用户模式应用程序必须通过查询GUID_DEVINTERFACE_VIRTUALIZABLE_DEVICE来获取 PCI Express SR-IOV 设备的句柄。

在此示例中,PF 驱动程序通过调用 ZwAllocateLocallyUniqueId 生成唯一标识符,并将其存储在设备上下文中。



    case IOCTL_SRIOV_PROXY_QUERY_LUID:

        status = WdfRequestRetrieveOutputBuffer(Request,
                                                sizeof(LUID),
                                                &luid,
                                                NULL);
        if (!NT_SUCCESS(status))
        {
            break;
        }

        RtlCopyMemory(luid, &deviceContext->Luid, sizeof(LUID));
        WdfRequestSetInformation(Request, sizeof(LUID));
        status = STATUS_SUCCESS;
        break;

要求

要求
Header pcivirt.h
IRQL PASSIVE_LEVEL

另请参阅

SRIOV_PROXY_QUERY_LUID_OUTPUT