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 结尾的 Unicode 字符串,用于描述特定于网络的错误。

[in] pszProvider

类型: LPWSTR

以 null 结尾的 Unicode 字符串,用于命名引发错误的 ADSI 提供程序。

返回值

备注

在 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
标头 adshlp.h
Library Activeds.lib
DLL Activeds.dll

另请参阅

ADSI 错误代码

ADSI 函数

ADsGetLastError

SetLastError