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 системы. Включение аппаратных прерываний увеличивает затраты на потребление энергии, так как ЦП пробуждает каждые 2,048 секунды при работе в состоянии питания D0. Поэтому мы рекомендуем регистрировать вызывающий объект для служб синхронизации времени только при необходимости.

Стек драйверов отключает эти прерывания при получении и выполнении запроса IOCTL_USB_STOP_TRACKING_FOR_TIME_SYNC .

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1709
Минимальная версия сервера Windows Server 2016
Верхняя часть usbioctl.h
IRQL <= DISPATCH_LEVEL

См. также раздел

Создание запросов IOCTL в драйверах

WdfIoTargetSendInternalIoctlOthersSynchronously

WdfIoTargetSendInternalIoctlSynchronously

WdfIoTargetSendIoctlSynchronously