分解 DISM 返回的错误 0x800f081e

分解 DISM 返回的错误 0x800f081e

我想了解如何解决此类错误。我通过应用 Windows 更新解决了此问题。

要清楚的是,我不需要别人告诉我这是什么意思:我已经通过谷歌搜索查找了错误本身,并且我知道它的含义“CBS_E_NOT_APPLICABLE”(关联)。

我还查看了 DISM 日志;它指出:“该包不适用于该图像。”来自日志行:

2024-02-15 13:02:43, Error                 DISM   API: PID=4804 TID=1852 The package  is not applicable to the image.  - CAddPackageCommandObject::InternalExecute(hr:0x800f081e)

因此很明显,该更新不适用,就我而言,因为已经安装了更高版本的 Windows 累积更新。

我想要的是一种分解错误并将其转化为人类可以理解的含义的方法。

我已经查看了 HRESULT 错误代码结构(这里这里我还了解到代码中的“facility”部分是15,也就是“Setup API”。

我无法解码的是“代码”部分,即代码右边的两个字节,在我的情况下其值为 0x081e。

我如何才能找到“CBS_E_NOT_APPLICABLE”错误描述?我尝试在 Google 上搜索“setup api”错误代码,查看了 MS-ERREF 参考... 我没有找到“81e”代码的任何结果。

答案1

最简单的方法是使用 err.exe,错误查找工具它会将任何十六进制或十进制错误代码(带或不带 0x 的十六进制)分解为单独的部分,并告诉您它在哪个头文件中定义:

C:\Windows>err 800f081e
# for hex 0x800f081e / decimal -2146498530
  CBS_E_NOT_APPLICABLE                                           cbsapi.h
# the package is not applicable
# 1 matches found for "800f081e"

因此,在这种情况下,您需要在 Windows SDK 之一中查找 cbsapi.h,其中定义了 0x81e。不过,这不是我必须提供的标头。

如下所述,微软似乎已从 err.exe 的索引中删除了 cbsapi.h 标头

相关内容