DismAddPackage 函数

将单个 .cab 或 .msu 文件添加到 Windows 映像。

语法

HRESULT WINAPI DismAddPackage(
  _In_     DismSession            Session,
  _In_     PCWSTR                 PackagePath,
  _In_     BOOL                   IgnoreCheck,
  _In_     BOOL                   PreventPending,
  _In_opt_ HANDLE                 CancelEvent,
  _In_opt_ DISM_PROGRESS_CALLBACK Progress,
  _In_opt_ PVOID                  UserData
);

参数

Session [in]
有效的 DismSession。 DismSession 必须与图像相关联。 可以使用 DismOpenSession 将会话与映像关联

PackagePath [in]
要添加的 .cab 或 .msu 文件或包含单个 .cab 文件的扩展文件的文件夹的相对路径或绝对路径。

IgnoreCheck [in]
一个布尔值,用于指定是否忽略添加包时完成的内部适用性检查。

描述
TRUE 忽略内部适用性检查。
FALSE 不要忽略内部适用性检查。

PreventPending [in]
一个布尔值,用于指定是否在包具有挂起的联机操作时添加该包。

描述
TRUE 阻止安装具有挂起的联机操作的包。
FALSE 允许安装具有挂起的联机操作的包。

CancelEvent [in, optional]
自选。 可以为此函数设置 CancelEvent,以便在客户端发出信号时取消正在进行的操作。 如果在无法取消操作的阶段收到 CancelEvent,该操作将继续并返回成功代码。 如果收到 CancelEvent 并且操作被取消,则映像状态未知。 在继续或放弃更改并重新开始之前,应验证映像状态。

Progress [in, optional]
自选。 指向客户端定义的 DismProgressCallback 的指针。

UserData [in, optional]
自选。 用户定义的自定义数据。

返回值

如果函数成功,则返回值 S_OK。 如果函数成功,该函数也可能返回以下值之一:

返回代码 描述
(HRESULT)ERROR_SUCCESS_REBOOT_REQUIRED
如果 会话 处于联机状态,则需要重启计算机。
DISMAPI_S_RELOAD_IMAGE_SESSION_REQUIRED
需要重新加载 会话

如果函数失败,则返回值为 HRESULT 错误值。

言论

只能将 .cab 文件添加到联机映像。 可以将 .cab 或 .msu 文件添加到脱机映像。

如果包不适用,此函数将返回特殊错误代码。 可以使用 DismGetPackageInfo 来确定包是否适用于目标映像。

HRESULT hr = S_OK;
hr = DismAddPackage(Session, "C:\\packages\\calc.cab", FALSE, 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
图书馆 DismAPI.lib
DLL DismAPI.dll

另请参阅

DismAddDriver

DismEnableFeature

DismGetPackages

DismGetPackageInfo

DismRemovePackage

DismPackage

DismPackageInfo

DismPackageFeatureState