ldap_search_ext_s 함수(winldap.h)
ldap_search_ext_s 함수는 LDAP 디렉터리를 동기적으로 검색하고 일치하는 각 항목에 대해 요청된 특성 집합을 반환합니다.
구문
WINLDAPAPI ULONG LDAPAPI ldap_search_ext_s(
[in] LDAP *ld,
[in] PSTR base,
[in] ULONG scope,
[in] PSTR filter,
[in] PZPSTR attrs,
[in] ULONG attrsonly,
[in] PLDAPControlA *ServerControls,
[in] PLDAPControlA *ClientControls,
[in] l_timeval *timeout,
[in] ULONG SizeLimit,
[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] ServerControls
LDAP 서버 컨트롤 목록입니다.
[in] ClientControls
클라이언트 컨트롤 목록입니다.
[in] timeout
로컬 검색 시간 제한 값(초)과 검색 요청 내에서 서버로 전송되는 작업 시간 제한을 모두 지정합니다.
[in] SizeLimit
검색에서 반환할 항목 수에 대한 제한입니다. 값이 0이면 한도가 없음을 의미합니다.
[out] res
호출이 완료될 때 검색 결과를 포함합니다. 함수 호출이 오류 코드와 함께 실패할 때 부분 결과 또는 확장된 데이터를 포함할 수도 있습니다. 애플리케이션에서 더 이상 필요하지 않은 경우 ldap_msgfree 호출하여 반환된 무료 결과입니다.
반환 값
함수가 성공하면 반환 값이 LDAP_SUCCESS.
함수가 실패하면 오류 코드가 반환되지만 ldap_search_ext_s 실패할 수 있으며 pMsg를 할당할 수 있습니다. 예를 들어 LDAP_PARTIAL_RESULTS 및 LDAP_REFERRAL 오류 코드 모두 pMsg를 할당합니다. 자세한 내용은 다음 코드 예제를 참조하세요. 자세한 내용은 반환 값을 참조하세요.
설명
ldap_search_ext_s 함수는 동기 검색 작업을 시작합니다. ldap_search_ext_s 매개 변수와 효과에는 ldap_search_s 매개 변수가 포함됩니다. 확장 루틴에는 클라이언트 및 서버 컨트롤을 지원하고 각 검색 작업에 대한 크기 및 시간 제한을 지정하는 추가 매개 변수가 포함됩니다.
ld 세션 핸들과 함께 ldap_set_option 함수를 사용하여 검색 수행 방법을 결정하는 LDAP_OPT_DEREF 옵션을 설정합니다. 자세한 내용은 세션 옵션을 참조하세요. 다른 두 가지 검색 옵션인 LDAP_OPT_SIZELIMIT 및 LDAP_OPT_TIMELIMIT 이 함수의 SizeLimit 및 TimeLimit 옵션 매개 변수를 선호하여 무시됩니다.
검색 작업이 완료되면 ldap_search_ext_s 호출자에게 돌아갑니다. ldap_search_ext 사용하여 작업을 비동기적으로 수행합니다.
다중 스레딩: ldap_search_ext_s 호출은 스레드로부터 안전합니다.
다음 코드 예제에서는 ldap_search_ext_s 실패 하는 경우 pMsg를 해제 하는 방법을 보여 줍니다.
// Initialize return value to NULL.
LDAPMessage *pMsg = NULL;
// Perform the search request.
dwErr = ldap_search_ext_s (i_pldap,
i_lpszBase,
i_ulScope,
i_lpszSearchFilter,
lpszAttributes,
0,
pServerControls,
pClientControls,
lpsTimeout,
0,
&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_ext_s"));
hr = HRESULT_FROM_WIN32(dwErr);
// Be aware that pMsg can contain valid data, even if
// the call to ldap_search_ext_s 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 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 |