INF RegisterDlls 指令

注意

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

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

注意

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

RegisterDlls 指令引用一个或多个 INF 部分,这些部分用于指定 OLE 控件和需要自我注册的文件。

[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)
调用 OLE 控件的 DllRegisterServer 函数(详见 Windows SDK 文档)。

0x00000002 (FLG_REGSVR_DLLINSTALL)
调用 OLE 控件的 DllInstall 函数(详见 Windows SDK 文档)。

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