Directory Services

Client Time Limit with IDirectorySearch

A client can impose a time limit for a server to return the result set. When the server fails to respond to a query within the specified time period, the client can abandon the search and try it again later.

The client time limit preference is useful when a client requests an asynchronous search. In an asynchronous search, the client makes a request and then proceeds with other tasks while waiting for the server to return the results. It is possible that the server can go offline without notifying the client. In this case, the client will have no notification of whether the server is still processing the query, or if it no longer live. The client time limit preference gives the client some control of situations like this.

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

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