다음을 통해 공유


ldap_search_st 함수(winldap.h)

ldap_search_st 함수는 LDAP 디렉터리를 동기적으로 검색하고 일치하는 각 항목에 대해 요청된 특성 집합을 반환합니다. 추가 매개 변수는 검색에 대한 로컬 시간 초과를 지정합니다. 함수는 추가 로컬 시간 제한 매개 변수를 제외하고 ldap_search_s 동일합니다.

구문

WINLDAPAPI ULONG LDAPAPI ldap_search_st(
  [in]  LDAP         *ld,
  [in]  PSTR         base,
  [in]  ULONG        scope,
  [in]  PSTR         filter,
  [in]  PZPSTR       attrs,
  [in]  ULONG        attrsonly,
  [in]  l_timeval    *timeout,
  [out] PLDAPMessage *res
);

매개 변수

[in] ld

세션 핸들입니다.

[in] base

검색을 시작할 항목의 고유 이름을 포함하는 null로 끝나는 문자열에 대한 포인터입니다.

[in] scope

검색 scope 나타내기 위해 다음 값 중 하나를 지정합니다.

LDAP_SCOPE_BASE

기본 항목만 검색합니다.

LDAP_SCOPE_ONELEVEL

기본 항목을 제외한 기본 항목 아래의 첫 번째 수준에서 모든 항목을 검색합니다.

LDAP_SCOPE_SUBTREE

기본 항목 및 기본 아래 트리의 모든 항목을 검색합니다.

[in] filter

검색 필터를 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 자세한 내용은 검색 필터 구문을 참조하세요.

[in] attrs

일치하는 각 항목에 대해 반환할 특성을 나타내는 null로 종료된 문자열의 null로 끝나는 배열입니다. NULL을 전달하여 사용 가능한 모든 특성을 검색합니다.

[in] attrsonly

특성 형식과 값이 모두 반환될 경우 0이어야 하는 부울 값이며, 형식만 필요한 경우 0이 아닙니다.

[in] timeout

로컬 검색 제한 시간 값(초)입니다.

[out] res

호출이 완료될 때 검색 결과를 포함합니다. 함수 호출이 오류 코드와 함께 실패할 때 부분 결과 또는 확장된 데이터를 포함할 수도 있습니다. 반환된 모든 결과는 애플리케이션에서 더 이상 필요하지 않은 경우 ldap_msgfree 호출하여 해제해야 합니다.

반환 값

함수가 성공하면 반환 값이 LDAP_SUCCESS.

함수가 실패하면 오류 코드가 반환되지만 ldap_search_st 실패할 수 있으며 pMsg를 할당할 수 있습니다. 예를 들어 LDAP_PARTIAL_RESULTSLDAP_REFERRAL 오류 코드는 모두 pMsg를 할당합니다. 자세한 내용은 다음 코드 예제를 참조하세요. 자세한 내용은 반환 값을 참조하세요.

설명

ldap_search_st 함수는 동기 검색 작업을 시작합니다.

ldap_set_option 함수를 ld 세션 핸들과 함께 사용하여 검색 수행 방법을 결정하는 LDAP_OPT_SIZELIMIT 및 LDAP_OPT_DEREF 옵션을 설정합니다. 자세한 내용은 세션 옵션을 참조하세요. ldap_search_st시간 제한 매개 변수는 LDAP_OPT_TIMELIMIT 재정의합니다.

검색 작업이 완료되면 ldap_search_st 호출자에게 돌아갑니다. ldap_search 또는 ldap_search_ext 사용하여 작업을 비동기적으로 수행합니다.

다중 스레딩: ldap_search_st 대한 호출은 스레드로부터 안전합니다.

다음 코드 예제에서는 ldap_search_st 실패 하는 경우 pMsg를 해제 하는 방법을 보여 줍니다.

// Initialize return value to NULL.
LDAPMessage *pMsg = NULL;

// Perform the search request.
dwErr = ldap_search_st (i_pldap,
        i_lpszBase,
        i_ulScope,
        i_lpszSearchFilter,
        lpszAttributes,
        0,
        lpsTimeout,
        &pMsg
        );

// Cleanup calling parameters.
if (lpszAttributes != NULL)
    delete [] lpszAttributes;

// Convert error code and cleanup pMsg if necessary.
if (dwErr != LDAP_SUCCESS)
{
    DebugOutLDAPError(i_pldap, dwErr, _T("ldap_search_st"));
    hr = HRESULT_FROM_WIN32(dwErr);

    // Be aware that pMsg can contain valid data, even if the
    // call to ldap_search_st returned an error code.  
    // This can be caused by the server returning codes,
    // such as LDAP_RESULTS_TOO_LARGE or other codes,
    // that indicate that the search returned partial
    // results. The user code can handle these cases
    // if required, this example just frees pMsg on any 
    // error code.

    if (pMsg != NULL)
      ldap_msgfree(pMsg);
}

else
{
    // Process the search results.
    ...
    // Free the results when complete.
    if (pMsg != NULL) ldap_msgfree(pMsg);
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 winldap.h
라이브러리 Wldap32.lib
DLL Wldap32.dll

참조

함수

LDAP

반환 값

세션 옵션

ldap_msgfree

ldap_search

ldap_search_ext

ldap_search_ext_s

ldap_search_s