Método IFunctionInstanceCollectionQuery::Execute (functiondiscoveryapi.h)

[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
S_OK
El método se completó correctamente. Los resultados se devuelven sincrónicamente en ppIFunctonInstanceCollecton.
E_OUTOFMEMORY
El método no puede asignar la memoria necesaria para realizar esta operación.
E_PENDING
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 S_OK, ppIFunctionInstanceCollection contiene los resultados de la consulta. Si se proporciona una interfaz IFunctionDiscoveryNotification al método CreateInstanceCollectionQuery de IFunctionDiscovery, los cambios realizados en los resultados se comunicarán mediante esa interfaz.

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:

  1. Recupera el objeto de colección de instancias de función.
  2. Consulta el proveedor de la categoría que se pasa a IFunctionDiscovery::CreateInstanceCollectionQuery.
  3. Recupera el proveedor de categorías.
  4. Consulta el proveedor de categorías mediante los datos de subcategoría para generar la colección mediante restricciones de consulta.
  5. 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.
  6. Almacena en caché los datos de recopilación y devuelve.
Los proveedores de red de detección de funciones solo devuelven instancias de función a través de la interfaz IFunctionDiscoveryNotification . No devuelven instancias de función directamente cuando se invoca este método. En su lugar, Execute simplemente inicia una operación de recuperación completamente asincrónica y devuelve E_PENDING para indicar que los resultados se devolverán de forma asincrónica. Las notificaciones deben usarse para recuperar instancias de función de proveedores de red de Detección de funciones.

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

Consulte también

Consultas de detección de funciones

IFunctionInstanceCollectionQuery