INF AddComServer 指令
AddComServer 指令在 DDInstall.COM 部分中用于注册 COM 服务器。 必须在 DDInstall.COM 部分中定义一台或多台 COM 服务器。 Windows 11 版本 24H2 及更高版本中支持此部分。
[DDInstall.COM]
AddComServer = com-server-name, [flags], com-server-install-section
条目
com-server-name
指定要安装的 COM 服务器的名称。 该名称通常是要注册的 COM 组件的名称或说明。 COM 服务器名称在 INF 中必须唯一,并在缺少 COM 类说明时用作说明。
flags
指定 AddComServer 指令的额外标志。 标志字段保留供将来使用,因此应留空或设置为零。
com-server-install-section
引用 INF 编写器定义的部分,其中包含用于注册 COM 服务器及其类的信息。
有关 COM 服务器安装部分的详细信息,请参阅以下备注;有关 COM 服务器的一般信息,请参阅 COM 客户端和服务器。
注解
AddComServer 指令会导致系统安装程序在驱动程序包的驱动程序存储相对路径中,注册由服务器二进制文件实施的 COM 服务器。
在 COM 类上调用 CoCreateInstance 之前,必须在每个进程中调用 CoRegisterDeviceCatalog。 调用 CoRegisterDeviceCatalog 时,将在进程中提供 COM 服务器注册,以供 COM 运行时使用。
INF DDInstall.COM 部分中的每个 AddComServer 指令都可以引用 INF 文件中其他位置的 INF 编写器定义的 com-server-install-section。 每个 INF 编写器定义的部分名称在 INF 文件中都必须唯一,并且必须遵循定义部分名称的一般规则。 有关这些规则的详细信息,请参阅 INF 文件的常规语法规则。
AddComServer 指令必须引用 INF 中其他位置命为的 com-server-install-section。 每个此类部分都采用以下形式:
[com-server-install-section]
ServerType = server-type
ServerBinary = binary-path
[ServerBinaryWow64 = wow64-binary-path]
AddComClass = {clsid-guid}[, flags[, com-class-install-section]]
每个 com-server-install-section 都必须提供 ServerType、ServerBinary,以及一个或多个 AddComClass,其中每项均位于单独的行。
com-server-install-section 条目和值
ServerType
指定要注册的 COM 服务器的类型。 每种 COM 服务器类型都有一组特定的必需和可选条目和指令。 仅支持 0x1(进程中)。
server-type-enum | 服务器类型 | 必需指令 | 可选指令 |
---|---|---|---|
0x1 | 进程中 |
|
|
ServerBinary
原生体系结构的 COM 服务器二进制文件的路径。
ServerBinaryWow64
用于 AMD64 平台上非原生 x86 体系结构支持的 COM 服务器 WOW64 二进制文件的路径。
AddComClass = {clsid-guid}[, flags[, com-class-install-section]]
此必需指令可以一次或多次用于向可选安装部分注册 COM 类。
有关如何注册 COM 类的详细信息,请参阅 INF AddComClass 指令。
示例
[ContosoEncoderServer.NT.COM]
AddComServer = ContosoEncoderServer,, ContosoEncoder_ComServer_Inst
[ContosoEncoder_ComServer_Inst]
ServerType = 1 ; in-proc
ServerBinary = %13%\contoso_encoder.dll
AddComClass = {bb2b85ab-9473-42e5-8d1a-0f01d3879879}
AddComClass = {f1baf99b-d28a-4ea3-b652-355da082d260}, 0, ContosoEncoderControl_ComClass_Inst
[ContosoEncoderControl_ComClass_Inst]
Description = %ContosoEncoder_Comclass_Desc%
ThreadingModel = Apartment
[Strings]
%ContosoEncoder_Comclass_Desc%="Contoso H.264 Encoder"