ADsGetLastError 函数 (adshlp.h)

ADsGetLastError 函数检索调用线程的最后错误代码值。

语法

HRESULT ADsGetLastError(
  [out] LPDWORD lpError,
  [out] LPWSTR  lpErrorBuf,
  [in]  DWORD   dwErrorBufLen,
  [out] LPWSTR  lpNameBuf,
  [in]  DWORD   dwNameBufLen
);

参数

[out] lpError

类型: LPDWORD

指向接收错误代码的位置的指针。

[out] lpErrorBuf

类型: LPWSTR

指向接收描述错误的以 null 结尾的 Unicode 字符串的位置的指针。

[in] dwErrorBufLen

类型:DWORD

lpErrorBuf 缓冲区的大小(以字符为单位)。 如果缓冲区太小而无法接收错误字符串,字符串将被截断,但仍以 null 结尾。 建议使用至少 256 字节的缓冲区。

[out] lpNameBuf

类型: LPWSTR

指向接收以 null 结尾的 Unicode 字符串的位置的指针,该字符串描述引发错误的提供程序的名称。

[in] dwNameBufLen

类型:DWORD

lpNameBuf 缓冲区的大小(以字符为单位)。 如果缓冲区太小而无法接收提供程序的名称,字符串将被截断,但仍以 null 结尾。

返回值

类型: HRESULT

此方法支持标准返回值以及以下值。

注解

ADSI 错误根据其设施代码的值分为两种类型。 标准 ADSI 错误代码的设施代码值为 0x5,扩展的 ADSI 错误代码假定为 FACILITY_WIN32。 标准错误代码和扩展 ADSI 错误代码的错误值分别为 0x80005xxx 和 0x8007xxxx。 使用HRESULT_FACILITY (小时) 宏来确定 ADSI 错误类型。

注意 WinNT ADSI 提供程序不支持 ADsGetLastError
 
下面的代码示例演示如何使用 ADsGetLastError 获取 Win32 错误代码及其说明。
if (FAILED(hr))
{
    wprintf(L"An error occurred.\n  HRESULT: %x\n",hr);
    // If facility is Win32, get the Win32 error 
    if (HRESULT_FACILITY(hr)==FACILITY_WIN32)
    {
        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);
        }
    }
}

如果 hr 为 80071392,则代码示例返回以下内容。

An error occurred.
    HRESULT: 80071392
    Error Code: 8305
    Error Text: 00002071: UpdErr: DSID-030502F1, problem 6005 (ENTRY_EXISTS), data 0
    Provider: LDAP Provider
注意 WinNT ADSI 提供程序不支持 ADsGetLastError
 

要求

要求
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 adshlp.h
Library Activeds.lib
DLL Activeds.dll;AdsLdpc.dll

另请参阅

ADSI 错误代码

ADSI 函数

ADsSetLastError

GetLastError