ADS_SEARCHPREF_ENUM-Enumeration (iads.h)

Die ADS_SEARCHPREF_ENUM-Enumeration gibt Einstellungen für ein IDirectorySearch-Objekt an. Diese Enumeration wird im dwSearchPref-Member der ADS_SEARCHPREF_INFO-Struktur in der IDirectorySearch::SetSearchPreference-Methode verwendet.

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;

Konstanten

 
ADS_SEARCHPREF_ASYNCHRONOUS
Wert: 0
Gibt an, dass Suchvorgänge asynchron ausgeführt werden sollen. Standardmäßig sind Suchvorgänge synchron.

Bei einer synchronen Suche werden die Methoden IDirectorySearch::GetFirstRow und IDirectorySearch::GetNextRow erst zurückgegeben, wenn der Server das gesamte Ergebnis oder für eine seitenseitige Suche die gesamte Seite zurückgibt.

Eine asynchrone Suche blockiert, bis eine Zeile der Suchergebnisse verfügbar ist oder das durch die ADS_SEARCHPREF_TIMEOUT Sucheinstellung angegebene Timeoutintervall abgelaufen ist.
ADS_SEARCHPREF_DEREF_ALIASES
Gibt an, dass Aliase gefundener Objekte aufgelöst werden sollen. Verwenden Sie die ADS_DEREFENUM-Enumeration , um anzugeben, wie dies ausgeführt wird.
ADS_SEARCHPREF_SIZE_LIMIT
Gibt die Größenbeschränkung an, die der Server während einer Suche beachten soll. Der Server beendet die Suche, wenn die Größenbeschränkung erreicht ist, und gibt die bis zu diesem Zeitpunkt gesammelten Ergebnisse zurück. Wenn dieser Wert null ist, wird die Größenbeschränkung vom Verzeichnisdienst bestimmt. Der Standardwert für diesen Wert ist Null. Wenn dieser Wert größer als die vom Verzeichnisdienst festgelegte Größenbeschränkung ist, hat das Verzeichnisdienstlimit Vorrang.

Für Active Directory gibt das Größenlimit die maximale Anzahl von Objekten an, die von der Suche zurückgegeben werden sollen. Auch für Active Directory beträgt die maximale Anzahl von Objekten, die von einer Suche zurückgegeben werden, 1.000 Objekte.
ADS_SEARCHPREF_TIME_LIMIT
Gibt die Anzahl der Sekunden an, die der Server auf den Abschluss einer Suche wartet. Wenn das Zeitlimit erreicht ist, beendet der Server die Suche und gibt die bis zu diesem Zeitpunkt gesammelten Ergebnisse zurück. Wenn dieser Wert null ist, ist der Timeoutzeitraum unendlich. Der Standardwert für diesen Wert ist 120 Sekunden.
ADS_SEARCHPREF_ATTRIBTYPES_ONLY
Gibt an, dass die Suche nur den Namen der Attribute abrufen soll, denen Werte zugewiesen sind.
ADS_SEARCHPREF_SEARCH_SCOPE
Gibt den Suchbereich an, der vom Server beobachtet werden soll. Weitere Informationen zu den entsprechenden Einstellungen finden Sie in der ADS_SCOPEENUM-Enumeration .
ADS_SEARCHPREF_TIMEOUT
Gibt das Zeitlimit in Sekunden an, das ein Client wartet, bis der Server das Ergebnis zurückgibt. Diese Option wird in einer ADS_SEARCHPREF_INFO-Struktur festgelegt.
ADS_SEARCHPREF_PAGESIZE
Gibt die Seitengröße in einer Seitensuche an. Für jede Anforderung durch den Client gibt der Server höchstens die Anzahl der Objekte zurück, die durch die Seitengröße festgelegt werden. Wenn die Seitengröße festgelegt ist, ist es unnötig, die Größenbeschränkung festzulegen. Wenn eine Größenbeschränkung festgelegt ist, muss der Wert für die Seitengröße kleiner als der Wert für die Größenbeschränkung sein. Wenn der Wert für die Seitengröße den Größengrenzwert überschreitet, wird der ERROR_DS_SIZELIMIT_EXCEEDED Fehler mit der Anzahl von Zeilen zurückgegeben, die durch größenlimit angegeben sind.
ADS_SEARCHPREF_PAGED_TIME_LIMIT
Gibt die Anzahl der Sekunden an, die der Server auf eine Seite mit Suchergebnissen warten soll, im Gegensatz zum Zeitlimit für die gesamte Suche. Wenn das Zeitlimit erreicht ist, beendet der Server die Suche und gibt die bis zu diesem Zeitpunkt erhaltenen Ergebnisse zusammen mit einem Cookie zurück, das die Daten darüber enthält, wo die Suche fortgesetzt werden soll. Wenn dieser Wert 0 (null) ist, ist der Timeoutzeitraum der Seite unendlich. Der Standardwert für diesen Grenzwert beträgt 120 Sekunden.
ADS_SEARCHPREF_CHASE_REFERRALS
Gibt an, dass Empfehlungen verfolgt werden können. Wenn die Stammsuche nicht im Namenskontext des Servers angegeben ist oder wenn die Suchergebnisse einen Namenskontext kreuzen, z. B. wenn Sie untergeordnete Domänen haben und in der übergeordneten Domäne suchen, sendet der Server eine Empfehlungsnachricht an den Client, die der Client ignorieren oder verfolgen kann. Weitere Informationen zur Empfehlungssuche finden Sie unter ADS_CHASE_REFERRALS_ENUM.
ADS_SEARCHPREF_SORT_ON
Gibt an, dass der Server das Resultset sortiert. Verwenden Sie die ADS_SORTKEY-Struktur , um die Sortierschlüssel anzugeben. Diese Sucheinstellung funktioniert nur für Verzeichnisserver, die das LDAP-Steuerelement für die serverseitige Sortierung unterstützen. Active Directory unterstützt die Sortiersteuerung, kann sich jedoch auf die Serverleistung auswirken, insbesondere wenn der Ergebnissatz groß ist. Active Directory unterstützt nur einen einzelnen Sortierschlüssel.
ADS_SEARCHPREF_CACHE_RESULTS
Gibt an, ob das Ergebnis clientseitig zwischengespeichert werden soll. Standardmäßig speichert ADSI das Resultset zwischen. Das Deaktivieren dieser Option kann für große Resultsets wünschenswert sein.
ADS_SEARCHPREF_DIRSYNC
Gibt eine Verzeichnissynchronisierungssuche (DirSync) an, die alle Änderungen seit einem angegebenen Zustand zurückgibt. Legen Sie in der ADSVALUE-Struktur den dwType-Member auf ADS_PROV_SPECIFIC fest. Das ProviderSpecific-Element ist eine ADS_PROV_SPECIFIC-Struktur , deren lpValue-Member ein Cookie angibt, das den Zustand angibt, aus dem Änderungen abgerufen werden. Legen Sie bei der ersten Verwendung des DirSync-Steuerelements die Elemente dwLength und lpValue der ADS_PROV_SPECIFIC-Struktur auf null bzw. NULL fest. Nachdem Sie den von der Suche zurückgegebenen Resultset gelesen haben, bis IDirectorySearch::GetNextRowS_ADS_NOMORE_ROWS zurückgibt, rufen Sie IDirectorySearch::GetColumn auf, um das attribut ADS_DIRSYNC_COOKIE abzurufen, das ein Cookie enthält, das in der nächsten DirSync-Suche verwendet werden soll. Weitere Informationen finden Sie unter Abrufen von Änderungen mithilfe des DirSync-Steuerelements und LDAP_SERVER_DIRSYNC_OID.

Dieses Flag kann nicht mit ADS_SEARCHPREF_PAGESIZE kombiniert werden.

Der Aufrufer muss über die berechtigung SE_SYNC_AGENT_NAME verfügen.
ADS_SEARCHPREF_TOMBSTONE
Gibt an, ob die Suche auch gelöschte Objekte zurückgeben soll, die dem Suchfilter entsprechen. Wenn Objekte gelöscht werden, verschiebt Active Directory sie in einen Container "Gelöschte Objekte". Standardmäßig sind gelöschte Objekte nicht in den Suchergebnissen enthalten. Legen Sie in der ADSVALUE-Struktur das dwType-Element auf ADSTYPE_BOOLEAN fest. Um gelöschte Objekte einzuschließen, legen Sie den booleschen Member der ADSVALUE-Struktur auf TRUE fest.

Nicht alle Attribute werden beibehalten, wenn das Objekt gelöscht wird. Sie können die Attribute objectGUID und RDN abrufen. Das distinguishedName-Attribut ist der DN des Objekts im Container "Deleted Objects", nicht der vorherige DN. Das isDeleted-Attribut ist für ein gelöschtes Objekt TRUE . Weitere Informationen finden Sie unter Abrufen gelöschter Objekte.
ADS_SEARCHPREF_VLV
Gibt an, dass für die Suche das Steuerelement der virtuellen LDAP-Listenansicht (VLV) verwendet werden soll. ADS_SEARCHPREF_VLV kann verwendet werden, um auf Zeichenfolgen- und Offsettyp-VLV-Suchvorgänge zuzugreifen, indem die entsprechenden Felder festgelegt werden. Diese beiden Optionen können nicht gleichzeitig verwendet werden, da es nicht möglich ist, das VLV-Steuerelement so festzulegen, dass ein Resultset angefordert wird, das sich an einem bestimmten Offset befindet und einem bestimmten Wert in der Sortiersequenz folgt.

Um eine Zeichenfolgensuche auszuführen, legen Sie das Feld lpszTarget in ADS_VLV auf die Zeichenfolge fest, nach der gesucht werden soll. Um eine Offsettypsuche durchzuführen, legen Sie das Feld dwOffset in ADS_VLV fest. Wenn Sie eine Offsetsuche verwenden, müssen Sie lpszTarget auf NULL festlegen.

ADS_SEARCHPREF_SORT_ON muss bei Verwendung von ADS_SEARCHPREF_VLV auf TRUE festgelegt werden. Die Sortierreihenfolge der Suchergebnisse bestimmt die Reihenfolge, die für die VLV-Suche verwendet wird. Wenn Sie eine Offsetsuche durchführen, wird der Offset als Index in der sortierten Liste verwendet. Bei einer Zeichenfolgensuche versucht der Server, basierend auf der Sortierreihenfolge den ersten Eintrag zurückzugeben, der größer als oder gleich der Zeichenfolge ist.

Das Zwischenspeichern von Suchergebnissen ist deaktiviert, wenn ADS_SEARCHPREF_VLV angegeben wird.

Wenn Sie ADS_SEARCHPREF_CACHE_RESULTS einen TRUE-Wert zuweisen, wenn Sie ADS_SEARCHPREF_VLV verwenden, schlägt SetSearchPreference fehl und gibt den Fehler E_ADS_BAD_PARAMETER zurück.
ADS_SEARCHPREF_ATTRIBUTE_QUERY
Gibt an, dass eine Abfragesuche im Attributbereich ausgeführt werden soll. Die Suche wird für die Objekte ausgeführt, die in einem angegebenen Attribut des Basisobjekts benannt sind. Das vValue-Element der ADS_SEARCHPREF_INFO-Struktur enthält einen ADSTYPE_CASE_IGNORE_STRING Wert, der den lDAPDisplayName des zu durchsuchenden Attributs enthält. Dieses Attribut muss ein ADS_DN_STRING-Attribut sein. Es kann nur ein Attribut angegeben werden. Der Suchbereich wird bei Verwendung dieser Einstellung automatisch auf ADS_SCOPE_BASE festgelegt, und der Versuch, den Bereich festzulegen, schlägt andernfalls mit dem Fehler E_ADS_BAD_PARAMETER fehl. Mit Ausnahme der ADS_SEARCHPREF_VLV Einstellung sind alle anderen Einstellungen, die LDAP-Steuerelemente verwenden, wie z. B. ADS_SEARCHPREF_DIRSYNC, ADS_SEARCHPREF_TOMBSTONE usw., nicht zulässig, wenn diese Einstellung angegeben wird.
ADS_SEARCHPREF_SECURITY_MASK
Gibt an, dass die Suche Sicherheitszugriffsdaten für die angegebenen Attribute zurückgeben soll. Das vValue-Element der ADS_SEARCHPREF_INFO-Struktur enthält einen ADS_INTEGER Wert, der eine Kombination aus einem oder mehreren der folgenden Werte ist.






















WertBESCHREIBUNG
ADS_SECURITY_INFO_OWNERLiest die Besitzerdaten.
ADS_SECURITY_INFO_GROUPLiest die Gruppendaten.
ADS_SECURITY_INFO_DACLLiest die DACL (Discretionary Access Control List).
ADS_SECURITY_INFO_SACLLiest die Systemzugriffssteuerungsliste (SACL).

 

Wenn Sie einen Sicherheitsdeskriptor lesen, ohne explizit eine Sicherheitsmaske mit ADS_SEARCHPREF_SECURITY_MASK anzugeben, entspricht er standardmäßig ADS_SECURITY_INFO_OWNER
ADS_SECURITY_INFO_GROUP ADS_SECURITY_INFO_DACL.
ADS_SEARCHPREF_DIRSYNC_FLAG
Enthält optionale Flags für die Verwendung mit der ADS_SEARCHPREF_DIRSYNC Suchpräferenz. Das vValue-Element der ADS_SEARCHPREF_INFO-Struktur enthält einen ADSTYPE_INTEGER Wert, der null ist, oder eine Kombination aus einem oder mehreren der folgenden Werte. Weitere Informationen zum DirSync-Steuerelement finden Sie unter Abrufen von Änderungen mithilfe des DirSync-Steuerelements und LDAP_SERVER_DIRSYNC_OID.



























BezeichnerWertBESCHREIBUNG
LDAP_DIRSYNC_OBJECT_SECURITY1Wenn dieses Flag nicht vorhanden ist, muss der Aufrufer über das Recht zum Replizieren von Änderungen verfügen. Wenn dieses Flag vorhanden ist,
Der Aufrufer benötigt keine Rechte, darf aber nur Objekte und Attribute sehen, auf die der Aufrufer zugreifen kann.
LDAP_DIRSYNC_ANCESTORS_FIRST_ORDER2048 (0x00000800)Gibt übergeordnete Objekte vor untergeordneten Objekten zurück, wenn übergeordnete Objekte andernfalls später im Replikationsdatenstrom angezeigt würden.
LDAP_DIRSYNC_PUBLIC_DATA_ONLY8192 (0x00002000)Geben Sie in den Suchergebnissen keine privaten Daten zurück.
LDAP_DIRSYNC_INCREMENTAL_VALUES2147483648 (0x80000000)Ist dieses Flag nicht vorhanden, werden alle Werte in einem Attribut mit mehreren Werten bis zu einer vom Server festgelegten Begrenzung zurückgegeben, wenn sich ein Wert ändert. Wenn dieses Flag vorhanden ist, werden nur die geänderten Werte zurückgegeben.
ADS_SEARCHPREF_EXTENDED_DN
Die Suche sollte distinguished Names im erweiterten Active Directory-Format zurückgeben. Der vValue-Member der ADS_SEARCHPREF_INFO-Struktur enthält einen ADSTYPE_INTEGER Wert, der Null enthält, wenn die GUID- und SID-Teile der DN-Zeichenfolge im Hexadezimalformat vorliegen sollen, oder einen, wenn die GUID- und SID-Teile der DN-Zeichenfolge im Standardformat vorliegen sollen. Weitere Informationen zu erweiterten distinguished Names finden Sie unter LDAP_SERVER_EXTENDED_DN_OID.

Hinweise

Um eine Sucheinstellung einzurichten, weisen Sie den Feldern einer an den Server übergebenen ADS_SEARCHPREF_INFO-Struktur geeignete Werte zu. Das vValue-Element der ADS_SEARCHPREF_INFO-Struktur ist eine ADSVALUE-Struktur . In der folgenden Liste sind die ADS_SEARCHPREF_ENUM Werte, die entsprechenden Werte für den dwType-Member der ADSVALUE-Struktur und das ADSVALUE-Element aufgeführt, das für den angegebenen Typ verwendet wird.

ADS_SEARCHPREF_ENUM Wert dwType-Member von ADSVALUE ADSVALUE-Mitglied
ADS_SEARCHPREF_ASYNCHRONOUS ADSTYPE_BOOLEAN Boolescher Wert
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 Boolescher Wert
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 Boolescher Wert
ADS_SEARCHPREF_DIRSYNC ADSTYPE_PROV_SPECIFIC ProviderSpecific
ADS_SEARCHPREF_TOMBSTONE ADSTYPE_BOOLEAN Boolescher Wert
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
 

Verwenden Sie zum Einrichten mehrerer Einstellungen ein Array von ADS_SEARCHPREF_INFO Strukturen. Die Memberwerte dieser Enumeration werden dem dwSearchPref-Element der ADS_SEARCHPREF_INFO-Struktur zugewiesen.

Alle Optionen werden vom LDAP-Systemanbieter unterstützt.

Da VBScript keine Daten aus einer Typbibliothek lesen kann, erkennen VBScript-Anwendungen die oben definierten symbolischen Konstanten nicht. Sie sollten stattdessen die numerischen Konstanten verwenden, um die entsprechenden Flags in Ihren VBScript-Anwendungen festzulegen. Um die symbolischen Konstanten als bewährte Programmierpraxis zu verwenden, deklarieren Sie solche Konstanten explizit, wie hier in Ihren VBScript-Anwendungen geschehen.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie Sucheinstellungen mithilfe der ADS_SEARCHPREF_INFO-Enumeration eingerichtet werden.

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;
}

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Kopfzeile iads.h

Weitere Informationen

ADSI-Enumerationen

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

Abfragen von Änderungen mithilfe des DirSync-Steuerelements

Abrufen gelöschter Objekte