Поделиться через


Коды ошибок Win32 для ADSI

Стандартные коды ошибок Win32 также используются для возврата сообщений об ошибках ADSI. В частности, поставщик LDAP ADSI сопоставляет все коды ошибок LDAP с кодами ошибок Win32. Значения HRESULT этих кодов ошибок относятся к формату 0x8007XXXXXXX, где последние четыре шестнадцатеричные цифры XXXX соответствуют значениям DWORD соответствующего кода ошибки Win32. Например, значение ошибки ADSI 0x80072020 дает значение ошибки Win32 0x2020 в шестнадцатеричном или 8224 в десятичном разряде.

Чтобы преобразовать значение HRESULT кода ошибки ADSI, возвращаемого приложением, в соответствующее значение DWORD ошибки Win32, как определено в файлах заголовков выше, используйте следующую процедуру.

Большинство кодов ошибок Win32 для ADSI определены в Winerror.h или Lmerr.h. Значения ошибок перечислены в виде десятичных значений в этих файлах.

Преобразование значения HRESULT кода ошибки ADSI в соответствующее значение DWORD ошибки Win32

  1. Преобразуйте значение HRESULT в шестнадцатеричное число, если начинается с десятичного значения, как можно получить из приложения Visual Basic.
  2. Удалите оставшуюся часть 0x8007.
  3. Преобразуйте оставшуюся часть в десятичное число.
  4. Найдите десятичную оставшуюся часть в Winerror.h.
  5. Если не найдено в Winerror.h, вычитайте 2100 из десятичной оставшейся части и просмотрите результат в Lmerr.h.

ADSI 2.0 сопоставляет коды ошибок LDAP с набором кодов ошибок Win32, отличающихся от того, что используется в ADSI для клиента Windows 2000 и DS. Различия перечислены в следующих параметрах: