INF RegisterDlls 指令

注意

从 Windows 11 版本 22H2 开始,使用此指令的驱动程序包不再有资格从硬件开发人员中心获得签名。

通用驱动程序包Windows 驱动程序 不能使用此指令。

注意

可以使用 Reg2inf 工具 将现有的 INF RegisterDlls 指令 转换为 INF AddReg 指令 ,以使驱动程序包通用。

RegisterDlls 指令引用一个或多个用于指定属于 OLE 控件且需要自我注册的文件的 INF 节。

[DDInstall]
  
RegisterDlls=register-dll-section[,register-dll-section]...

RegisterDlls 指令引用的每个 INF 节必须具有以下条目格式:

[register-dll-section] 
  
dirid,[subdir],filename,registration-flags[,[timeout][,argument]] 

register-dll-section 可以有任意数量的条目,每个条目在单独的行上。

dirid
指定要注册的文件的目标目录 ID。 有关详细信息,请参阅 使用 Dirids

subdir
指定要注册的文件的目录路径(相对于当前目录)。 如果未指定,则该文件位于当前目录中。

filename
标识要注册的 OLE 控件的文件名。

registration-flags
指示要对 OLE 控件执行的注册操作。 必须指定以下一个或两个标志。

0x00000001 (FLG_REGSVR_DLLREGISTER)
(Windows SDK 文档) 中所述,调用 OLE 控件的 DllRegisterServer 函数。

0x00000002 (FLG_REGSVR_DLLINSTALL)
(Windows SDK 文档) 中所述,调用 OLE 控件的 DllInstall 函数。

timeout
指定 OLE 控件完成指定注册调用的超时(以秒为单位)。 默认超时为 60 秒。

argument
如果控件是可执行文件,则这是传递给可执行文件的命令字符串。 默认参数为 /RegServer

如果控件不是可执行文件,则指定要传递给 DllInstall 函数的命令行参数。

注解

每个 register-dll-section 名称对于 INF 文件必须是唯一的,并且必须遵循定义节名称的一般规则。 有关这些规则的详细信息,请参阅 INF 文件的一般语法规则

以下规则适用于对设备安装使用 RegisterDlls 指令:

  • 尽管 语法允许文件名为 DLL 或可执行文件,但对于设备安装,只允许 DLL。

  • 要注册的代码不得提示用户输入。

  • 服务器端安装在系统上下文中执行。 因此,必须非常确保所注册的代码不包含任何安全漏洞,并且文件权限可防止恶意修改代码。

有关 OLE 控件和自我注册的详细信息,请参阅 Windows SDK 文档。

示例

[Dialer]
RegisterDlls = DialerRegSvr

[DialerUninstall]
UnregisterDlls = DialerRegSvr

[DialerRegSvr]
11,,avtapi.dll, 1

另请参阅

UnregisterDlls