Поделиться через


IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION IOCTL (usbioctl.h)

IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION запрос ввода-вывода используется водителями для информирования драйвера USB-шины о том, что устройство неактивно и может быть приостановлено.

При отправке этого IOCTL вызывающий объект должен предоставить процедуру обратного вызова, которая выполняет фактическую приостановку устройства. Драйвер шины USB вызовет эту процедуру на PASSIVE_LEVEL, когда устройство безопасно выключается. Если устройство поддерживает удаленный пробуждение и не ожидает ожидания ожидания или пробуждения IRP, подпрограмма обратного вызова должна отправить IRP ожидания или пробуждения драйверу шины для устройства, прежде чем выключать его.

Дополнительные сведения см. в разделах Поддержка устройств с возможностями Wake-Up и Выборочная приостановка USB.

IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION — это запрос на управление вводом-выводом в режиме ядра. Этот запрос предназначен для PDO-концентратора USB. Этот запрос должен быть отправлен в IRQL PASSIVE_LEVEL.

Основной код

IRP_MJ_INTERNAL_DEVICE_CONTROL

Входной буфер

Parameters.DeviceIoControl.Type3InputBuffer должен быть указателем на структуру USB_IDLE_CALLBACK_INFO . Эта структура должна содержать указатель на подпрограмму обратного вызова и указатель на контекст подпрограммы обратного вызова.

Структура, содержащая сведения о обратном вызове, определяется в файле usbioctl.h следующим образом:

typedef VOID (*USB_IDLE_CALLBACK)(PVOID Context);

typedef struct _USB_IDLE_CALLBACK_INFO
{
  USB_IDLE_CALLBACK IdleCallback;
  PVOID IdleContext;
} USB_IDLE_CALLBACK_INFO, *PUSB_IDLE_CALLBACK_INFO;

Длина входного буфера

Размер структуры USB_IDLE_CALLBACK_INFO .

Выходной буфер

Нет.

Длина выходного буфера

Нет.

Блок состояния

Драйвер шины или порта задает Irp-IoStatus.Status> значение STATUS_SUCCESS или соответствующее состояние ошибки.

Требования

Требование Значение
Заголовок usbioctl.h (включая Usbioctl.h)