ADS_SEARCHPREF_ENUM 열거형(iads.h)

ADS_SEARCHPREF_ENUM 열거형은 IDirectorySearch 개체에 대한 기본 설정을 지정합니다. 이 열거형은 IDirectorySearch::SetSearchPreference 메서드에서 ADS_SEARCHPREF_INFO 구조체의 dwSearchPref 멤버에 사용됩니다.

Syntax

typedef enum __MIDL___MIDL_itf_ads_0000_0000_0025 {
  ADS_SEARCHPREF_ASYNCHRONOUS = 0,
  ADS_SEARCHPREF_DEREF_ALIASES,
  ADS_SEARCHPREF_SIZE_LIMIT,
  ADS_SEARCHPREF_TIME_LIMIT,
  ADS_SEARCHPREF_ATTRIBTYPES_ONLY,
  ADS_SEARCHPREF_SEARCH_SCOPE,
  ADS_SEARCHPREF_TIMEOUT,
  ADS_SEARCHPREF_PAGESIZE,
  ADS_SEARCHPREF_PAGED_TIME_LIMIT,
  ADS_SEARCHPREF_CHASE_REFERRALS,
  ADS_SEARCHPREF_SORT_ON,
  ADS_SEARCHPREF_CACHE_RESULTS,
  ADS_SEARCHPREF_DIRSYNC,
  ADS_SEARCHPREF_TOMBSTONE,
  ADS_SEARCHPREF_VLV,
  ADS_SEARCHPREF_ATTRIBUTE_QUERY,
  ADS_SEARCHPREF_SECURITY_MASK,
  ADS_SEARCHPREF_DIRSYNC_FLAG,
  ADS_SEARCHPREF_EXTENDED_DN
} ADS_SEARCHPREF_ENUM;

상수

 
ADS_SEARCHPREF_ASYNCHRONOUS
값: 0
검색을 비동기적으로 수행되도록 지정합니다. 기본적으로 검색은 동기식입니다.

동기 검색에서 IDirectorySearch::GetFirstRowIDirectorySearch::GetNextRow 메서드는 서버가 전체 결과를 반환하거나 페이징된 검색의 경우 전체 페이지를 반환할 때까지 반환되지 않습니다.

비동기 검색은 검색 결과의 한 행을 사용할 수 있거나 ADS_SEARCHPREF_TIMEOUT 검색 기본 설정에 지정된 시간 제한 간격이 경과할 때까지 차단됩니다.
ADS_SEARCHPREF_DEREF_ALIASES
찾은 개체의 별칭을 확인하도록 지정합니다. ADS_DEREFENUM 열거형을 사용하여 이 작업을 수행하는 방법을 지정합니다.
ADS_SEARCHPREF_SIZE_LIMIT
검색하는 동안 서버에서 관찰해야 하는 크기 제한을 지정합니다. 서버는 크기 제한에 도달하면 검색을 중지하고 해당 지점에 누적된 결과를 반환합니다. 이 값이 0이면 크기 제한이 디렉터리 서비스에 의해 결정됩니다. 이 값의 기본값은 0입니다. 이 값이 디렉터리 서비스에서 결정한 크기 제한보다 크면 디렉터리 서비스 제한이 우선합니다.

Active Directory의 경우 크기 제한은 검색에서 반환할 최대 개체 수를 지정합니다. 또한 Active Directory의 경우 검색에서 반환되는 최대 개체 수는 1000 개체입니다.
ADS_SEARCHPREF_TIME_LIMIT
서버에서 검색이 완료되기를 기다리는 시간(초)을 지정합니다. 시간 제한에 도달하면 서버는 검색을 중지하고 해당 지점에 누적된 결과를 반환합니다. 이 값이 0이면 제한 시간이 무한합니다. 이 값의 기본값은 120초입니다.
ADS_SEARCHPREF_ATTRIBTYPES_ONLY
검색에서 값이 할당된 특성의 이름만 가져와야 했음을 나타냅니다.
ADS_SEARCHPREF_SEARCH_SCOPE
서버에서 관찰해야 하는 검색 scope 지정합니다. 적절한 설정에 대한 자세한 내용은 ADS_SCOPEENUM 열거형을 참조하세요.
ADS_SEARCHPREF_TIMEOUT
클라이언트가 서버가 결과를 반환할 때까지 대기하는 시간 제한(초)을 지정합니다. 이 옵션은 ADS_SEARCHPREF_INFO 구조체에서 설정됩니다.
ADS_SEARCHPREF_PAGESIZE
페이징된 검색에서 페이지 크기를 지정합니다. 클라이언트의 각 요청에 대해 서버는 페이지 크기에 따라 설정된 개체 수를 최대로 반환합니다. 페이지 크기를 설정하면 크기 제한을 설정할 필요가 없습니다. 크기 제한이 설정된 경우 페이지 크기의 값은 크기 제한 값보다 작아야 합니다. 페이지 크기 값이 크기 제한을 초과하면 크기 제한으로 지정된 행 수와 함께 ERROR_DS_SIZELIMIT_EXCEEDED 오류가 반환됩니다.
ADS_SEARCHPREF_PAGED_TIME_LIMIT
전체 검색에 대한 시간 제한과 달리 서버에서 검색 결과 페이지를 대기해야 하는 시간(초)을 지정합니다. 시간 제한에 도달하면 서버는 검색을 중지하고 검색을 다시 시작할 위치에 대한 데이터가 포함된 쿠키와 함께 해당 시점까지 얻은 결과를 반환합니다. 이 값이 0이면 페이지 제한 시간이 무한합니다. 이 제한의 기본값은 120초입니다.
ADS_SEARCHPREF_CHASE_REFERRALS
조회를 쫓을 수 있도록 지정합니다. 루트 검색이 서버의 명명 컨텍스트에 지정되지 않았거나 검색 결과가 명명 컨텍스트를 교차하는 경우(예: 자식 도메인이 있고 부모 도메인에서 검색하는 경우) 서버는 클라이언트가 무시하거나 추적하도록 선택할 수 있는 조회 메시지를 클라이언트에 보냅니다. 조회 추적에 대한 자세한 내용은 ADS_CHASE_REFERRALS_ENUM 참조하세요.
ADS_SEARCHPREF_SORT_ON
서버에서 결과 집합을 정렬하도록 지정합니다. ADS_SORTKEY 구조를 사용하여 정렬 키를 지정합니다. 이 검색 기본 설정은 서버 쪽 정렬에 대한 LDAP 컨트롤을 지원하는 디렉터리 서버에서만 작동합니다. Active Directory는 정렬 컨트롤을 지원하지만, 특히 결과 집합이 큰 경우 서버 성능에 영향을 미칠 수 있습니다. Active Directory는 단일 정렬 키만 지원합니다.
ADS_SEARCHPREF_CACHE_RESULTS
클라이언트 쪽에서 결과를 캐시해야 하는지를 지정합니다. 기본적으로 ADSI는 결과 집합을 캐시합니다. 이 옵션을 사용하지 않도록 설정하는 것이 큰 결과 집합에 적합할 수 있습니다.
ADS_SEARCHPREF_DIRSYNC
지정된 상태 이후의 모든 변경 내용을 반환하는 디렉터리 동기화(DirSync) 검색을 지정합니다. ADSVALUE 구조에서 dwType 멤버를 ADS_PROV_SPECIFIC 설정합니다. ProviderSpecific 멤버는 lpValue 멤버가 변경 내용이 검색되는 상태를 나타내는 쿠키를 지정하는 ADS_PROV_SPECIFIC 구조체입니다. DirSync 컨트롤을 처음 사용할 때는 ADS_PROV_SPECIFIC 구조체의 dwLengthlpValue 멤버를 각각 0과 NULL로 설정합니다. IDirectorySearch::GetNextRowS_ADS_NOMORE_ROWS 반환할 때까지 검색에서 반환된 결과 집합을 읽은 후 IDirectorySearch::GetColumn을 호출하여 다음 DirSync 검색에 사용할 쿠키가 포함된 ADS_DIRSYNC_COOKIE 특성을 검색합니다. 자세한 내용은 DirSync 컨트롤을 사용하여 변경 내용 폴링LDAP_SERVER_DIRSYNC_OID 참조하세요.

이 플래그는 ADS_SEARCHPREF_PAGESIZE 결합할 수 없습니다.

호출자에게는 SE_SYNC_AGENT_NAME 권한이 있어야 합니다.
ADS_SEARCHPREF_TOMBSTONE
검색 필터와 일치하는 삭제된 개체도 검색에서 반환할지 여부를 지정합니다. 개체가 삭제되면 Active Directory는 개체를 "삭제된 개체" 컨테이너로 이동합니다. 기본적으로 삭제된 개체는 검색 결과에 포함되지 않습니다. ADSVALUE 구조에서 dwType 멤버를 ADSTYPE_BOOLEAN 설정합니다. 삭제된 개체를 포함하려면 ADSVALUE 구조체의 부울 멤버를 TRUE로 설정합니다.

개체가 삭제될 때 모든 특성이 유지되는 것은 아닙니다. objectGUIDRDN 특성을 검색할 수 있습니다. distinguishedName 특성은 이전 DN이 아닌 "삭제된 개체" 컨테이너에 있는 개체의 DN입니다. isDeleted 특성은 삭제된 개체에 대해 TRUE입니다. 자세한 내용은 삭제된 개체 검색을 참조하세요.
ADS_SEARCHPREF_VLV
검색에서 LDAP VLV(가상 목록 보기) 컨트롤을 사용하도록 지정합니다. ADS_SEARCHPREF_VLV 적절한 필드를 설정하여 문자열 형식 및 오프셋 형식 VLV 검색 모두에 액세스하는 데 사용할 수 있습니다. 특정 오프셋에 있고 정렬 시퀀스의 특정 값을 따르는 결과 집합을 요청하도록 VLV 컨트롤을 설정할 수 없으므로 이러한 두 옵션을 동시에 사용할 수 없습니다.

문자열 검색을 수행하려면 ADS_VLVlpszTarget 필드를 검색할 문자열로 설정합니다. 오프셋 형식 검색을 수행하려면 ADS_VLV dwOffset 필드를 설정합니다. 오프셋 검색을 사용하는 경우 lpszTargetNULL로 설정해야 합니다.

ADS_SEARCHPREF_VLV 사용할 때는 ADS_SEARCHPREF_SORT_ONTRUE로 설정해야 합니다. 검색 결과의 정렬 순서에 따라 VLV 검색에 사용되는 순서가 결정됩니다. 오프셋 형식 검색을 수행하는 경우 오프셋은 정렬된 목록의 인덱스로 사용됩니다. 문자열 형식 검색을 수행하는 경우 서버는 정렬 순서에 따라 문자열보다 크거나 같은 첫 번째 항목을 반환하려고 시도합니다.

ADS_SEARCHPREF_VLV 지정하면 검색 결과의 캐싱이 비활성화됩니다.

true를 ADS_SEARCHPREF_CACHE_RESULTS 할당하면 ADS_SEARCHPREF_VLV 사용할 때 SetSearchPreference가 실패하고 오류 E_ADS_BAD_PARAMETER 반환됩니다.
ADS_SEARCHPREF_ATTRIBUTE_QUERY
특성 범위 쿼리 검색을 수행해야 되도록 지정합니다. 기본 개체의 지정된 특성에 명명된 개체에 대해 검색이 수행됩니다. ADS_SEARCHPREF_INFO 구조체의 vValue 멤버는 검색할 특성의 lDAPDisplayName을 포함하는 ADSTYPE_CASE_IGNORE_STRING 값을 포함합니다. 이 특성은 ADS_DN_STRING 특성이어야 합니다. 하나의 특성만 지정할 수 있습니다. 이 기본 설정을 사용할 때 검색 scope 자동으로 ADS_SCOPE_BASE 설정되며, 그렇지 않으면 오류 E_ADS_BAD_PARAMETER scope 설정하려고 하면 실패합니다. ADS_SEARCHPREF_VLV 기본 설정을 제외하고 ADS_SEARCHPREF_DIRSYNC, ADS_SEARCHPREF_TOMBSTONE 등과 같은 LDAP 컨트롤을 사용하는 다른 모든 기본 설정은 이 기본 설정을 지정할 때 허용되지 않습니다.
ADS_SEARCHPREF_SECURITY_MASK
검색에서 지정된 특성에 대한 보안 액세스 데이터를 반환해야 한다고 지정합니다. ADS_SEARCHPREF_INFO 구조체의 vValue 멤버에는 다음 값 중 하나 이상의 조합인 ADS_INTEGER 값이 포함되어 있습니다.






















설명
ADS_SECURITY_INFO_OWNER소유자 데이터를 읽습니다.
ADS_SECURITY_INFO_GROUP그룹 데이터를 읽습니다.
ADS_SECURITY_INFO_DACLDACL(임의 액세스 제어 목록)을 읽습니다.
ADS_SECURITY_INFO_SACLSACL(시스템 액세스 제어 목록)을 읽습니다.

 

ADS_SEARCHPREF_SECURITY_MASK 사용하여 보안 마스크를 명시적으로 지정하지 않고 보안 설명자를 읽는 경우 기본값은 ADS_SECURITY_INFO_OWNER
ADS_SECURITY_INFO_GROUP ADS_SECURITY_INFO_DACL.
ADS_SEARCHPREF_DIRSYNC_FLAG
ADS_SEARCHPREF_DIRSYNC 검색 기본 설정과 함께 사용할 선택적 플래그를 포함합니다. ADS_SEARCHPREF_INFO 구조체의 vValue 멤버에는 0인 ADSTYPE_INTEGER 값 또는 다음 값 중 하나 이상의 조합이 포함됩니다. DirSync 컨트롤에 대한 자세한 내용은 DirSync 컨트롤을 사용하여 변경 내용 폴링LDAP_SERVER_DIRSYNC_OID 참조하세요.



























ID설명
LDAP_DIRSYNC_OBJECT_SECURITY1이 플래그가 없으면 호출자에게 변경 내용 복제 권한이 있어야 합니다. 이 플래그가 있으면
호출자는 권한이 필요하지 않지만 호출자가 액세스할 수 있는 개체 및 특성만 볼 수 있습니다.
LDAP_DIRSYNC_ANCESTORS_FIRST_ORDER2048년(0x00000800)부모 개체가 나중에 복제 스트림에 표시될 때 자식 개체 앞에 부모 개체를 반환합니다.
LDAP_DIRSYNC_PUBLIC_DATA_ONLY8192(0x00002000)검색 결과에 프라이빗 데이터를 반환하지 않습니다.
LDAP_DIRSYNC_INCREMENTAL_VALUES2147483648(0x80000000)이 플래그가 없으면 값이 변경될 때 다중값 특성의 모든 값이 서버에 지정된 한계까지 반환됩니다. 이 플래그가 있으면 변경된 값만 반환됩니다.
ADS_SEARCHPREF_EXTENDED_DN
검색은 Active Directory 확장 형식으로 고유 이름을 반환해야 합니다. ADS_SEARCHPREF_INFO 구조체의 vValue 멤버는 DN 문자열의 GUID 및 SID 부분이 16진수 형식이어야 하는 경우 0을 포함하는 ADSTYPE_INTEGER 값을 포함하거나 DN 문자열의 GUID 및 SID 부분이 표준 형식이어야 하는 경우 1을 포함합니다. 확장된 고유 이름에 대한 자세한 내용은 LDAP_SERVER_EXTENDED_DN_OID.

설명

검색 기본 설정을 하려면 서버에 전달된 ADS_SEARCHPREF_INFO 구조의 필드에 적절한 값을 할당합니다. ADS_SEARCHPREF_INFO 구조체의 vValue 멤버는 ADSVALUE 구조체입니다. 다음 목록에는 ADS_SEARCHPREF_ENUM 값, ADSVALUE 구조체의 dwType 멤버에 대한 해당 값 및 지정된 형식에 사용되는 ADSVALUE 멤버가 나열되어 있습니다.

ADS_SEARCHPREF_ENUM ADSVALUEdwType 멤버 ADSVALUE 멤버
ADS_SEARCHPREF_ASYNCHRONOUS ADSTYPE_BOOLEAN Boolean
ADS_SEARCHPREF_DEREF_ALIASES ADSTYPE_INTEGER 정수
ADS_SEARCHPREF_SIZE_LIMIT ADSTYPE_INTEGER 정수
ADS_SEARCHPREF_TIME_LIMIT ADSTYPE_INTEGER 정수
ADS_SEARCHPREF_ATTRIBTYPES_ONLY ADSTYPE_BOOLEAN Boolean
ADS_SEARCHPREF_SEARCH_SCOPE ADSTYPE_INTEGER 정수
ADS_SEARCHPREF_TIMEOUT ADSTYPE_INTEGER 정수
ADS_SEARCHPREF_PAGESIZE ADSTYPE_INTEGER 정수
ADS_SEARCHPREF_PAGED_TIME_LIMIT ADSTYPE_INTEGER 정수
ADS_SEARCHPREF_CHASE_REFERRALS ADSTYPE_INTEGER 정수
ADS_SEARCHPREF_SORT_ON ADSTYPE_PROV_SPECIFIC ProviderSpecific
ADS_SEARCHPREF_CACHE_RESULTS ADSTYPE_BOOLEAN Boolean
ADS_SEARCHPREF_DIRSYNC ADSTYPE_PROV_SPECIFIC ProviderSpecific
ADS_SEARCHPREF_TOMBSTONE ADSTYPE_BOOLEAN Boolean
ADS_SEARCHPREF_VLV ADSTYPE_PROV_SPECIFIC ProviderSpecific
ADS_SEARCHPREF_ATTRIBUTE_QUERY ADSTYPE_CASE_IGNORE_STRING CaseIgnoreString
ADS_SEARCHPREF_SECURITY_MASK ADSTYPE_INTEGER 정수
ADS_SEARCHPREF_DIRSYNC_FLAG ADSTYPE_INTEGER 정수
ADS_SEARCHPREF_EXTENDED_DN ADSTYPE_INTEGER 정수
 

여러 기본 설정을 설정하려면 ADS_SEARCHPREF_INFO 구조의 배열을 사용합니다. 이 열거형의 멤버 값은 ADS_SEARCHPREF_INFO 구조체의 dwSearchPref 멤버에 할당됩니다.

모든 옵션은 LDAP 시스템 공급자에서 지원됩니다.

VBScript는 형식 라이브러리에서 데이터를 읽을 수 없으므로 VBScript 애플리케이션은 위에서 정의한 대로 기호 상수를 인식하지 못합니다. 대신 숫자 상수를 사용하여 VBScript 애플리케이션에서 적절한 플래그를 설정해야 합니다. 심볼 상수를 좋은 프로그래밍 사례로 사용하려면 VBScript 애플리케이션에서 여기에서와 같이 이러한 상수를 명시적으로 선언합니다.

예제

다음 코드 예제에서는 ADS_SEARCHPREF_INFO 열거형을 사용하여 검색 기본 설정을 지정하는 방법을 보여 줍니다.

HRESULT SetSearchPreferences2(
    DWORD dwScope,// -1 indicates default: subtree.
    DWORD dwOverallTimeOut,// <=0 indicates default: no time out set.
    DWORD dwOverallSizeLimit,// <=0 indicates default: no size limit set.
    DWORD dwOverallTimeLimit,// <=0 indicates default: no time limit set.
    BOOL bCacheResult,// TRUE indicates default.
    BOOL bIsAsynchronous,// FALSE indicates default.
    DWORD dwPageSize,// <=0 indicates default.
    DWORD dwPageTimeLimit,// <=0 indicates default.
    DWORD dwChaseReferral,// <=0 indicates default.
    LPOLESTR szSortKey,// NULL indicates do not sort.
    BOOL bIsDescending,
    BOOL bReturnAttributeNamesOnly,// FALSE indicates default.
    ADS_SEARCHPREF_INFO **ppSearchPref, // Return an array of search preferences.
    DWORD *pdwSearchPrefCount
)
{
   HRESULT hr = S_OK;
   DWORD dwCountPref = 0L;
 
   // Determine size of preferences array.
   DWORD dwTotal = 11L;
 
   if(dwScope==-1)
       dwTotal--;
   if(dwOverallTimeOut<=0)
       dwTotal--;
   if(dwOverallSizeLimit<=0)
       dwTotal--;
   if(dwOverallTimeLimit<=0)
       dwTotal--;
   if(bCacheResult)
       dwTotal--;
   if(!bIsAsynchronous)
       dwTotal--;
   if(dwPageSize<=0)
       dwTotal--;
   if(dwPageTimeLimit<=0)
       dwTotal--;
   if(dwChaseReferral<=0)
       dwTotal--;
   if(!bReturnAttributeNamesOnly)
       dwTotal--;
   if (!szSortKey)
       dwTotal--;
 
   ADS_SEARCHPREF_INFO *prefInfo = new ADS_SEARCHPREF_INFO[ dwTotal ];
   ADS_SORTKEY SortKey;

    if(!prefInfo)
    {
        return E_OUTOFMEMORY;
    }
 
    //////////////////
    // Search Scope
    //////////////////
    if(dwScope>=0)
    {
        prefInfo[dwCountPref].dwSearchPref =
                         ADS_SEARCHPREF_SEARCH_SCOPE;
        prefInfo[dwCountPref].vValue.dwType = ADSTYPE_INTEGER;
        prefInfo[dwCountPref].vValue.Integer = dwScope;
        dwCountPref++;
    }
 
    //////////////////
    // Time Out
    //////////////////
    if(dwOverallTimeOut>0)
    {
       prefInfo[dwCountPref].dwSearchPref = ADS_SEARCHPREF_TIMEOUT;
       prefInfo[dwCountPref].vValue.dwType = ADSTYPE_INTEGER;
       prefInfo[dwCountPref].vValue.Integer = dwOverallTimeOut;
       dwCountPref++;
    }
 
    ///////////////
    // Size Limit
    ///////////////
    if(dwOverallSizeLimit>0)
    {
       prefInfo[dwCountPref].dwSearchPref = ADS_SEARCHPREF_SIZE_LIMIT;
       prefInfo[dwCountPref].vValue.dwType = ADSTYPE_INTEGER;
       prefInfo[dwCountPref].vValue.Integer = dwOverallSizeLimit;
       dwCountPref++;
    }
 
    ///////////////
    // Time Limit
    ///////////////
    if(dwOverallTimeLimit>0) 
    {
       prefInfo[dwCountPref].dwSearchPref = ADS_SEARCHPREF_TIME_LIMIT;
       prefInfo[dwCountPref].vValue.dwType = ADSTYPE_INTEGER;
       prefInfo[dwCountPref].vValue.Integer = dwOverallTimeLimit;
       dwCountPref++;
    }
 
    /////////////////
    // Cache Result
    /////////////////
 
    if (!bCacheResult)
    {
        prefInfo[dwCountPref].dwSearchPref =
                              ADS_SEARCHPREF_CACHE_RESULTS;
        prefInfo[dwCountPref].vValue.dwType = ADSTYPE_BOOLEAN;
        prefInfo[dwCountPref].vValue.Boolean = bCacheResult;
        dwCountPref++;
    }
 
    //////////////
    // Page Size
    //////////////
    if(dwPageSize>0)
    {
        prefInfo[dwCountPref].dwSearchPref = ADS_SEARCHPREF_PAGESIZE;
        prefInfo[dwCountPref].vValue.dwType = ADSTYPE_INTEGER;;
        prefInfo[dwCountPref].vValue.Integer = dwPageSize;
        dwCountPref++;
    }
 
    //////////////////
    // Page Time Limit
    //////////////////
    if(dwPageTimeLimit>0)
    {
        prefInfo[dwCountPref].dwSearchPref = 
                                      ADS_SEARCHPREF_PAGED_TIME_LIMIT;
        prefInfo[dwCountPref].vValue.dwType = ADSTYPE_INTEGER;;
        prefInfo[dwCountPref].vValue.Integer = dwPageTimeLimit;
        dwCountPref++;
    }
 
    ///////////////////
    // Chase Referrals
    ///////////////////
    if(dwChaseReferral>0)
    {
        prefInfo[dwCountPref].dwSearchPref =
                                      ADS_SEARCHPREF_CHASE_REFERRALS;
        prefInfo[dwCountPref].vValue.dwType = ADSTYPE_INTEGER;
        prefInfo[dwCountPref].vValue.Integer = dwChaseReferral;
        dwCountPref++;
    }
 
    /////////////
    // Sort
    /////////////
    if (szSortKey)
    {
        prefInfo[dwCountPref].dwSearchPref = ADS_SEARCHPREF_SORT_ON;
        prefInfo[dwCountPref].vValue.dwType = ADSTYPE_PROV_SPECIFIC;
        SortKey.pszAttrType = (LPWSTR)LocalAlloc(
                        LPTR,
                        wcslen(szSortKey)*sizeof(WCHAR) +sizeof(WCHAR)
                        );
        wcscpy_s(SortKey.pszAttrType,szSortKey);
        SortKey.pszReserved = NULL;
        SortKey.fReverseorder = 0;
        prefInfo[dwCountPref].vValue.ProviderSpecific.dwLength = 
                                                 sizeof(ADS_SORTKEY);
        prefInfo[dwCountPref].vValue.ProviderSpecific.lpValue = 
                                                 (LPBYTE) &SortKey;
        dwCountPref++;
    }
    
    /////////////////
    // Asynchronous
    /////////////////
    if(bIsAsynchronous)
    {
        prefInfo[dwCountPref].dwSearchPref =
                                     ADS_SEARCHPREF_ASYNCHRONOUS;
        prefInfo[dwCountPref].vValue.dwType = ADSTYPE_BOOLEAN;
        prefInfo[dwCountPref].vValue.Integer = bIsAsynchronous;
        dwCountPref++;
    }
 
    ////////////////////////
    // Attribute Type Only
    ////////////////////////
    if(bReturnAttributeNamesOnly)
    {
        prefInfo[dwCountPref].dwSearchPref =
                                  ADS_SEARCHPREF_ATTRIBTYPES_ONLY;
        prefInfo[dwCountPref].vValue.dwType = ADSTYPE_BOOLEAN;
        prefInfo[dwCountPref].vValue.Integer = 
                                  bReturnAttributeNamesOnly;
        dwCountPref++;
    }
 
    if (SUCCEEDED(hr))
    {
        *pdwSearchPrefCount = dwCountPref;
        *ppSearchPref  = prefInfo;
    }
    else
    {
        *pdwSearchPrefCount = 0L;
        *ppSearchPref  = NULL;
    }
 
 
    return hr;
}

요구 사항

   
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
머리글 iads.h

참고 항목

ADSI 열거형

ADSVALUE

ADS_CHASE_REFERRALS_ENUM

ADS_DEREFENUM

ADS_PROV_SPECIFIC

ADS_SCOPEENUM

ADS_SEARCHPREF_INFO

ADS_SORTKEY

ADS_VLV

IDirectorySearch::GetColumn

IDirectorySearch::GetNextRow

IDirectorySearch::SetSearchPreference

DirSync 컨트롤을 사용하여 변경 내용 폴링

삭제된 개체 검색