DismEnableFeature 函数
启用映像中的功能。 功能由名称标识,并且可以选择绑定到包。
语法
HRESULT WINAPI DismEnableFeature(
_In_ DismSession Session,
_In_ PCWSTR FeatureName,
_In_opt_ PCWSTR Identifier,
_In_opt_ DismPackageIdentifier PackageIdentifier,
_In_ BOOL LimitAccess,
_In_opt_ PCWSTR *SourcePaths,
_In_opt_ UINT SourcePathCount,
_In_ BOOL EnableAll,
_In_opt_ HANDLE CancelEvent,
_In_opt_ DISM_PROGRESS_CALLBACK Progress,
_In_opt_ PVOID UserData
);
参数
Session [in]
一个有效的 DismSession。 DismSession 必须关联一个映像。 可以使用 DismOpenSession 将会话与映像关联。
FeatureName [in]
所启用的功能的名称。 若要启用多个功能,请用分号分隔每个功能名称。
Identifier [in,可选]
可选。 要启用的功能的 .cab 文件的绝对路径或父包的包名称。
PackageIdentifier [in,可选]
可选。 有效的 DismPackageIdentifier 枚举值。 当 Identifier 参数指向包名称时,应使用 DismPackageName;当 Identifier 指向 .cab 文件的绝对路径时,应使用 DismPackagePath。 如果 Identifier 字段不为 NULL,则必须指定有效的 PackageIdentifier 参数。 如果 Identifier 字段为 NULL,则忽略 PackageIdentifier 参数。
LimitAccess [in]
从 Windows 8.1 和 Windows Server 2012 R2 开始忽略此参数。
Windows 8 和 Windows Server 2012:
一个布尔值,指示是否应将 Windows 更新 (WU) 作为源位置来访问以下载文件,前提是未在其他指定位置找到任何相关内容。 在检查 WU 之前,DISM 将按组策略检查提供的 SourcePaths 和注册表中指定的任何位置中的文件。 如果启用该功能所需的文件仍存在于计算机上,则会忽略此标志。
值 | 说明 |
---|---|
TRUE | 请勿检查用于修复文件的 WU。 |
FALSE | 默认。 针对修复文件检查 WU。 |
SourcePaths [in, optional]
从 Windows 8.1 和 Windows Server 2012 R2 开始忽略此参数。
Windows 8 和 Windows Server 2012:
源位置的列表,用于检查启用该功能所需的文件。
SourcePathCount [in, optional]
从 Windows 8.1 和 Windows Server 2012 R2 开始忽略此参数。
Windows 8 和 Windows Server 2012:
指定的源位置数。
EnableAll [in]
启用该功能的所有依赖项。 如果无法启用指定的功能或其依赖项中的任何一个,则它们都不会改变其现有状态。
值 | 说明 |
---|---|
TRUE | 启用该功能的所有依赖项。 |
FALSE | 仅启用指定的功能。 |
CancelEvent [in,可选]
可选。 可以设置此函数的 CancelEvent,以便在客户端发出信号时取消正在进行的操作。 如果在无法取消操作的阶段收到 CancelEvent,则该操作将继续并返回成功代码。 如果在收到 CancelEvent 后取消操作,则映像状态为未知。 应在继续操作之前验证映像状态,或者放弃更改并重新开始。
Progress [in,可选]
可选。 指向客户端定义的 DismProgressCallback 的指针。
UserData [in,可选]
可选。 用户定义的自定义数据。
返回值
成功时返回 S_OK
。
注解
如果此功能存在于基础包中,则不需指定任何包信息。 如果此功能位于已安装在映像中的可选包或功能包中,请在 Identifier 参数中指定包名称,并指定 DismPackageName 作为 PackageIdentifier。如果由于父功能未启用而无法启用此功能,则会返回特殊错误代码。 可以使用 EnableAll 在启用指定功能时启用父功能,也可以使用 DismGetFeatureParent 来枚举父功能并首先启用它们。
重要
如果要启用的功能不是基础包的组件,则必须在启用此功能之前,使用 DismAddPackage 添加父可选包。 请勿在 Identifier 参数中指定尚未添加到映像的可选包的 .cab 文件的路径。 如果指定尚未添加的包,并将 DismPackagePath 指定为 PackageIdentifier,则函数会成功完成,但该功能不会获得启用。
注意
LimitAccess、SourcePaths、SourcePathCount 和 EnableAll 仅在 Windows 8 和 Windows Server 2012 上受支持。
示例
HRESULT hr = S_OK;
hr = DismEnableFeature(Session, “WindowsMediaPlayer”, NULL, PackageNone, TRUE, NULL, 0, FALSE, NULL, NULL, NULL);
要求
要求 | 说明 |
---|---|
支持的主机平台 | DISM API 可在 Windows 评估和部署工具包 (Windows ADK) 支持的任何操作系统上使用。 有关详细信息,请参阅 Windows ADK 技术参考。 |
支持的映像平台 | Windows 7、Windows Server 2008 R2、Windows PE 3.0、Windows 8、Windows Server 2012、Windows 预安装环境 (Windows PE) 4.0、Windows 8.1、Windows Server 2012 R2、Windows 10、Windows Server 2016 |
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
标头 | DismAPI.h |
Library | DismAPI.lib |
DLL | DismAPI.dll |