IOCTL_HID_SET_OUTPUT_REPORT IOCTL (hidclass.h)
IOCTL_HID_SET_OUTPUT_REPORT要求は、最上位のコレクションに出力レポートを送信します。
HIDClass デバイスの一般的な情報については、「HID コレクションの 」を参照してください。
メジャー コード
入力バッファー
Parameters.DeviceIoControl.InputBufferLength
メンバーは、HID クラス出力レポートを含む要求者によって割り当てられた入力バッファーのサイズ (バイト単位) に設定されます。
入力バッファーのサイズ (バイト単位)。 バッファーは、出力レポートを保持するのに十分な大きさに加えて、0 以外のレポート ID を指定する 1 バイトを追加する必要があります。 レポート ID が使用されていない場合、ID 値は 0 です。
Irp->AssociatedIrp.SystemBuffer
メンバーは、出力レポートを含む入力バッファーを指します。 コレクションにレポート ID が含まれている場合、要求元はバッファーの最初のバイトを 0 以外のレポート ID に設定する必要があります。 それ以外の場合、リクエスターは最初のバイトをゼロに設定する必要があります。 出力レポートは ((PUCHAR)ReportBuffer + 1)
にあります。
ミニドライバーの処理 を する
Irp->UserBuffer
は、HID クラス ドライバーが次のメンバーを入力するために使用する HID_XFER_PACKET 構造体を指します。
入力バッファーの長さ
入力バッファーのサイズ (バイト単位)。 バッファーは、出力レポートを保持するのに十分な大きさに加えて、0 以外のレポート ID を指定する 1 バイトを追加する必要があります。 レポート ID が使用されていない場合、ID 値は 0 です。
ミニドライバーの処理 を する
HID_XFER_PACKET 構造体のサイズ。
出力バッファー
何一つ。
出力バッファーの長さ
何一つ。
状態ブロック
HID クラス ドライバーは、Irp->IoStatus
の次のフィールドを設定します。
- 情報 は 0 に設定されます。
- ステータス は、転送がエラーなしで完了した場合にSTATUS_SUCCESSに設定されます。 それ以外の場合は、適切な NTSTATUS エラー コードに設定されます。
ミニドライバーの処理 を する
デバイスへの I/O を実行する HID ミニドライバーは、Irp->IoStatus
の次のフィールドを設定します。
- 情報 は、デバイスに転送されたバイト数に設定されます。
- ステータス は、転送がエラーなしで完了した場合にSTATUS_SUCCESSに設定されます。 それ以外の場合は、適切な NTSTATUS エラー コードに設定されます。
この IOCTL を使用して他のドライバーを呼び出して I/O を実行する HID ミニドライバーは、状態ブロックの 情報 フィールドが正しいことを確認し、状態 フィールドの内容を変更しないようにする必要があります。
必要条件
要件 | 価値 |
---|---|
ヘッダー | hidclass.h (Hidclass.h を含む) |