次の方法で共有


INF ClassInstall32 セクション

注意事項

ユニバーサル または Windows ドライバー パッケージをビルドする場合、このセクションは無効です。 「ユニバーサル INF ファイルを使用する」および「Windows ドライバーの開発の概要」を参照してください。

ClassInstall32 セクションでは、新しいクラス内のデバイスの新しい デバイス セットアップ クラス をインストールします。

[ClassInstall32] | 
[ClassInstall32.nt] | 
[ClassInstall32.ntx86] |
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows) 
[ClassInstall32.ntarm64] (Windows 10 version 1709 and later versions of Windows) 

AddReg=add-registry-section[,add-registry-section]...
[AddProperty=add-property-section[,add-property-section] ...]  (Windows Vista and later versions of Windows)
[Copyfiles=@filename | file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-section]...]
[DelProperty=del-property-section[,del-property-section] ...]  (Windows Vista and later versions of Windows)
[Delfiles=file-list-section[,file-list-section]...]
[Renfiles=file-list-section[,file-list-section]...]
[BitReg=bit-registry-section[,bit-registry-section]...]
[UpdateInis=update-ini-section[,update-ini-section]...]
[UpdateIniFields=update-inifields-section[,update-inifields-section]...]
[Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...]

Entries

AddReg=add-registry-section[,add-registry-section]...
レジストリに書き込むクラス固有の値エントリを含む 1 つ以上の名前付きセクションを参照します。 通常、これは、新しいデバイス セットアップ クラスに少なくとも他のコンポーネントが後でレジストリから取得できるフレンドリ名を指定し、この新しいデバイス クラスのインストール済みデバイスを開いたり、このデバイス セットアップ クラスのプロパティ ページ プロバイダーを "インストール" したりするために使用します。

任意の add-registry セクションHKR 仕様は、そのクラスの設定を含むレジストリ キーを指定します。 追加情報は、次の コメント セクションを参照してください。

詳しくは、「INF AddReg ディレクティブ」をご覧ください。

AddProperty=add-property-section[,add-property-section]...
(Windows Vista 以降のバージョンの Windows) デバイス セットアップ クラスに設定されている デバイス プロパティ を変更する 1 つ以上の INF ファイル セクションを参照します。 INF AddProperty ディレクティブ は、Windows Vista 以降のバージョンの Windows オペレーティング システムに新しいデバイス セットアップ クラス プロパティを設定する場合にのみ使用する必要があります。

Windows Server 2003、Windows XP、または Windows 2000 で以前に導入され、対応するレジストリ エントリ値を持つデバイス クラス プロパティの場合は、引き続き INF AddReg ディレクティブ を使用してデバイス セットアップ クラスプロパティを設定する必要があります。 これらのガイドラインは、システム定義のプロパティとカスタム プロパティに適用されます。

AddProperty ディレクティブの使用方法の詳細については、「INF AddProperty ディレクティブと INF DelProperty ディレクティブの使用」を参照してください。

Copyfiles=@filename | file-list-section[,file-list-section]...
ソース メディアからコピー先にコピーする名前付きファイルを 1 つ指定するか、ソース メディア上のクラス関連ファイルが転送先に指定されている 1 つ以上の名前付きセクションを参照します。 INF の DestinationDirs セクションの DefaultDestDir エントリは、コピーするクラス固有の単一ファイルの宛先ディレクトリを指定します。

詳しくは、「INF CopyFiles ディレクティブ」をご覧ください。

Note

デバイス セットアップ クラス用のシステム提供の INF ファイルでは、このセクションではこのディレクティブを使用しません。

DelReg=del-registry-section[,del-registry-section]...
クラス インストーラーのインストール時に値エントリまたはキーがレジストリから削除されるように指定されている 1 つ以上の名前付きセクションを参照します。

ただし、特定の {SetupClassGUID} が既にインストールされているクラスとして存在する場合、システム セットアップ コードは、その バージョン セクションで同じ GUID 値を指定する INF の ClassInstall32 セクションを無視します。 そのため、INF は、既存のクラス インストーラーを置き換えたり、 ClassInstall32 セクションから動作を変更したりすることはできません。

詳しくは、「INF DelReg ディレクティブ」をご覧ください。

DelProperty=del-property-section[,del-property-section]...
(Windows Vista 以降のバージョンの Windows) デバイス セットアップ クラスに設定されている デバイス プロパティ を削除する 1 つ以上の INF ファイル セクションを参照します。 INF DelProperty ディレクティブ は、Windows Vista 以降のバージョンの Windows オペレーティング システムに新しいデバイス セットアップ クラス プロパティを削除する場合にのみ使用する必要があります。

Windows Server 2003、Windows XP、または Windows 2000 で以前に導入され、対応するレジストリ エントリ値を持つデバイス クラス プロパティの場合は、引き続き INF DelReg ディレクティブ を使用してデバイス セットアップ クラスプロパティを削除する必要があります。 これらのガイドラインは、システム定義のプロパティとカスタム プロパティに適用されます。

DelProperty ディレクティブの使用方法の詳細については、「INF AddProperty ディレクティブと INF DelProperty ディレクティブの使用」を参照してください。

Delfiles=file-list-section[,file-list-section]...
以前にインストールしたクラス関連ファイルが削除対象として指定されている 1 つ以上の名前付きセクションを参照します。

詳しくは、「INF DeLFiles ディレクティブ」をご覧ください。

Renfiles=file-list-section[,file-list-section]...
変換先で名前を変更するクラス関連のファイルが一覧表示される 1 つ以上の名前付きセクションを参照します。

詳しくは、「INF RenFiles ディレクティブ」をご覧ください。

BitReg=bit-registry-section[,bit-registry-section]...
このセクションでは有効ですが、ほとんど使用されません。

詳しくは、「INF BitReg ディレクティブ」をご覧ください。

UpdateInis=update-ini-section[,update-ini-section]...
このセクションでは有効ですが、ほとんど使用されません。

詳細については、 INF UpdateInis ディレクティブを参照してください。

UpdateIniFields=update-inifields-section[,update-inifields-section]...
このセクションでは有効ですが、ほとんど使用されません。

詳細については、 INF UpdateIniFields ディレクティブを参照してください。

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
このセクションでは有効ですが、ほとんど使用されません。

詳細については、 INF UpdateIniFields ディレクティブを参照してください。

解説

デバイスINFファイルに ClassInstall32 セクションを含める 必要があるのは、新しいカスタム デバイス セットアップ クラスをインストールする場合のみです。 インストールされているクラス内のデバイスのINFファイルには、 システム提供のデバイス セットアップ クラス かカスタム クラスかに関係なく、 ClassInstall32 セクションを含める ことはできません。 クラスがまだインストールされていない場合にのみ、システムによって ClassInstall32 セクションが処理されるため、 ClassInstall32 セクションを使用して、既にインストールされているクラスの設定を再インストールまたは変更することはできません。 特に、 ClassInstall32 セクションを使用して、既にインストールされているクラスのクラス共同インストーラーまたはクラス フィルター ドライバーを追加することはできません。 共同インストーラーとフィルター ドライバーをインストールする方法については、「共同インストーラーの作成フィルター ドライバーのインストール」を参照してください。

通常、 ClassInstall32 セクションには、レジストリ内のシステム指定の SetupClassGUID サブキーの下にエントリを追加する 1 つ以上の AddReg ディレクティブがあります。 これらのエントリには、クラス固有の "フレンドリ名"、クラス インストーラー パス、クラス アイコン、プロパティ ページ プロバイダーなどを含めることができます。

AddRegCopyFiles を除き、ここに示す他のディレクティブは ClassInstall32 セクションでほとんど使用しません。

ドライバー ファイルのマルチプラットフォーム分散をサポートするには、プラットフォーム固有の ClassInstall32 セクションを構築します。 たとえば、 ClassInstall32 セクションを処理するすべてのシステム SetupAPI 関数は、最初に x86 プラットフォームの ClassInstall32.ntx86 セクションを検索し、 ClassInstall32.ntx86 セクションが見つからない場合にのみ、非装飾 ClassInstall32 セクションを調べます。 システム定義の .nt, .ntx86, .ntia64, .ntamd64, .ntarm, および .ntarm64 の拡張機能の使用方法の詳細については、「複数のプラットフォームとオペレーティング システム用の INF ファイルの作成」を参照してください。

Note

ClassInstall32 セクション名は、64 ビット プラットフォームでのインストールにも使用されます。

Windows 2000 以降では、インストールされているすべてのデバイスが デバイス セットアップ クラスに関連付けられます。 インストールするデバイスの INF が新しいデバイス クラス インストーラーに関連付けられていない場合、または バージョン セクションの ClassGUID= 仕様 がシステム定義のセットアップ クラス GUID と一致しない場合、そのデバイスは "Unknown" という名前のデバイス セットアップ クラスに関連付けられます。

デバイス クラス インストーラーの INF には、通常、 ClassInstall32 セクションに AddReg ディレクティブがあり、その種類のデバイスのフレンドリ名を作成する名前付きセクションを少なくとも 1 つ定義します。 セットアップ コードは、その (新しい) セットアップ クラスの最初のデバイスがインストールされるときに、INF の バージョン セクションの ClassGUID= エントリに指定された値から、レジストリ内の適切な場所に SetupClassGUID キーを自動的に作成します。

INF は、 ClassInstall32 セクションで参照されている追加レジストリ セクションを使用して、プロパティ ページ プロバイダーを指定し、ユーザー インターフェイスでのデバイスのクラスの処理方法を制御できます。

このようなクラス固有の add-registry セクションには、次の一般的な形式があります。

[SetupClassAddReg]
 
HKR,,,,%DevClassName% ; device-class friendly name 
[HKR,,Installer32,,"class-installer.dll,class-entry-point"] 
[HKR,,EnumPropPages32,,"prop-provider.dll,provider-entry-point"]
HKR,,Icon,,"icon-number" 
[HKR,,SilentInstall,,1]
[HKR,,NoInstallClass,,1]
[HKR,,NoDisplayClass,,1]

システムは、指定されたアイコンを使用して、ユーザーに対するインストーラーを表します。

  • Icon の値が正の場合は、リソースのリソース識別子を表します。 リソースは、Installer32 キーが指定されている場合はクラス インストーラー DLL から、EnumPropPages32 キーが指定されている場合はプロパティ ページ DLL から抽出されます。 値 "0" は、DLL の最初のアイコンを表します。 値 "1" は予約されています。
  • Icon の値が負の場合、絶対値はSetupApi.DLLのアイコンのリソース識別子です。

クラス固有のレジストリ キーで 定義済みの SilentInstallNoDisplayClass、および NoInstallClass ブール値エントリを設定すると、次の効果があります。

  • SilentInstall を設定すると、インストーラーは、クラス インストーラーの INF ファイルの DDInstall セクションで指定されている場合でも、そのクラスのデバイスをインストールするときに応答を必要とするポップアップ メッセージをユーザーに送信しません。また、それぞれのバージョン セクションで同じ ClassGuid={ClassGUID} 仕様を設定することで、このクラスの宣言を行う、後でインストールされたデバイス用の別の INF ファイルに送信されます。 たとえば、CD-ROM デバイスとディスク デバイスのシステム クラス インストーラーと、システム並列ポート クラス インストーラーは、それぞれのレジストリ キーに SilentInstall を設定します。

    クラス固有のインストーラーで、コンピューターをインストールするデバイスの再起動が必要な場合、INF のクラス固有の追加レジストリ セクションにこの値エントリを含めることはできません。

  • NoDisplayClass を設定すると、デバイス マネージャーによって、このクラスのすべてのデバイスのユーザーに表示される表示が抑制されます。 たとえば、プリンターとネットワーク ドライバー (クライアント、サービス、プロトコルを含む) のシステム クラス インストーラーは、それぞれのレジストリ キーに NoDisplayClass を設定します。

  • NoInstallClass を設定すると、この種類のデバイスがエンド ユーザーによる手動インストールを必要とすることはありません。 たとえば、排他的にプラグ アンド プレイ (PnP) デバイスのシステム クラス インストーラーは、それぞれのレジストリ キーに NoInstallClass を設定します。

ClassInstall32 セクションには、セットアップ クラスのデバイスの DeviceTypeDeviceCharacteristicsSecurity を設定する AddReg ディレクティブを含めることができます。 詳しくは、「INF AddReg ディレクティブ」を参照してください。

この例では、 ClassInstall32 セクションと、 AddReg ディレクティブで参照する名前付きセクションを示します。

[ClassInstall32] 
AddReg=example_class_addreg

[example_class_addreg]
HKR,,,,%ClassName%
HKR,,Icon,,"-1"

これに対し、この例では、クラス固有のプロパティ ページ プロバイダーを設定します。 この INF では、クラス キーの SilentInstallNoInstallClass の値エントリも TRUE (1) に設定されます。

[example_class_addreg]
HKR,,,,%ClassName%
HKR,,EnumPropPages32,,"ExampleBinary.Dll,ExamplePropPageProvider"
HKR,,SilentInstall,,1
HKR,,NoInstallClass,,1
HKR,,Icon,,"101"

関連項目

AddProperty

AddReg

BitReg

CopyFiles

DDInstall

DelFiles

DelProperty

DelReg

Ini2Reg

Models

RenFiles

SetupDiBuildClassInfoList

UpdateIniFields

UpdateInis

Version