次の方法で共有


IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL (hidclass.h)

IOCTL_HID_GET_COLLECTION_DESCRIPTOR要求は、最上位レベルのコレクションの 準備済みデータを取得します。このデータは、HID クラス ドライバーがデバイスの初期化中に物理デバイスのレポート記述子から抽出されます。

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

メジャー コード

IRP_MJ_DEVICE_CONTROL

入力バッファー

IRP の I/O スタック位置にある Parameters.DeviceIoControl.OutputBufferLength は、Irp->UserBufferで指定された出力バッファーのサイズをバイト単位で示します。

出力バッファー

Irp->UserBuffer は、HID クラス ドライバーが可変長 _HIDP_PREPARSED_DATA 構造体を返すために使用する要求者割り当てバッファーへの PVOID ポインターです。 このバッファーは、非ページ プールから割り当てる必要があります。

出力バッファーの長さ

準備されたデータ構造のサイズ (バイト単位) は、IOCTL_HID_GET_COLLECTION_INFORMATIONを使用して取得されます。

状態ブロック

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

  • 情報 は、準備されたデータのサイズ (バイト単位) に設定されます。
  • 状態 は、準備されたデータがエラーなしで取得された場合にSTATUS_SUCCESSに設定されます。 それ以外の場合は、適切な NTSTATUS エラー コードに設定されます。 要求者が指定した出力バッファーが、準備されたデータを保持するのに十分な大きさでない場合、状態はSTATUS_INVALID_BUFFER_SIZEに設定されます。

備考

_HIDP_PREPARSED_DATA 構造体には、最上位レベルのコレクションの準備済みデータが含まれています。

typedef struct _HIDP_PREPARSED_DATA * PHIDP_PREPARSED_DATA;

ユーザー モード アプリケーションは HidD_GetPreparsedData を呼び出して、可変長_HIDP_PREPARSED_DATA構造体で最上位レベルのコレクションの準備済みデータを取得します。

カーネル モード ドライバーは、IOCTL_HID_GET_COLLECTION_DESCRIPTOR 要求を使用して、最上位レベルのコレクションの準備されたデータへのポインターを取得します。

_HIDP_PREPARSED_DATA構造体の内部構造は、内部システム用に予約されています。

必要条件

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

関連項目

HidD_FreePreparsedData

HidD_GetPreparsedData