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


Функция ADsSetLastError (adshlp.h)

ADsSetLastError задает значение кода последней ошибки для вызывающего потока. Поставщики служб каталогов могут использовать эту функцию для установки расширенных ошибок. Функция сохраняет данные об ошибках в структуре данных для каждого потока. ADsSetLastError работает аналогично функции SetLastError .

Синтаксис

void ADsSetLastError(
  [in] DWORD   dwErr,
  [in] LPCWSTR pszError,
  [in] LPCWSTR pszProvider
);

Параметры

[in] dwErr

Тип: DWORD

Код ошибки, которая произошла. Если это ошибка, определенная Windows, pszError игнорируется. Если это ERROR_EXTENDED_ERROR, это означает, что у поставщика есть ошибка, связанная с сетью.

[in] pszError

Тип: LPWSTR

Строка Юникода, завершающаяся null, которая описывает ошибку, относяющуюся к сети.

[in] pszProvider

Тип: LPWSTR

Строка Юникода, завершающаяся null, которая называет поставщика ADSI, который вызвал ошибку.

Возвращаемое значение

None

Remarks

В пользовательской реализации поставщика ADSI, например поставщика LDAP, можно задать сообщение об ошибке операции следующим образом.

ADsSetLastError(HRESULT_FROM_WIN32(ERROR_DS_OPERATIONS_ERROR),
                L"ERROR_DS_OPERATIONS_ERROR",
                L"LDAP Provider");

Пользователь может использовать следующий пример кода для изучения этого кода операции.

DWORD dwLastError;
WCHAR szErrorBuf[MAX_PATH];
WCHAR szNameBuf[MAX_PATH];
// Get extended error value.
HRESULT hr_return =S_OK;
hr_return = ADsGetLastError( &dwLastError,
                               szErrorBuf,
                               MAX_PATH,
                               szNameBuf,
                               MAX_PATH);
if (SUCCEEDED(hr_return))
{
    wprintf(L"Error Code: %d\n Error Text: %ws\n Provider: %ws\n", dwLastError, szErrorBuf, szNameBuf);
}

В предыдущем примере кода приведены следующие выходные данные для приведенного выше кода ошибки операций.

Error value: 80072020
Error Text: ERROR_DS_OPERATIONS_ERROR
Provider: LDAP Provider

При использовании ERROR_DS_OPERATIONS_ERROR без вызова макроса HRESULT_FROM_WIN32 при установке ошибки возвращаются следующие выходные данные.

Error value: 2020
Error Text: ERROR_DS_OPERATIONS_ERROR
Provider: LDAP Provider

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header adshlp.h
Библиотека Activeds.lib
DLL Activeds.dll

См. также раздел

Коды ошибок ADSI

Функции ADSI

ADsGetLastError

SetLastError