This request registers the caller with USB driver stack for time sync services.
Input / Output Buffer
A pointer to a USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION structure. On input, the caller must set the TimeTrackingHandle member to NULL. On output, the USB driver stack sets the TimeTrackingHandle member to a handle that tracks the sync services operation.
Input / Output Buffer Length
The size of the USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION structure.
Irp->IoStatus.Status is set to STATUS_SUCCESS if the request is successful. Otherwise, Status indicates an the appropriate error condition as a NTSTATUS code.
When this IOCTL request completes, the USB driver stack enables certain interrupts from the host controller to keep track of closest frame/microframe boundary in order to predict the system QPC value with accuracy. Enabling the hardware interrupts adds an overhead to the power consumption because the CPU wakes up every 2.048 seconds when working in the D0 power state. Therefore we recommend that the caller should register for time sync services only when needed.
The driver stack disables those interrupts when it receives and completes the IOCTL_USB_STOP_TRACKING_FOR_TIME_SYNC request.
|Minimum supported client||Windows 10, version 1709|
|Minimum supported server||Windows Server 2016|
We'd love to hear your thoughts. Choose the type you'd like to provide:
Our feedback system is built on GitHub Issues. Read more on our blog.