Compartilhar via


Limite de tempo do cliente com IDirectorySearch

Um cliente pode impor um limite de tempo para que um servidor retorne o conjunto de resultados. Quando o servidor não consegue responder a uma consulta dentro do período de tempo especificado, o cliente pode abandonar a pesquisa e tentar novamente mais tarde.

A preferência de limite de tempo do cliente é útil quando um cliente solicita uma pesquisa assíncrona. Em uma pesquisa assíncrona, o cliente faz uma solicitação e, em seguida, prossegue com outras tarefas enquanto aguarda que o servidor retorne os resultados. É possível que o servidor fique offline sem notificar o cliente. Nesse caso, o cliente não terá nenhuma notificação se o servidor ainda está processando a consulta ou se ela não está mais ativa. A preferência de limite de tempo do cliente dá ao cliente algum controle de situações como esta.

O padrão para o limite de tempo do cliente é sem limite. Para definir um limite de tempo do cliente, defina uma opção de pesquisa ADS_SEARCHPREF_TIMEOUT com um valor ADSTYPE_INTEGER que contenha o limite de tempo do cliente, em segundos, na matriz ADS_SEARCHPREF_INFO passada para o método IDirectorySearch::SetSearchPreference . Um limite de tempo do cliente de zero indica que não há limite de tempo.

O exemplo de código a seguir mostra como definir o limite de tempo do cliente.

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