Freigeben über


ADsGetLastError-Funktion (adshlp.h)

Die ADsGetLastError-Funktion ruft den Wert des letzten Fehlercodes des aufrufenden Threads ab.

Syntax

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

Parameter

[out] lpError

Typ: LPDWORD

Zeiger auf den Speicherort, der den Fehlercode empfängt.

[out] lpErrorBuf

Typ: LPWSTR

Zeiger auf den Speicherort, der die unicode-Zeichenfolge mit NULL-Beendigung empfängt, die den Fehler beschreibt.

[in] dwErrorBufLen

Art: DWORD

Größe des lpErrorBuf-Puffers in Zeichen. Wenn der Puffer zu klein ist, um die Fehlerzeichenfolge zu empfangen, wird die Zeichenfolge abgeschnitten, aber immer noch null beendet. Ein Puffer von mindestens 256 Byte wird empfohlen.

[out] lpNameBuf

Typ: LPWSTR

Zeiger auf den Speicherort, der die mit NULL endende Unicode-Zeichenfolge empfängt, die den Namen des Anbieters beschreibt, der den Fehler ausgelöst hat.

[in] dwNameBufLen

Art: DWORD

Größe des lpNameBuf-Puffers in Zeichen. Wenn der Puffer zu klein ist, um den Namen des Anbieters zu empfangen, wird die Zeichenfolge abgeschnitten, aber immer noch null beendet.

Rückgabewert

Typ: HRESULT

Diese Methode unterstützt standardmäßige Rückgabewerte sowie folgendes.

Hinweise

ADSI-Fehler lassen sich entsprechend den Werten ihres Einrichtungscodes in zwei Typen einteilen. Die Standardmäßigen ADSI-Fehlercodes weisen den Facility-Codewert 0x5 auf, und die erweiterten ADSI-Fehlercodes gehen davon aus, dass FACILITY_WIN32. Die Fehlerwerte der Standard- und erweiterten ADSI-Fehlercodes entsprechen den Formen 0x80005xxx bzw. 0x8007xxxx. Verwenden Sie das Makro HRESULT_FACILITY(hr), um den ADSI-Fehlertyp zu bestimmen.

Hinweis Der WinNT ADSI-Anbieter unterstützt ADsGetLastError nicht.
 
Im folgenden Codebeispiel wird gezeigt, wie Sie Win32-Fehlercodes und deren Beschreibungen mithilfe von ADsGetLastError abrufen.
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);
        }
    }
}

Wenn hr 80071392 ist, gibt das Codebeispiel Folgendes zurück.

An error occurred.
    HRESULT: 80071392
    Error Code: 8305
    Error Text: 00002071: UpdErr: DSID-030502F1, problem 6005 (ENTRY_EXISTS), data 0
    Provider: LDAP Provider
Hinweis Der WinNT ADSI-Anbieter unterstützt ADsGetLastError nicht.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile adshlp.h
Bibliothek Activeds.lib
DLL Activeds.dll; AdsLdpc.dll

Weitere Informationen

ADSI-Fehlercodes

ADSI-Funktionen

ADsSetLastError

GetLastError