共用方式為


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)