Condividi tramite


IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION IOCTL (usbioctl.h)

La IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION richiesta di I/O viene usata dai driver per informare il driver del bus USB che un dispositivo è inattivo e può essere sospeso.

Quando si invia questo IOCTL, il chiamante deve assegnare una routine di callback che esegue la sospensione effettiva del dispositivo. Il driver del bus USB chiamerà questa routine in PASSIVE_LEVEL quando è sicuro che il dispositivo venga spento. Se il dispositivo supporta la riattivazione remota e non ha già L'IRP Wait/Wake in sospeso, la routine di callback deve inviare un'IRP di attesa/riattivazione al driver del bus per il dispositivo, prima di attivarla.

Per altre informazioni, vedere Supporto di dispositivi con funzionalità Wake-Up e sospensione selettiva USB.

IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION è una richiesta di controllo I/O in modalità kernel. Questa richiesta è destinata all'hub USB PDO. Questa richiesta deve essere inviata a un irQL di PASSIVE_LEVEL.

Codice principale

IRP_MJ_INTERNAL_DEVICE_CONTROL

Buffer di input

Parameters.DeviceIoControl.Type3InputBuffer deve essere un puntatore a una struttura USB_IDLE_CALLBACK_INFO . Questa struttura deve contenere un puntatore alla routine di callback e un puntatore al contesto della routine di callback.

La struttura che contiene le informazioni di callback è definita in usbioctl.h come indicato di seguito:

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;

Lunghezza del buffer di input

Dimensione di una struttura USB_IDLE_CALLBACK_INFO .

Buffer di output

Nessuno.

Lunghezza del buffer di output

Nessuno.

Blocco dello stato

Il driver del bus o della porta imposta Irp-IoStatus.Status> su STATUS_SUCCESS o lo stato di errore appropriato.

Requisiti

Requisito Valore
Intestazione usbioctl.h (include Usbioctl.h)