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 请求由虚拟化堆栈发送到公开GUID_DEVINTERFACE_VIRTUALIZABLE_DEVICE的 PCI Express SR-IOV 物理功能(PF)驱动程序。

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

要求

要求 价值
标头 pcivirt.h
IRQL PASSIVE_LEVEL

另请参阅

SRIOV_PROXY_QUERY_LUID_OUTPUT