次の方法で共有


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 を含む)