IOCTL_SRIOV_PROXY_QUERY_LUID IOCTL (pcivirt.h)
此请求提供实现接口的SR_IOV设备的本地唯一标识符。
主要代码
输出缓冲区
指向用标识符填充 的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 |