次の方法で共有


Reg2inf

ドライバー パッケージ INF レジストリ変換ツール (reg2inf.exe) は、レジストリ キーとその値、または DllRegisterServer ルーチンを実装する COM .dll を、インプロセッサ COM サーバーの INF AddReg ディレクティブ または INF DDInstall.COM セクション のセットに変換し、ドライバー パッケージ INF ファイルに追加します。 このツールは、INF ファイルをユニバーサルにするために、既存の INF RegisterDlls ディレクティブを INF AddReg ディレクティブまたは INF DDInstall.COM セクションに変換する場合にとても便利です。 ユニバーサル INF ファイルの詳細については、「ユニバーサル INF ファイルの使用」をご参照ください。

Windows 10 バージョン 1709 以降、このツールは WDK 10 インストールの一部として付属しています。 たとえば C:\Program Files(x86)\Windows Kits\10\tools\ のように、WDK 10 のインストール時に \tools のサブディレクトリで見つけることができます。

Reg2inf は COM 登録を生成しようとしますが、COM 登録が提供する完全なレジストリ状態をキャプチャしない可能性があります。 これまでと同様に、ツールの出力の完全性と正確性を調べて、結果をテストする必要があります。

コマンド ラインからの Reg2inf の実行

このセクションでは、Reg2inf のコマンド ライン オプションの一覧を示します。

reg2inf.exe [/downlevel]  [/key <path> | /dll <filename>] [/targetkey <path>]
  • /downlevel

    構文スタイル DDInstall.COM を無視し、AddReg ディレクティブを介してのみ出力を出力します。 このオプションは、Windows 11 バージョン 24H2 より前の OS バージョンを対象とする INF セクションにのみ使用してください。

  • /key <registry key path>

    特定のレジストリ キーを処理します (例: reg2inf /key HKEY_LOCAL_MACHINE\SOFTWARE\Fabrikam)

  • /dll <module filename>

    dllRegisterServer エントリポイントを実装する COM DLL モジュールを処理します。通常は、HKEY_CLASSES_ROOT に COM クラスを登録するため、regsvr32.exe または従来の INF RegisterDlls ディレクティブによって呼び出されます (例: reg2inf /dll %SystemRoot%\System32\fabkobj.dll)

  • /targetkey <registry key path>

    ターゲット レジストリ キーを別のベース キー パスの下に再マッピングします (例: reg2inf /key HKLM\SYSTEM\Temp /targetkey HKR\Parameters)

Note

Reg2inf では、完全なパスの長さが 259 文字を超えないようにする必要があります。

INF ファイルへの COM コンポーネントの登録

次のスニペットは、/downlevel パラメーターなしで Reg2inf によって生成される INF DDInstall.COM 構文を使用して単純な COM クラスを登録する方法を示しています。

[SimpleCom.COM]
AddComServer = COM_Server,,SimpleCom_Install

[SimpleCom_Install]
ServerType = 1
ServerBinary = %13%\comobj.dll
AddComClass = Sample Class,{92FCF37F-F6C7-4F8A-AA09-1A14BA118084},,SimpleCom_Class_Install

[SimpleCom_Class_Install]
ThreadingModel = Both

次のスニペットは、/downlevel パラメーターありで Reg2inf によって生成される INF AddReg 構文を使用して単純な COM クラスを登録する方法を示しています。

[ComClass_AddReg]
HKCR,CLSID\{92FCF37F-F6C7-4F8A-AA09-1A14BA118084},,,"Sample Class"
HKCR,CLSID\{92FCF37F-F6C7-4F8A-AA09-1A14BA118084}\InprocServer32,,%REG_EXPAND_SZ%,"%13%\comobj.dll"
HKCR,CLSID\{92FCF37F-F6C7-4F8A-AA09-1A14BA118084}\InprocServer32,ThreadingModel,,"Both"