共用方式為


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)