互換性 ID
互換性 ID は、Windows がデバイスをドライバー パッケージと照合するために使用するベンダー定義の識別文字列です。 互換性 ID は、ある程度の特定性に対してデバイスが何であるかを識別し、その ID を持つデバイスで動作できることを宣言するドライバー パッケージが、ある程度の機能のためにこのデバイスで動作できることを示します。 互換性 ID はハードウェア ID と同じ形式ですが、ハードウェア ID よりも汎用的なデバイス説明になる傾向があります。 デバイスには、互換性 ID の一覧を関連付けることができます。 互換性 ID は、適合性を低下させるために一覧表示する必要があります。 Windows がデバイスのハードウェア ID のいずれかに一致するドライバー パッケージを見つけることができない場合は、互換性 ID を使用してドライバー パッケージを検索します。 たとえば、デバイスの概念互換 ID の一覧は次のようになります。
<Product X made by company Y>
<Device of type W made by company Y>
<Device of type W>
実際の互換性 ID は、互換性 ID の形式要件に従う文字列を使用して、これらの概念を表します。
特定のデバイスの互換性 ID を見つけるには、デバイス マネージャーでデバイスを選択し、[プロパティ]、[詳細] タブの順に選択し、[プロパティ] ドロップダウンを使用します。
ベンダーがドライバー ノードの互換性 ID を指定するドライバー パッケージを出荷する場合、ベンダーは、ドライバー パッケージがその互換性 ID を公開するすべてのハードウェアをサポートできることを確認する必要があります。
互換性 ID の一覧は、デバイスの DEVPKEY_Device_CompatibleIds プロパティを取得することによってプログラムで取得できます。 たとえば、そのプロパティは、IoGetDevicePropertyData、SetupDiGetDeviceProperty、CM_Get_DevNode_Property などの API で取得できます。
このルーチンが取得する互換性 ID のリストは、REG_MULTI_SZ 値です。 互換性 ID リスト内の最大文字数は、各互換性 ID の後の NULL ターミネータと最後の NULL ターミネータを含めて、REGSTR_VAL_MAX_HCID_LEN
です。 互換性 ID のリストに含まれる ID の最大数は 64 です。