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