デバイスに固有の共同インストーラーの登録

Note

このセクションで説明する機能は、ユニバーサル ドライバー パッケージまたはモバイル ドライバー パッケージではサポートされていません。 「ユニバーサル INF ファイルの使用」を参照してください。

デバイス固有の共同インストーラーを登録するには、次のセクションをデバイスの INF ファイルに追加します。

;  :
;  :
[DestinationDirs]
XxxCopyFilesSection = 11                \\DIRID_SYSTEM
                                        \\ Xxx = driver or dev. prefix
;  :
;  :
[XxxInstall.OS-platform.CoInstallers]   \\ OS-platform is optional
CopyFiles = XxxCopyFilesSection
AddReg = Xxx.OS-platform.CoInstallers_AddReg
 
[XxxCopyFilesSection]
XxxCoInstall.dll
 
[Xxx.OS-platform.CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"XxxCoInstall.dll, \
 XxxCoInstallEntryPoint"

DestinationDirs セクションのエントリは、 XxxCopyFilesSection に一覧表示されているファイルがシステム ディレクトリにコピーされることを指定します。 Xxx プレフィックスは、ドライバー、デバイス、またはデバイスのグループ (たとえば) の一意の識別子である必要があります cdrom_CopyFilesSection

上の例の次のセクションXxxInstall.OS-platform.CoInstallersは、 DDInstall.CoInstallers セクションです。 このセクションの名前には、省略可能な OS/アーキテクチャ拡張機能 (たとえばcdrom_install.NTx86.CoInstallers) を指定できます。 それは、CopyFiles ディレクティブ(呼び出されるファイル一覧セクションを指定)XxxCopyFilesSectionと、AddReg ディレクティブ (呼び出されるレジストリ追加セクション を指定)を Xxx.OS-platform.CoInstallers_AddReg含んでいます。

add-registry セクションのエントリは、CoInstallers32 値を、エントリデバイスのドライバー キーに 作成します。 このエントリには、共同インストーラー DLL と、必要に応じて特定のエントリ ポイントが含まれます。 エントリ ポイントを省略した場合、既定値は CoDeviceInstall です。 16 進数フラグ パラメーター (0x00010000) は、 これがREG_MULTI_SZ値のエントリであることを指定します。

デバイスに複数のデバイス固有の共同インストーラーを登録するには、各共同インストーラーのファイルをコピーし、レジストリ エントリに複数の文字列を含めます。 たとえば、2 つの共同インストーラーを登録するには、次のような INF セクションを作成します。

;   :
;   :
[DestinationDirs]
XxxCopyFilesSection = 11                \\DIRID_SYSTEM
                                        \\ Xxx = driver or dev. prefix
;   :
;   :
[XxxInstall.OS-platform.CoInstallers]   \\ OS-platform is optional
CopyFiles = XxxCopyFilesSection
AddReg = Xxx.OS-platform.CoInstallers_AddReg
 
[XxxCopyFilesSection]
XxxCoInstall.dll                         \\ copy 1st coinst. file
YyyCoInstall.dll                         \\ copy 2nd coinst. file
 
[Xxx.OS-platform.CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,                 \
    "XxxCoInstall.dll, XxxCoInstallEntryPoint", \
    "YyyCoInstall.dll, YyyCoInstallEntryPoint"
                                         \\ add both to registry

デバイス固有の共同インストーラーは、デバイスのインストールプロセス中に、Coinstallers INF セクションが処理されるときに登録されます。 SetupAPI は、インストール プロセスの後続の各手順で共同インストーラーを呼び出します。 1 つのデバイスに複数の共同インストーラーが登録されている場合、SetupAPI はレジストリに一覧表示されている順序でそれらを呼び出します。