Win32 API 日本語リファレンス
ホームNetworking.ActiveDirectory › ADS_SEARCHPREF_ENUM

ADS_SEARCHPREF_ENUM

列挙型
基底型i4

メンバー 19

名前10進16進説明
ADS_SEARCHPREF_ASYNCHRONOUS00x0

検索を非同期に実行することを指定します。既定では、検索は同期的に実行されます。

同期検索では、IDirectorySearch::GetFirstRow メソッドと IDirectorySearch::GetNextRow メソッドは、サーバーが結果全体 (ページ検索の場合はページ全体) を返すまで制御を戻しません。

非同期検索では、検索結果の 1 行が利用可能になるか、ADS_SEARCHPREF_TIMEOUT 検索設定で指定されたタイムアウト時間が経過するまでブロックします。

ADS_SEARCHPREF_DEREF_ALIASES10x1見つかったオブジェクトのエイリアスを解決することを指定します。解決方法の指定には ADS_DEREFENUM 列挙型を使用します。
ADS_SEARCHPREF_SIZE_LIMIT20x2

検索中にサーバーが従うべきサイズ制限を指定します。サーバーはサイズ制限に達した時点で検索を停止し、その時点までに蓄積された結果を返します。この値が 0 の場合、サイズ制限はディレクトリサービスによって決定されます。この値の既定値は 0 です。この値がディレクトリサービスによって決定される制限より大きい場合は、ディレクトリサービスの制限が優先されます。

Active Directory の場合、サイズ制限は検索で返されるオブジェクトの最大数を指定します。また Active Directory では、1 回の検索で返されるオブジェクトの最大数は 1000 個です。

ADS_SEARCHPREF_TIME_LIMIT30x3サーバーが検索の完了を待機する秒数を指定します。制限時間に達すると、サーバーは検索を停止し、その時点までに蓄積された結果を返します。この値が 0 の場合、タイムアウト時間は無制限になります。この値の既定値は 120 秒です。
ADS_SEARCHPREF_ATTRIBTYPES_ONLY40x4値が割り当てられている属性の名前のみを取得することを示します。
ADS_SEARCHPREF_SEARCH_SCOPE50x5サーバーが従うべき検索スコープを指定します。適切な設定値の詳細については、ADS_SCOPEENUM 列挙型を参照してください。
ADS_SEARCHPREF_TIMEOUT60x6クライアントがサーバーからの結果の返却を待機する制限時間を秒単位で指定します。このオプションは ADS_SEARCHPREF_INFO 構造体で設定します。
ADS_SEARCHPREF_PAGESIZE70x7ページ検索でのページサイズを指定します。サーバーはクライアントからの要求ごとに、最大でもページサイズに設定された数のオブジェクトを返します。ページサイズを設定する場合、サイズ制限を設定する必要はありません。サイズ制限を設定する場合は、ページサイズの値がサイズ制限の値より小さくなければなりません。ページサイズの値がサイズ制限を超える場合は、サイズ制限で指定された行数とともに ERROR_DS_SIZELIMIT_EXCEEDED エラーが返されます。
ADS_SEARCHPREF_PAGED_TIME_LIMIT80x8検索全体の制限時間ではなく、1 ページ分の検索結果に対してサーバーが待機する秒数を指定します。制限時間に達すると、サーバーは検索を停止し、その時点までに取得した結果を、検索を再開する位置に関するデータを含むクッキーとともに返します。この値が 0 の場合、ページのタイムアウト時間は無制限になります。この制限の既定値は 120 秒です。
ADS_SEARCHPREF_CHASE_REFERRALS90x9参照 (リファーラル) を追跡できることを指定します。ルートの検索がサーバーの名前付けコンテキスト内で指定されていない場合や、検索結果が名前付けコンテキストをまたぐ場合 (子ドメインがあり、親ドメインで検索する場合など) には、サーバーはクライアントに参照メッセージを送信し、クライアントはそれを無視するか追跡するかを選択できます。参照の追跡の詳細については、ADS_CHASE_REFERRALS_ENUM を参照してください。
ADS_SEARCHPREF_SORT_ON100xAサーバーが結果セットを並べ替えることを指定します。並べ替えキーの指定には ADS_SORTKEY 構造体を使用します。この検索設定は、サーバー側での並べ替え用の LDAP コントロールをサポートするディレクトリサーバーでのみ機能します。Active Directory は並べ替えコントロールをサポートしていますが、特に結果セットが大きい場合はサーバーのパフォーマンスに影響を与えることがあります。Active Directory は並べ替えキーを 1 つだけサポートします。
ADS_SEARCHPREF_CACHE_RESULTS110xB結果をクライアント側でキャッシュするかどうかを指定します。既定では、ADSI は結果セットをキャッシュします。結果セットが大きい場合は、このオプションを無効にすることが望ましい場合があります。
ADS_SEARCHPREF_DIRSYNC120xC

指定した状態以降のすべての変更を返す、ディレクトリ同期 (DirSync) 検索を指定します。ADSVALUE 構造体では、dwType メンバーに ADS_PROV_SPECIFIC を設定します。ProviderSpecific メンバーは ADS_PROV_SPECIFIC 構造体であり、その lpValue メンバーには、変更を取得する起点となる状態を示すクッキーを指定します。DirSync コントロールを初めて使用するときは、ADS_PROV_SPECIFIC 構造体の dwLength メンバーに 0 を、lpValue メンバーに NULL をそれぞれ設定します。IDirectorySearch::GetNextRowS_ADS_NOMORE_ROWS を返すまで検索が返した結果セットを読み取った後、IDirectorySearch::GetColumn を呼び出して ADS_DIRSYNC_COOKIE 属性を取得します。この属性には、次の DirSync 検索で使用するクッキーが格納されています。詳細については、Polling for Changes Using the DirSync Control および LDAP_SERVER_DIRSYNC_OID を参照してください。

このフラグは ADS_SEARCHPREF_PAGESIZE と組み合わせることはできません。

呼び出し元は SE_SYNC_AGENT_NAME 特権を持っていなければなりません。

ADS_SEARCHPREF_TOMBSTONE130xD

検索フィルターに一致する削除済みオブジェクトも返すかどうかを指定します。オブジェクトが削除されると、Active Directory はそれを "Deleted Objects" コンテナーに移動します。既定では、削除済みオブジェクトは検索結果に含まれません。ADSVALUE 構造体では、dwType メンバーに ADSTYPE_BOOLEAN を設定します。削除済みオブジェクトを含めるには、ADSVALUE 構造体の Boolean メンバーに TRUE を設定します。

オブジェクトの削除時に、すべての属性が保持されるわけではありません。objectGUID 属性と RDN 属性は取得できます。distinguishedName 属性は、以前の DN ではなく "Deleted Objects" コンテナー内でのオブジェクトの DN です。削除済みオブジェクトの isDeleted 属性は TRUE になります。詳細については、Retrieving Deleted Objects を参照してください。

ADS_SEARCHPREF_VLV140xE

検索で LDAP 仮想リストビュー (VLV) コントロールを使用することを指定します。ADS_SEARCHPREF_VLV は、適切なフィールドを設定することで、文字列型とオフセット型の両方の VLV 検索に使用できます。これら 2 つのオプションを同時に使用することはできません。特定のオフセットに位置し、かつ並べ替え順序において特定の値の後に続く結果セットを要求するように VLV コントロールを設定することはできないためです。

文字列検索を行うには、ADS_VLVlpszTarget フィールドに検索対象の文字列を設定します。オフセット型の検索を行うには、ADS_VLV の dwOffset フィールドを設定します。オフセット検索を使用する場合は、lpszTargetNULL を設定しなければなりません。

ADS_SEARCHPREF_VLV を使用する場合は、ADS_SEARCHPREF_SORT_ONTRUE に設定しなければなりません。検索結果の並べ替え順序が、VLV 検索で使用される順序を決定します。オフセット型の検索を行う場合、オフセットは並べ替え済みリストへのインデックスとして使用されます。文字列型の検索を行う場合、サーバーは並べ替え順序に基づいて、その文字列以上となる最初のエントリを返そうとします。

ADS_SEARCHPREF_VLV を指定すると、検索結果のキャッシュは無効になります。

ADS_SEARCHPREF_VLV の使用時に ADS_SEARCHPREF_CACHE_RESULTSTRUE を割り当てると、SetSearchPreference は失敗し、エラー E_ADS_BAD_PARAMETER を返します。

ADS_SEARCHPREF_ATTRIBUTE_QUERY150xF属性スコープクエリ検索を実行することを指定します。検索は、基準オブジェクトの指定された属性に名前が記載されているオブジェクトに対して実行されます。ADS_SEARCHPREF_INFO 構造体の vValue メンバーには ADSTYPE_CASE_IGNORE_STRING 値が格納され、そこに検索対象の属性の lDAPDisplayName を指定します。この属性は ADS_DN_STRING 属性でなければなりません。指定できる属性は 1 つだけです。この検索設定を使用すると検索スコープは自動的に ADS_SCOPE_BASE に設定され、それ以外のスコープを設定しようとすると、エラー E_ADS_BAD_PARAMETER で失敗します。ADS_SEARCHPREF_VLV 検索設定を除き、ADS_SEARCHPREF_DIRSYNCADS_SEARCHPREF_TOMBSTONE など、LDAP コントロールを使用する他のすべての検索設定は、この検索設定を指定した場合には使用できません。
ADS_SEARCHPREF_SECURITY_MASK160x10

検索が、指定された属性のセキュリティアクセスデータを返すことを指定します。ADS_SEARCHPREF_INFO 構造体の vValue メンバーには、次の値の 1 つ以上を組み合わせた ADS_INTEGER 値が格納されます。

説明
ADS_SECURITY_INFO_OWNER 所有者のデータを読み取ります。
ADS_SECURITY_INFO_GROUP グループのデータを読み取ります。
ADS_SECURITY_INFO_DACL 随意アクセス制御リスト (DACL) を読み取ります。
ADS_SECURITY_INFO_SACL システムアクセス制御リスト (SACL) を読み取ります。

ADS_SEARCHPREF_SECURITY_MASK でセキュリティマスクを明示的に指定せずにセキュリティ記述子を読み取った場合、既定では ADS_SECURITY_INFO_OWNER | ADS_SECURITY_INFO_GROUP | ADS_SECURITY_INFO_DACL を指定した場合と同等になります。

ADS_SEARCHPREF_DIRSYNC_FLAG170x11

ADS_SEARCHPREF_DIRSYNC 検索設定と共に使用する省略可能なフラグを格納します。ADS_SEARCHPREF_INFO 構造体の vValue メンバーには、0 または次の値の 1 つ以上を組み合わせた ADSTYPE_INTEGER 値が格納されます。DirSync コントロールの詳細については、Polling for Changes Using the DirSync Control および LDAP_SERVER_DIRSYNC_OID を参照してください。

識別子 説明
LDAP_DIRSYNC_OBJECT_SECURITY 1 このフラグが指定されていない場合、呼び出し元はディレクトリ変更のレプリケート権限を持っていなければなりません。このフラグが指定されている場合、呼び出し元に権限は必要ありませんが、 呼び出し元がアクセスできるオブジェクトと属性のみを参照できます。
LDAP_DIRSYNC_ANCESTORS_FIRST_ORDER 2048 (0x00000800) 親オブジェクトがレプリケーションストリーム内で本来は後に現れる場合でも、子オブジェクトより先に親オブジェクトを返します。
LDAP_DIRSYNC_PUBLIC_DATA_ONLY 8192 (0x00002000) 検索結果にプライベートデータを返しません。
LDAP_DIRSYNC_INCREMENTAL_VALUES 2147483648 (0x80000000) このフラグが指定されていない場合、多値属性のいずれかの値が変更されると、サーバーが指定する上限までのすべての値が返されます。このフラグが指定されている場合は、変更された値のみが返されます。
ADS_SEARCHPREF_EXTENDED_DN180x12検索が識別名を Active Directory の拡張形式で返すことを指定します。ADS_SEARCHPREF_INFO 構造体の vValue メンバーには ADSTYPE_INTEGER 値が格納され、DN 文字列の GUID 部分と SID 部分を 16 進形式にする場合は 0 を、標準形式にする場合は 1 を指定します。拡張識別名の詳細については、LDAP_SERVER_EXTENDED_DN_OID を参照してください。

公式ドキュメント

ADS_SEARCHPREF_ENUM 列挙型は、IDirectorySearch オブジェクトの検索設定を指定します。この列挙型は、IDirectorySearch::SetSearchPreference メソッドで使用する ADS_SEARCHPREF_INFO 構造体の dwSearchPref メンバーで使用されます。

解説(Remarks)

検索設定を行うには、サーバーに渡す 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 Integer
ADS_SEARCHPREF_SIZE_LIMIT ADSTYPE_INTEGER Integer
ADS_SEARCHPREF_TIME_LIMIT ADSTYPE_INTEGER Integer
ADS_SEARCHPREF_ATTRIBTYPES_ONLY ADSTYPE_BOOLEAN Boolean
ADS_SEARCHPREF_SEARCH_SCOPE ADSTYPE_INTEGER Integer
ADS_SEARCHPREF_TIMEOUT ADSTYPE_INTEGER Integer
ADS_SEARCHPREF_PAGESIZE ADSTYPE_INTEGER Integer
ADS_SEARCHPREF_PAGED_TIME_LIMIT ADSTYPE_INTEGER Integer
ADS_SEARCHPREF_CHASE_REFERRALS ADSTYPE_INTEGER 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 Integer
ADS_SEARCHPREF_DIRSYNC_FLAG ADSTYPE_INTEGER Integer
ADS_SEARCHPREF_EXTENDED_DN ADSTYPE_INTEGER 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;
}
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum ADS_SEARCHPREF_ENUM : int {
    ADS_SEARCHPREF_ASYNCHRONOUS = 0,
    ADS_SEARCHPREF_DEREF_ALIASES = 1,
    ADS_SEARCHPREF_SIZE_LIMIT = 2,
    ADS_SEARCHPREF_TIME_LIMIT = 3,
    ADS_SEARCHPREF_ATTRIBTYPES_ONLY = 4,
    ADS_SEARCHPREF_SEARCH_SCOPE = 5,
    ADS_SEARCHPREF_TIMEOUT = 6,
    ADS_SEARCHPREF_PAGESIZE = 7,
    ADS_SEARCHPREF_PAGED_TIME_LIMIT = 8,
    ADS_SEARCHPREF_CHASE_REFERRALS = 9,
    ADS_SEARCHPREF_SORT_ON = 10,
    ADS_SEARCHPREF_CACHE_RESULTS = 11,
    ADS_SEARCHPREF_DIRSYNC = 12,
    ADS_SEARCHPREF_TOMBSTONE = 13,
    ADS_SEARCHPREF_VLV = 14,
    ADS_SEARCHPREF_ATTRIBUTE_QUERY = 15,
    ADS_SEARCHPREF_SECURITY_MASK = 16,
    ADS_SEARCHPREF_DIRSYNC_FLAG = 17,
    ADS_SEARCHPREF_EXTENDED_DN = 18
} ADS_SEARCHPREF_ENUM;
public enum ADS_SEARCHPREF_ENUM : int
{
    ADS_SEARCHPREF_ASYNCHRONOUS = 0,
    ADS_SEARCHPREF_DEREF_ALIASES = 1,
    ADS_SEARCHPREF_SIZE_LIMIT = 2,
    ADS_SEARCHPREF_TIME_LIMIT = 3,
    ADS_SEARCHPREF_ATTRIBTYPES_ONLY = 4,
    ADS_SEARCHPREF_SEARCH_SCOPE = 5,
    ADS_SEARCHPREF_TIMEOUT = 6,
    ADS_SEARCHPREF_PAGESIZE = 7,
    ADS_SEARCHPREF_PAGED_TIME_LIMIT = 8,
    ADS_SEARCHPREF_CHASE_REFERRALS = 9,
    ADS_SEARCHPREF_SORT_ON = 10,
    ADS_SEARCHPREF_CACHE_RESULTS = 11,
    ADS_SEARCHPREF_DIRSYNC = 12,
    ADS_SEARCHPREF_TOMBSTONE = 13,
    ADS_SEARCHPREF_VLV = 14,
    ADS_SEARCHPREF_ATTRIBUTE_QUERY = 15,
    ADS_SEARCHPREF_SECURITY_MASK = 16,
    ADS_SEARCHPREF_DIRSYNC_FLAG = 17,
    ADS_SEARCHPREF_EXTENDED_DN = 18,
}
Public Enum ADS_SEARCHPREF_ENUM As Integer
    ADS_SEARCHPREF_ASYNCHRONOUS = 0
    ADS_SEARCHPREF_DEREF_ALIASES = 1
    ADS_SEARCHPREF_SIZE_LIMIT = 2
    ADS_SEARCHPREF_TIME_LIMIT = 3
    ADS_SEARCHPREF_ATTRIBTYPES_ONLY = 4
    ADS_SEARCHPREF_SEARCH_SCOPE = 5
    ADS_SEARCHPREF_TIMEOUT = 6
    ADS_SEARCHPREF_PAGESIZE = 7
    ADS_SEARCHPREF_PAGED_TIME_LIMIT = 8
    ADS_SEARCHPREF_CHASE_REFERRALS = 9
    ADS_SEARCHPREF_SORT_ON = 10
    ADS_SEARCHPREF_CACHE_RESULTS = 11
    ADS_SEARCHPREF_DIRSYNC = 12
    ADS_SEARCHPREF_TOMBSTONE = 13
    ADS_SEARCHPREF_VLV = 14
    ADS_SEARCHPREF_ATTRIBUTE_QUERY = 15
    ADS_SEARCHPREF_SECURITY_MASK = 16
    ADS_SEARCHPREF_DIRSYNC_FLAG = 17
    ADS_SEARCHPREF_EXTENDED_DN = 18
End Enum
import enum

class ADS_SEARCHPREF_ENUM(enum.IntEnum):
    ADS_SEARCHPREF_ASYNCHRONOUS = 0
    ADS_SEARCHPREF_DEREF_ALIASES = 1
    ADS_SEARCHPREF_SIZE_LIMIT = 2
    ADS_SEARCHPREF_TIME_LIMIT = 3
    ADS_SEARCHPREF_ATTRIBTYPES_ONLY = 4
    ADS_SEARCHPREF_SEARCH_SCOPE = 5
    ADS_SEARCHPREF_TIMEOUT = 6
    ADS_SEARCHPREF_PAGESIZE = 7
    ADS_SEARCHPREF_PAGED_TIME_LIMIT = 8
    ADS_SEARCHPREF_CHASE_REFERRALS = 9
    ADS_SEARCHPREF_SORT_ON = 10
    ADS_SEARCHPREF_CACHE_RESULTS = 11
    ADS_SEARCHPREF_DIRSYNC = 12
    ADS_SEARCHPREF_TOMBSTONE = 13
    ADS_SEARCHPREF_VLV = 14
    ADS_SEARCHPREF_ATTRIBUTE_QUERY = 15
    ADS_SEARCHPREF_SECURITY_MASK = 16
    ADS_SEARCHPREF_DIRSYNC_FLAG = 17
    ADS_SEARCHPREF_EXTENDED_DN = 18
// ADS_SEARCHPREF_ENUM
pub const ADS_SEARCHPREF_ASYNCHRONOUS: i32 = 0;
pub const ADS_SEARCHPREF_DEREF_ALIASES: i32 = 1;
pub const ADS_SEARCHPREF_SIZE_LIMIT: i32 = 2;
pub const ADS_SEARCHPREF_TIME_LIMIT: i32 = 3;
pub const ADS_SEARCHPREF_ATTRIBTYPES_ONLY: i32 = 4;
pub const ADS_SEARCHPREF_SEARCH_SCOPE: i32 = 5;
pub const ADS_SEARCHPREF_TIMEOUT: i32 = 6;
pub const ADS_SEARCHPREF_PAGESIZE: i32 = 7;
pub const ADS_SEARCHPREF_PAGED_TIME_LIMIT: i32 = 8;
pub const ADS_SEARCHPREF_CHASE_REFERRALS: i32 = 9;
pub const ADS_SEARCHPREF_SORT_ON: i32 = 10;
pub const ADS_SEARCHPREF_CACHE_RESULTS: i32 = 11;
pub const ADS_SEARCHPREF_DIRSYNC: i32 = 12;
pub const ADS_SEARCHPREF_TOMBSTONE: i32 = 13;
pub const ADS_SEARCHPREF_VLV: i32 = 14;
pub const ADS_SEARCHPREF_ATTRIBUTE_QUERY: i32 = 15;
pub const ADS_SEARCHPREF_SECURITY_MASK: i32 = 16;
pub const ADS_SEARCHPREF_DIRSYNC_FLAG: i32 = 17;
pub const ADS_SEARCHPREF_EXTENDED_DN: i32 = 18;
// ADS_SEARCHPREF_ENUM
const (
	ADS_SEARCHPREF_ASYNCHRONOUS int32 = 0
	ADS_SEARCHPREF_DEREF_ALIASES int32 = 1
	ADS_SEARCHPREF_SIZE_LIMIT int32 = 2
	ADS_SEARCHPREF_TIME_LIMIT int32 = 3
	ADS_SEARCHPREF_ATTRIBTYPES_ONLY int32 = 4
	ADS_SEARCHPREF_SEARCH_SCOPE int32 = 5
	ADS_SEARCHPREF_TIMEOUT int32 = 6
	ADS_SEARCHPREF_PAGESIZE int32 = 7
	ADS_SEARCHPREF_PAGED_TIME_LIMIT int32 = 8
	ADS_SEARCHPREF_CHASE_REFERRALS int32 = 9
	ADS_SEARCHPREF_SORT_ON int32 = 10
	ADS_SEARCHPREF_CACHE_RESULTS int32 = 11
	ADS_SEARCHPREF_DIRSYNC int32 = 12
	ADS_SEARCHPREF_TOMBSTONE int32 = 13
	ADS_SEARCHPREF_VLV int32 = 14
	ADS_SEARCHPREF_ATTRIBUTE_QUERY int32 = 15
	ADS_SEARCHPREF_SECURITY_MASK int32 = 16
	ADS_SEARCHPREF_DIRSYNC_FLAG int32 = 17
	ADS_SEARCHPREF_EXTENDED_DN int32 = 18
)
const
  ADS_SEARCHPREF_ASYNCHRONOUS = 0;
  ADS_SEARCHPREF_DEREF_ALIASES = 1;
  ADS_SEARCHPREF_SIZE_LIMIT = 2;
  ADS_SEARCHPREF_TIME_LIMIT = 3;
  ADS_SEARCHPREF_ATTRIBTYPES_ONLY = 4;
  ADS_SEARCHPREF_SEARCH_SCOPE = 5;
  ADS_SEARCHPREF_TIMEOUT = 6;
  ADS_SEARCHPREF_PAGESIZE = 7;
  ADS_SEARCHPREF_PAGED_TIME_LIMIT = 8;
  ADS_SEARCHPREF_CHASE_REFERRALS = 9;
  ADS_SEARCHPREF_SORT_ON = 10;
  ADS_SEARCHPREF_CACHE_RESULTS = 11;
  ADS_SEARCHPREF_DIRSYNC = 12;
  ADS_SEARCHPREF_TOMBSTONE = 13;
  ADS_SEARCHPREF_VLV = 14;
  ADS_SEARCHPREF_ATTRIBUTE_QUERY = 15;
  ADS_SEARCHPREF_SECURITY_MASK = 16;
  ADS_SEARCHPREF_DIRSYNC_FLAG = 17;
  ADS_SEARCHPREF_EXTENDED_DN = 18;
// ADS_SEARCHPREF_ENUM
pub const ADS_SEARCHPREF_ASYNCHRONOUS: i32 = 0;
pub const ADS_SEARCHPREF_DEREF_ALIASES: i32 = 1;
pub const ADS_SEARCHPREF_SIZE_LIMIT: i32 = 2;
pub const ADS_SEARCHPREF_TIME_LIMIT: i32 = 3;
pub const ADS_SEARCHPREF_ATTRIBTYPES_ONLY: i32 = 4;
pub const ADS_SEARCHPREF_SEARCH_SCOPE: i32 = 5;
pub const ADS_SEARCHPREF_TIMEOUT: i32 = 6;
pub const ADS_SEARCHPREF_PAGESIZE: i32 = 7;
pub const ADS_SEARCHPREF_PAGED_TIME_LIMIT: i32 = 8;
pub const ADS_SEARCHPREF_CHASE_REFERRALS: i32 = 9;
pub const ADS_SEARCHPREF_SORT_ON: i32 = 10;
pub const ADS_SEARCHPREF_CACHE_RESULTS: i32 = 11;
pub const ADS_SEARCHPREF_DIRSYNC: i32 = 12;
pub const ADS_SEARCHPREF_TOMBSTONE: i32 = 13;
pub const ADS_SEARCHPREF_VLV: i32 = 14;
pub const ADS_SEARCHPREF_ATTRIBUTE_QUERY: i32 = 15;
pub const ADS_SEARCHPREF_SECURITY_MASK: i32 = 16;
pub const ADS_SEARCHPREF_DIRSYNC_FLAG: i32 = 17;
pub const ADS_SEARCHPREF_EXTENDED_DN: i32 = 18;
const
  ADS_SEARCHPREF_ASYNCHRONOUS* = 0
  ADS_SEARCHPREF_DEREF_ALIASES* = 1
  ADS_SEARCHPREF_SIZE_LIMIT* = 2
  ADS_SEARCHPREF_TIME_LIMIT* = 3
  ADS_SEARCHPREF_ATTRIBTYPES_ONLY* = 4
  ADS_SEARCHPREF_SEARCH_SCOPE* = 5
  ADS_SEARCHPREF_TIMEOUT* = 6
  ADS_SEARCHPREF_PAGESIZE* = 7
  ADS_SEARCHPREF_PAGED_TIME_LIMIT* = 8
  ADS_SEARCHPREF_CHASE_REFERRALS* = 9
  ADS_SEARCHPREF_SORT_ON* = 10
  ADS_SEARCHPREF_CACHE_RESULTS* = 11
  ADS_SEARCHPREF_DIRSYNC* = 12
  ADS_SEARCHPREF_TOMBSTONE* = 13
  ADS_SEARCHPREF_VLV* = 14
  ADS_SEARCHPREF_ATTRIBUTE_QUERY* = 15
  ADS_SEARCHPREF_SECURITY_MASK* = 16
  ADS_SEARCHPREF_DIRSYNC_FLAG* = 17
  ADS_SEARCHPREF_EXTENDED_DN* = 18
enum ADS_SEARCHPREF_ENUM : int {
    ADS_SEARCHPREF_ASYNCHRONOUS = 0,
    ADS_SEARCHPREF_DEREF_ALIASES = 1,
    ADS_SEARCHPREF_SIZE_LIMIT = 2,
    ADS_SEARCHPREF_TIME_LIMIT = 3,
    ADS_SEARCHPREF_ATTRIBTYPES_ONLY = 4,
    ADS_SEARCHPREF_SEARCH_SCOPE = 5,
    ADS_SEARCHPREF_TIMEOUT = 6,
    ADS_SEARCHPREF_PAGESIZE = 7,
    ADS_SEARCHPREF_PAGED_TIME_LIMIT = 8,
    ADS_SEARCHPREF_CHASE_REFERRALS = 9,
    ADS_SEARCHPREF_SORT_ON = 10,
    ADS_SEARCHPREF_CACHE_RESULTS = 11,
    ADS_SEARCHPREF_DIRSYNC = 12,
    ADS_SEARCHPREF_TOMBSTONE = 13,
    ADS_SEARCHPREF_VLV = 14,
    ADS_SEARCHPREF_ATTRIBUTE_QUERY = 15,
    ADS_SEARCHPREF_SECURITY_MASK = 16,
    ADS_SEARCHPREF_DIRSYNC_FLAG = 17,
    ADS_SEARCHPREF_EXTENDED_DN = 18,
}
#define global ADS_SEARCHPREF_ASYNCHRONOUS     0x0
#define global ADS_SEARCHPREF_DEREF_ALIASES    0x1
#define global ADS_SEARCHPREF_SIZE_LIMIT       0x2
#define global ADS_SEARCHPREF_TIME_LIMIT       0x3
#define global ADS_SEARCHPREF_ATTRIBTYPES_ONLY 0x4
#define global ADS_SEARCHPREF_SEARCH_SCOPE     0x5
#define global ADS_SEARCHPREF_TIMEOUT          0x6
#define global ADS_SEARCHPREF_PAGESIZE         0x7
#define global ADS_SEARCHPREF_PAGED_TIME_LIMIT 0x8
#define global ADS_SEARCHPREF_CHASE_REFERRALS  0x9
#define global ADS_SEARCHPREF_SORT_ON          0xA
#define global ADS_SEARCHPREF_CACHE_RESULTS    0xB
#define global ADS_SEARCHPREF_DIRSYNC          0xC
#define global ADS_SEARCHPREF_TOMBSTONE        0xD
#define global ADS_SEARCHPREF_VLV              0xE
#define global ADS_SEARCHPREF_ATTRIBUTE_QUERY  0xF
#define global ADS_SEARCHPREF_SECURITY_MASK    0x10
#define global ADS_SEARCHPREF_DIRSYNC_FLAG     0x11
#define global ADS_SEARCHPREF_EXTENDED_DN      0x12