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) |