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


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 (include Usbioctl.h)