다음을 통해 공유


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로 끝나는 유니코드 문자열을 수신하는 위치에 대한 포인터입니다.

[in] dwErrorBufLen

형식:DWORD

lpErrorBuf 버퍼의 크기(문자 단위)입니다. 버퍼가 너무 작아서 오류 문자열을 수신할 수 없는 경우 문자열이 잘리지만 여전히 null로 종료됩니다. 256바이트 이상의 버퍼를 사용하는 것이 좋습니다.

[out] lpNameBuf

형식: LPWSTR

오류를 발생시킨 공급자의 이름을 설명하는 null로 끝나는 유니코드 문자열을 수신하는 위치에 대한 포인터입니다.

[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