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