IOCTL_HID_GET_COLLECTION_DESCRIPTOR IOCTL (hidclass.h)
IOCTL_HID_GET_COLLECTION_DESCRIPTOR要求は、最上位レベルのコレクションの 準備済みデータを取得します。このデータは、HID クラス ドライバーがデバイスの初期化中に物理デバイスのレポート記述子から抽出されます。
HIDClass デバイスの一般的な情報については、「HID コレクションの 」を参照してください。
メジャー コード
入力バッファー
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 を含む) |