Directory Services

Server Time Limit with IDirectorySearch

When you request a search on a busy server, you may want to request that the server to restrict the search to a specified time limit. For example, you want to run an application to generate a weekly report on a server that is running near its capacity. To avoid using all the CPU time and preventing other operations from running, specify the search time limit to a small value and then rerun the application later if it fails to generate the report.

Some servers might impose their own administrative time limit. In these cases, if you specify a search time limit value greater than the administrative time limit, the server will ignore your specification and use its internal time limit value instead.

The default for the server time limit is no limit. To set a server time limit, set an ADS_SEARCHPREF_TIME_LIMIT search option with an ADSTYPE_INTEGER value that contains the server time limit, in seconds, in the ADS_SEARCHPREF_INFO array passed to the IDirectorySearch::SetSearchPreference method. This operation is shown in the following code example. A server time limit of zero indicates no time limit.

SearchPref.dwSearchPref = ADS_SEARCHPREF_TIME_LIMIT;
SearchPref.vValue.dwType = ADSTYPE_INTEGER;
SearchPref.vValue.Integer = 10;