次の方法で共有


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 は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構造体の内部構造は、内部システム使用のために予約されています。

要件

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

こちらもご覧ください

HidD_FreePreparsedData

HidD_GetPreparsedData