Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
[A Descoberta de Funções está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele pode estar alterado ou indisponível em versões subsequentes.]
Executa a consulta definida por IFunctionDiscovery::CreateInstanceCollectionQuery.
Sintaxe
HRESULT Execute(
[out] IFunctionInstanceCollection **ppIFunctionInstanceCollection
);
Parâmetros
[out] ppIFunctionInstanceCollection
Um ponteiro para um ponteiro de interface IFunctionInstanceCollection que recebe a coleção de instâncias de função solicitada.
Valor retornado
Os possíveis valores retornados incluem, mas não se limitam a, o seguinte.
| Código de retorno | Descrição |
|---|---|
|
O método foi concluído com sucesso. Os resultados são retornados de forma síncrona em ppIFunctonInstanceCollecton. |
|
O método não pode alocar a memória necessária para executar essa operação. |
|
Alguns dos resultados serão retornados por notificação assíncrona. Confira os comentários para obter detalhes. |
Uma consulta predefinida é uma consulta de uma categoria em camadas. Quando uma consulta predefinida é executada, cada provedor que retorna uma instância de função também retorna um valor HRESULT. Os valores HRESULT do provedor são agregados e o valor retornado pelo método Execute reflete esses resultados agregados. Os resultados são agregados da seguinte maneira:
- Se todos os provedores retornarem S_OK, Execute retornará S_OK.
- Se pelo menos um provedor retornar E_PENDING e todos os outros provedores retornarem S_OK ou E_PENDING, Execute retornará E_PENDING.
- Se todos os provedores retornarem um valor de erro (ou seja, um valor diferente de S_OK ou E_PENDING), Execute retornará o valor de erro retornado pelo provedor de rede que foi consultado pela última vez. Além disso, se a rotina de retorno de chamada IFunctionDiscoveryNotification do cliente tiver sido fornecida a IFunctionDiscovery::CreateInstanceCollectionQuery, uma notificação onError será enviada para cada provedor. Cada notificação onError contém o HRESULT retornado pelo provedor.
- Se pelo menos um provedor retornar um valor de erro e todos os outros provedores retornarem S_OK, Execute retornará S_OK. As notificações onError são enviadas conforme descrito acima.
- Se pelo menos um provedor retornar um valor de erro e pelo menos um provedor retornar E_PENDING, Execute retornará E_PENDING. As notificações onError são enviadas conforme descrito acima.
Quando Execute retornar E_PENDING, o conjunto de resultados será retornado de forma assíncrona por meio da interface IFunctionDiscoveryNotification fornecida ao método CreateInstanceCollectionQuery de IFunctionDiscovery. ppIFunctionInstanceCollection pode ser NULL ou pode conter um conjunto de resultados parcial. A enumeração é concluída depois que o método OnEvent de IFunctionDiscoveryNotification é chamado com FD_EVENTID_SEARCHCOMPLETE. Depois que o evento FD_EVENTID_SEARCHCOMPLETE é recebido, notificações adicionais são atualizações para os resultados.
Comentários
Esse método deve ser invocado pelo programa cliente antes que qualquer dado possa ser recuperado do objeto de consulta. Quando chamado, esse método executa o seguinte:
- Recupera o objeto de coleção de instâncias de função.
- Consulta o provedor da categoria que é passada para IFunctionDiscovery::CreateInstanceCollectionQuery.
- Recupera o provedor de categoria.
- Consulta o provedor de categoria usando os dados de subcategoria para gerar a coleção usando restrições de consulta.
- Inicia o mecanismo de notificação de atualização se o endereço da rotina de retorno de chamada IFunctionDiscoveryNotification do programa cliente for fornecido a IFunctionDiscovery::CreateInstanceCollectionQuery.
- Armazena em cache os dados de coleta e retorna.
Requisitos
| Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
| Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
| Plataforma de Destino | Windows |
| Cabeçalho | functiondiscoveryapi.h |
| DLL | FunDisc.dll |