次の方法で共有


IOCTL_HID_GET_INPUT_REPORT IOCTL (hidclass.h)

IOCTL_HID_GET_INPUT_REPORT要求は、最上位のコレクションから入力レポートを取得します。

HIDClass デバイスの一般的な情報については、「HID コレクションの 」を参照してください。

メジャー コード

IRP_MJ_DEVICE_CONTROL

入力バッファー

Parameters.DeviceIoControl.OutputBufferLength メンバーは、要求者によって割り当てられた出力バッファーのサイズをバイト単位で指定します。 HID クラス ドライバーは、このバッファーを使用して入力レポートを返します。

コレクションにレポート ID が含まれている場合、要求元は出力バッファーの最初のバイトを 0 以外のレポート ID に設定する必要があります。 それ以外の場合、リクエスターは出力バッファーの最初のバイトをゼロに設定する必要があります。

ミニドライバーの処理 する

Irp->UserBuffer は、HID クラス ドライバーが次のメンバーを入力するために使用する HID_XFER_PACKET 構造体を指します。

入力バッファーの長さ

バッファーのサイズ (バイト単位)。 バッファーは、入力レポートを保持するのに十分な大きさに加えて、0 以外のレポート ID を指定する 1 バイトを追加する必要があります。 レポート ID が使用されていない場合、ID 値は 0 です。

出力バッファー

Irp->MdlAddress メンバーは、HID クラス ドライバーが入力レポートを返すために使用する要求者によって割り当てられた出力バッファーを指します。 要求元がレポート ID または 0 を入力するために使用するバッファーの最初のバイトは変更されません。 入力レポートは、((PUCHAR)Irp->MdlAddress + 1)に返されます。

ミニドライバーの処理 する

((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer は、HID ミニドライバーが入力レポートを返すために使用する要求者によって割り当てられた出力バッファーを指します。

出力バッファーの長さ

出力レポートのサイズ。

状態ブロック

HID クラス ドライバーは、Irp->IoStatusの次のフィールドを設定します。

  • 情報 は 0 に設定されます。
  • ステータス は、転送がエラーなしで完了した場合にSTATUS_SUCCESSに設定されます。 それ以外の場合は、適切な NTSTATUS エラー コードに設定されます。

ミニドライバーの処理 する

デバイスへの I/O を実行する HID ミニドライバーは、Irp->IoStatusの次のフィールドを設定します。

  • 情報 は、デバイスから転送されたバイト数に設定されます。
  • ステータス は、転送がエラーなしで完了した場合にSTATUS_SUCCESSに設定されます。 それ以外の場合は、適切な NTSTATUS エラー コードに設定されます。

この IOCTL を使用して他のドライバーを呼び出してデバイスに I/O を実行する HID ミニドライバーは、状態ブロックの 情報 フィールドが正しいことを確認し、状態 フィールドの内容を変更しないようにする必要があります。

必要条件

要件 価値
ヘッダー hidclass.h (Hidclass.h を含む)

関連項目