使用 DISM API
部署映像服务和管理 (DISM) API 允许你在 DISM 平台上生成自定义解决方案。 你可以使用 DISM API 在 Windows 映像中安装、卸载、配置和更新 Windows 功能、包和驱动程序。 DISM 可用于管理和维护 Windows 映像,不管这些映像是采用 Windows 映像 (.wim) 文件格式,还是采用虚拟硬盘(.vhd、.vhdx)文件格式。
要求
必须在开发计算机上安装 Windows 评估和部署工具包 (Windows ADK),才能创建 DISM API 应用程序:
DISM 平台上的自定义解决方案是使用 DISM SDK 开发的。 安装 Windows ADK 时安装它。 若要详细了解支持的操作系统,请参阅 Windows 评估和部署工具包 (Windows ADK) 技术参考。
在 DISM 平台上运行自定义解决方案时,必须验证 Windows ADK 体系结构版本是否与操作系统体系结构版本匹配。 例如,为 32 位电脑开发的自定义解决方案在 32 位版本的 Windows 上运行。
若要在 DISM 平台上正确开发和运行自定义解决方案,必须验证是否在使用 Windows ADK 中的 DISM 二进制文件:
在将运行自定义解决方案的电脑上安装最新版本的 Windows ADK。
自定义解决方案的二进制文件必须保存在 Windows ADK 安装的 DISM 二进制文件所在的目录中。 例如,自定义解决方案二进制文件必须位于 c:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM。
从部署和映像工具环境运行自定义解决方案,以便先设置必要的环境变量,然后运行解决方案。
在“开始”屏幕中,键入“部署”。 右键单击部署和映像工具环境,然后选择以管理员身份运行。
注意 如果不从部署和映像工具环境运行,则必须验证 PATH 环境变量是否使用 Windows ADK 中的 DISM 二进制文件的位置。
需要受支持的 Windows 映像文件类型(.wim、.vhd 或 .vhdx,或联机安装的 Windows),以使用 DISMAPI 进行维护和管理。 某些操作对联机映像无效。 有关详细信息,请参阅 DISM API 参考。
支持的目标映像
在主机上维护的 Windows 映像文件可以是 .wim、.vhd 或 .vhdx 文件,也可以是联机安装的 Windows。 此外,还支持跨体系结构维护。 可以从 x86 系统或 x64 系统维护 x64 映像。 可以从 x64 系统或 x86 系统维护 x86 映像。
所有 DISMAPI 函数都可以在 Windows 8 和 Windows Server 2012 目标映像上执行。 若要了解是否可以在其他目标映像上执行某个函数,请参阅 DISM API 参考中的函数参考主题的“要求”部分。
最佳做法
内存管理。 某些 DISM API 函数返回结构或结构数组。 这些结构作为指向堆上对象的指针返回给用户。 堆内存由 DISM API 分配。 客户端必须调用 DismDelete 函数以确保释放此内存。
使用 DiskPart 工具装载 VHD。 如果可能,应该使用 DISM API 在 DISM 框架中装载和卸载要维护的映像。 使用另一个工具(如 DiskPart 工具)装载和卸载映像可能会产生意外的影响。
文件路径。 DISM API 函数接受的所有路径都可以是相对路径或绝对路径。 最佳做法是限制文件路径的长度。 文件路径太长或超出 Windows 的最大长度限制会导致 DISM 出现故障。
与打开和关闭会话的调用匹配。 在调用 DismShutdown 函数之前,始终使用 DismCloseSession 函数释放 DISM 会话。 还可以在关闭会话后,在调用 DismShutdown 函数之前使用 DismUnmountImage 函数卸载映像。
其他 DISM 工具
若要详细了解 DISM 平台和其他访问维护和管理功能的方法,请参阅 Windows 评估和部署工具包 (Windows ADK) 技术参考中的 DISM 技术参考。 还可使用 Windows ADK 中的 DISM.exe 工具将映像捕获为 .wim 文件。