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_RESULTS 및 LDAP_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 |