ADSI 的 Win32 错误代码

标准 Win32 错误代码也用于返回 ADSI 错误消息。 具体而言,ADSI LDAP 提供程序将所有 LDAP 错误代码映射到 Win32 错误代码。 这些错误代码的 HRESULT 值为 0x8007XXXX 格式,其中最后四个十六进制数字 XXXX 对应于相应 Win32 错误代码的 DWORD 值。 例如,ADSI 错误值 0x80072020 给出十六进制的 Win32 错误值 0x2020 或十进制的 8224。

若要将应用程序返回的 ADSI 错误代码的 HRESULT 值转换为在上面的头文件中定义的相应 Win32 错误 DWORD 值,请使用以下过程。

ADSI 的大部分 Win32 错误代码都在 Winerror.h 或 Lmerr.h 中定义。 在这些文件中,错误值以十进制值的形式列出。

将 ADSI 错误代码的 HRESULT 值转换为相应的 Win32 错误 DWORD

  1. 如果从 Visual Basic 应用程序中获得的值以十进制值开头,请将 HRESULT 值转换为十六进制数。
  2. 删除 0x8007 部分将产生余数。
  3. 将余数转换为十进制数。
  4. 在 Winerror.h 中查找十进制余数。
  5. 如果在 Winerror.h 中找不到,则从十进制余数中减去 2100,并在 Lmerr.h 中查找结果。

ADSI 2.0 将 LDAP 错误代码映射到一组 Win32 错误代码,这些错误代码与 ADSI for Windows 2000 和 DS Client 中使用的错误代码不同。 差异如下所示: