IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION IOCTL (usbioctl.h)
驅動程式會使用 IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION I/O 要求,通知 USB 總線驅動程式裝置閒置且可暫停。
傳送此 IOCTL 時,呼叫端必須提供回呼例程,以實際暫停裝置。 當裝置安全關閉時,USB 總線驅動程式會在PASSIVE_LEVEL呼叫此例程。 如果裝置支援遠端喚醒,且尚未擱置等候/喚醒 IRP,回呼例程應該先將等候/喚醒 IRP 提交給裝置的總線驅動程式,再將它關閉電源。
如需詳細資訊,請參閱 支援具有 Wake-Up 功能的裝置 和 USB 選擇性暫停。
IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION 是內核模式 I/O 控制要求。 此要求是以USB中樞 PDO 為目標。 此要求必須在PASSIVE_LEVEL的 IRQL 傳送。
主要程序代碼
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) |