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::CreateInstanceQuery.
Sintaxe
HRESULT Execute(
[out] IFunctionInstance **ppIFunctionInstance
);
Parâmetros
[out] ppIFunctionInstance
Um ponteiro para um ponteiro de interface IFunctionInstance que recebe a instância de função solicitada.
Retornar valor
Os possíveis valores retornados incluem, mas não se limitam a, o seguinte.
| Valor/código retornado | Descrição |
|---|---|
|
O método foi concluído com sucesso. |
|
O parâmetro ppIFunctionInstance é NULL. |
|
O método não pode alocar a memória necessária para executar essa operação. |
|
Os resultados a serem retornados por um provedor virão por meio de notificação assíncrona. |
|
A instância de função representada pela ID especificada não existe neste computador. |
|
A instância de função não pôde ser retornada porque a chave correspondente à instância de função foi excluída por outro processo. Esse erro será retornado pelo provedor do Registro se uma chave for excluída enquanto o processamento de consulta estiver ocorrendo. |
|
A instância de função não pôde ser retornada porque a chave correspondente à instância de função não pôde ser encontrada. Esse erro é retornado pelo provedor do Registro quando o provedor não encontrou instâncias correspondentes para uma consulta de instância. |
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.
Comentários
Esse método deve ser invocado pelo programa cliente para recuperar dados do objeto de consulta. Quando chamado, esse método executa o seguinte:
- Recupera a instância da função.
- 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::CreateInstanceQuery.
Se Execute for chamado duas vezes no mesmo objeto de consulta, a primeira consulta será encerrada antes da segunda consulta ser executada.
Requisitos
| Requisito | Valor |
|---|---|
| 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 |