注意
可以使用 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