IOCTL_USB_START_TRACKING_FOR_TIME_SYNC IOCTL (usbioctl.h)

Этот запрос регистрирует вызывающий объект в стеке USB-драйверов для служб синхронизации времени.

Основной код

IRP_MJ_DEVICE_CONTROL

Буфер входных и выходных данных

Указатель на структуру USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION. При входных данных вызывающий объект должен задать для элемента timeTrackingHandle значение NULL TimeTrackingHandle. В выходных данных стек 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

WdfIoTargetSendInternalIoctlSynchronous

WdfIoTargetSendIoctlSynchronously