Поделиться через


Reg2inf

Средство преобразования реестра пакета драйверов (reg2inf.exe) преобразует раздел реестра и его значения или COM-.dll реализацию подпрограммы DllRegisterServer в набор директив INF AddReg или INF DDInstall.COM для серверов COM в proc для включения в INF-файл INF-файла пакета драйвера. Это средство особенно полезно для преобразования существующих директив INF RegisterDlls в директивы INF AddReg или INF-DDInstall.COM разделов, чтобы сделать INF-файл универсальным. Дополнительные сведения об универсальных INF-файлах см. в разделе "Использование универсального INF-файла".

Начиная с Windows 10 версии 1709, средство поставляется в составе установки WDK 10. Его можно найти в подкаталоге \tools установки WDK 10, например C:\Program Files(x86)\Windows Kits\10\tools\.

Хотя Reg2inf пытается создать регистрацию COM, он может не записать полное состояние реестра, которое предоставляет регистрация COM. Как всегда, необходимо проверить выходные данные средства для полноты и правильности и проверить результаты.

Выполнение Reg2inf из командной строки

В этом разделе перечислены параметры командной строки для Reg2inf.

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

    Игнорирует стиль синтаксиса DDInstall.COM и выводит выходные данные только с помощью директив AddReg. Этот параметр следует использовать только для разделов INF, предназначенных для версий ОС старше Windows 11 версии 24H2.

  • /key <registry key path>

    Обработка определенного раздела реестра, например reg2inf /key HKEY_LOCAL_MACHINE\SOFTWARE\Fabrikam

  • /dll <module filename>

    Обработка модуля DLL COM, реализующего точку входа DllRegisterServer, обычно вызываемую regsvr32.exe или устаревшей директивой INF RegisterDlls, чтобы зарегистрировать класс COM в HKEY_CLASSES_ROOT, например reg2inf /dll %SystemRoot%\System32\fabkobj.dll

  • /targetkey <registry key path>

    Переназначение целевого раздела реестра в другом базовом пути, например reg2inf /key HKLM\SYSTEM\Temp /targetkey HKR\Parameters

Примечание.

Reg2inf требует, чтобы длина полного пути не должна превышать 259 символов.

Регистрация COM-компонента в INF-файле

В следующем фрагменте кода показано, как зарегистрировать простой COM-класс с помощью синтаксиса INF DDInstall.COM, как создается Reg2inf без /downlevel параметра:

[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

В следующем фрагменте кода показано, как зарегистрировать простой COM-класс с помощью синтаксиса INF AddReg, созданного Reg2inf с параметром /downlevel :

[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"