IOCTL_USB_START_TRACKING_FOR_TIME_SYNC IOCTL (usbioctl.h)

此请求将调用方注册到 USB 驱动程序堆栈进行时间同步服务。

主要代码

IRP_MJ_DEVICE_CONTROL

输入/输出缓冲区

指向 USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION 结构的指针。 在输入时,调用方必须将 TimeTrackingHandle 成员设置为 NULL。 输出时,USB 驱动程序堆栈会将 TimeTrackingHandle 成员设置为跟踪同步服务作的句柄。

输入/输出缓冲区长度

USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION 结构的大小。

状态块

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

言论

当此 IOCTL 请求完成时,USB 驱动程序堆栈使主机控制器的某些中断能够跟踪最近的帧/微帧边界,以便准确预测系统 QPC 值。 启用硬件中断会增加电源消耗开销,因为 CPU 在 D0 电源状态下每 2.048 秒唤醒一次。 因此,我们建议调用方仅在需要时注册时间同步服务。

驱动程序堆栈在收到并完成 IOCTL_USB_STOP_TRACKING_FOR_TIME_SYNC 请求时禁用这些中断。

要求

要求 价值
最低支持的客户端 Windows 10 版本 1709
支持的最低服务器 Windows Server 2016
标头 usbioctl.h
IRQL <= DISPATCH_LEVEL

另请参阅

在驱动程序中创建 IOCTL 请求

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously