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または適切なエラー状態に設定します。
要件
要件 | 値 |
---|---|
Header | usbioctl.h (Usbioctl.h を含む) |