Fungsi ADsGetLastError (adshlp.h)

Fungsi ADsGetLastError mengambil nilai kode kesalahan terakhir utas panggilan.

Sintaks

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

Parameter

[out] lpError

Jenis: LPDWORD

Arahkan ke lokasi yang menerima kode kesalahan.

[out] lpErrorBuf

Jenis: LPWSTR

Penunjuk ke lokasi yang menerima string Unicode yang dihentikan null yang menjelaskan kesalahan.

[in] dwErrorBufLen

Jenis: DWORD

Ukuran, dalam karakter, dari buffer lpErrorBuf . Jika buffer terlalu kecil untuk menerima string kesalahan, string dipotok, tetapi masih dihentikan null. Buffer, setidaknya 256 byte, disarankan.

[out] lpNameBuf

Jenis: LPWSTR

Penunjuk ke lokasi yang menerima string Unicode yang dihentikan null yang menjelaskan nama penyedia yang memunculkan kesalahan.

[in] dwNameBufLen

Jenis: DWORD

Ukuran, dalam karakter, dari buffer lpNameBuf . Jika buffer terlalu kecil untuk menerima nama penyedia, string dipotok, tetapi masih dihentikan null.

Menampilkan nilai

Jenis: HRESULT

Metode ini mendukung nilai pengembalian standar, serta yang berikut ini.

Keterangan

Kesalahan ADSI termasuk dalam dua jenis sesuai dengan nilai kode fasilitasnya. Kode kesalahan ADSI standar memiliki nilai kode fasilitas 0x5 dan kode kesalahan ADSI yang diperluas mengasumsikan bahwa dari FACILITY_WIN32. Nilai kesalahan dari kode kesalahan ADSI standar dan diperpanjang masing-masing adalah bentuk 0x80005xxx dan 0x8007xxxx. Gunakan makro HRESULT_FACILITY(jam) untuk menentukan jenis kesalahan ADSI.

Catatan Penyedia WinNT ADSI tidak mendukung ADsGetLastError.
 
Contoh kode berikut menunjukkan cara mendapatkan kode kesalahan Win32 dan deskripsinya menggunakan ADsGetLastError.
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);
        }
    }
}

Jika hr 80071392, contoh kode mengembalikan yang berikut.

An error occurred.
    HRESULT: 80071392
    Error Code: 8305
    Error Text: 00002071: UpdErr: DSID-030502F1, problem 6005 (ENTRY_EXISTS), data 0
    Provider: LDAP Provider
Catatan Penyedia WinNT ADSI tidak mendukung ADsGetLastError.
 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Server minimum yang didukung Windows Server 2008
Target Platform Windows
Header adshlp.h
Pustaka Activeds.lib
DLL Activeds.dll; AdsLdpc.dll

Lihat juga

Kode Kesalahan ADSI

Fungsi ADSI

ADsSetLastError

GetLastError