IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION IOCTL (usbioctl.h)

Los controladores usan la IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION solicitud de E/S para informar al controlador del bus USB de que un dispositivo está inactivo y se puede suspender.

Al enviar este IOCTL, el autor de la llamada debe proporcionar una rutina de devolución de llamada que realice la suspensión real del dispositivo. El controlador del bus USB llamará a esta rutina en PASSIVE_LEVEL cuando sea seguro para que el dispositivo esté apagado. Si el dispositivo admite la reactivación remota y no tiene irP wait/Wake ya pendiente, la rutina de devolución de llamada debe enviar un IRP wait/Wake al controlador de autobús para el dispositivo, antes de apagarlo.

Para obtener más información, consulte Compatibilidad con dispositivos que tienen funcionalidades de Wake-Up y suspensión selectiva usb.

IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION es una solicitud de control de E/S en modo kernel. Esta solicitud tiene como destino el PDO del concentrador USB. Esta solicitud debe enviarse en un IRQL de PASSIVE_LEVEL.

Código principal

IRP_MJ_INTERNAL_DEVICE_CONTROL

Búfer de entrada

Parameters.DeviceIoControl.Type3InputBuffer debe ser un puntero a una estructura de USB_IDLE_CALLBACK_INFO . Esta estructura debe contener un puntero a la rutina de devolución de llamada y un puntero al contexto de rutina de devolución de llamada.

La estructura que contiene la información de devolución de llamada se define en usbioctl.h de la siguiente manera:

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;

Longitud del búfer de entrada

Tamaño de una estructura de USB_IDLE_CALLBACK_INFO .

Búfer de salida

Ninguno.

Longitud del búfer de salida

Ninguno.

Bloque de estado

El controlador de autobús o puerto establece Irp-IoStatus.Status> en STATUS_SUCCESS o el estado de error adecuado.

Requisitos

Requisito Valor
Header usbioctl.h (incluya Usbioctl.h)