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.
[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::CreateInstanceCollectionQuery.
Sintaxis
HRESULT Execute(
[out] IFunctionInstanceCollection **ppIFunctionInstanceCollection
);
Parámetros
[out] ppIFunctionInstanceCollection
Puntero a un puntero de interfaz IFunctionInstanceCollection que recibe la colección de instancias de función solicitada.
Valor devuelto
Entre los valores devueltos posibles se incluyen, entre otros, los siguientes.
| Código devuelto | Descripción |
|---|---|
|
El método se completó correctamente. Los resultados se devuelven sincrónicamente en ppIFunctonInstanceCollecton. |
|
El método no puede asignar la memoria necesaria para realizar esta operación. |
|
Algunas de las notificaciones asincrónicas devolverán algunos de los resultados. Consulte la sección comentarios para obtener más detalles. |
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 consultó 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.
Cuando Execute devuelve E_PENDING, el conjunto de resultados se devolverá de forma asincrónica a través de la interfaz IFunctionDiscoveryNotification proporcionada al método CreateInstanceCollectionQuery de IFunctionDiscovery. ppIFunctionInstanceCollection puede ser NULL o puede contener un conjunto de resultados parcial. La enumeración se completa una vez que se llama al método OnEvent de IFunctionDiscoveryNotification con FD_EVENTID_SEARCHCOMPLETE. Una vez recibido el evento FD_EVENTID_SEARCHCOMPLETE , se actualizan las notificaciones adicionales a los resultados.
Comentarios
El programa cliente debe invocar este método para poder recuperar los datos del objeto de consulta. Cuando se llama a , este método realiza lo siguiente:
- Recupera el objeto de colección de instancias de función.
- Consulta el proveedor de la categoría que se pasa a IFunctionDiscovery::CreateInstanceCollectionQuery.
- Recupera el proveedor de categorías.
- Consulta el proveedor de categorías mediante los datos de subcategoría para generar la colección mediante restricciones de consulta.
- 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::CreateInstanceCollectionQuery.
- Almacena en caché los datos de recopilación y devuelve.
Requisitos
| 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 |