Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
[La detección de funciones está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. Puede modificarse o no estar disponible en versiones posteriores.
Realiza la consulta definida por IFunctionDiscovery::CreateInstanceQuery.
Sintaxis
HRESULT Execute(
[out] IFunctionInstance **ppIFunctionInstance
);
Parámetros
[out] ppIFunctionInstance
Puntero a un puntero de interfaz IFunctionInstance que recibe la instancia de función solicitada.
Valor devuelto
Entre los valores devueltos posibles se incluyen, entre otros, los siguientes.
| Código o valor devuelto | Descripción |
|---|---|
|
El método se completó correctamente. |
|
El parámetro ppIFunctionInstance es NULL. |
|
El método no puede asignar la memoria necesaria para realizar esta operación. |
|
Los resultados que devuelve un proveedor pasarán por una notificación asincrónica. |
|
La instancia de función representada por el identificador especificado no existe en este equipo. |
|
No se pudo devolver la instancia de función porque otro proceso eliminó la clave correspondiente a la instancia de función. El proveedor del Registro devuelve este error si se elimina una clave mientras se está realizando el procesamiento de consultas. |
|
No se pudo devolver la instancia de la función porque no se encontró la clave correspondiente a la instancia de función. El proveedor del Registro devuelve este error cuando el proveedor no pudo encontrar instancias coincidentes para una consulta de instancia. |
Una consulta predefinida es una consulta de una categoría superpuesta. Cuando se ejecuta una consulta predefinida, cada proveedor que devuelve una instancia de función también devuelve un valor HRESULT. Los valores HRESULT del proveedor se agregan y el valor devuelto por el método Execute refleja estos resultados agregados. Los resultados se agregan de la siguiente manera:
- Si todos los proveedores devuelven S_OK, Execute devuelve S_OK.
- Si al menos un proveedor devuelve E_PENDING y todos los demás proveedores devuelven S_OK o E_PENDING, Execute devuelve E_PENDING.
- Si todos los proveedores devuelven un valor de error (es decir, un valor distinto de S_OK o E_PENDING), Execute devuelve el valor de error devuelto por el proveedor de red que se ha consultado por última vez. Además, si la rutina de devolución de llamada IFunctionDiscoveryNotification del cliente se proporcionó a IFunctionDiscovery::CreateInstanceCollectionQuery, se envía una notificación OnError para cada proveedor. Cada notificación OnError contiene el HRESULT devuelto por el proveedor.
- Si al menos un proveedor devuelve un valor de error y todos los demás proveedores devuelven S_OK, Execute devuelve S_OK. Las notificaciones OnError se envían como se ha descrito anteriormente.
- Si al menos un proveedor devuelve un valor de error y al menos un proveedor devuelve E_PENDING, Execute devuelve E_PENDING. Las notificaciones OnError se envían como se ha descrito anteriormente.
Comentarios
El programa cliente debe invocar este método para recuperar datos del objeto de consulta. Cuando se llama, este método realiza lo siguiente:
- Recupera la instancia de la función.
- Inicia el mecanismo de notificación de actualización si la dirección de la rutina de devolución de llamada IFunctionDiscoveryNotification del programa cliente se proporciona a IFunctionDiscovery::CreateInstanceQuery.
Si se llama a Execute dos veces en el mismo objeto de consulta, la primera consulta finaliza antes de que se ejecute la segunda consulta.
Requisitos
| Requisito | Value |
|---|---|
| Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
| Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
| Plataforma de destino | Windows |
| Encabezado | functiondiscoveryapi.h |
| Archivo DLL | FunDisc.dll |