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 请求由虚拟化堆栈发送到公开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 |