次の方法で共有


IOCTL_HID_GET_FEATURE IOCTL (hidclass.h)

IOCTL_HID_GET_FEATURE要求は、 最上位のコレクションに関連付けられている機能レポートを返します。

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 です。

ミニドライバーの処理

HID_XFER_PACKET構造体のサイズ。

出力バッファー

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

ミニドライバーの処理

((PHID_XFER_PACKET)(Irp->UserBuffer))->reportBuffer は、HID ミニドライバーが機能レポートを返すために使用するリクエスター割り当て出力バッファーを指します。

出力バッファーの長さ

レポートを含むバッファーの長さ。

ミニドライバーの処理

HID_XFER_PACKET構造体のサイズ。

ステータス ブロック

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

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

ミニドライバーの処理

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

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

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

要件

要件
Header hidclass.h (Hidclass.h を含む)

こちらもご覧ください