Share via


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 (hr) 宏來判斷 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
程式庫 Activeds.lib
Dll Activeds.dll;AdsLdpc.dll

另請參閱

ADSI 錯誤碼

ADSI 函式

ADsSetLastError

GetLastError