Método IFunctionDiscovery::GetInstanceCollection (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.

Obtiene la colección especificada de instancias de función, en función de la categoría y la subcategoría.

Sintaxis

HRESULT GetInstanceCollection(
  [in]  const WCHAR                 *pszCategory,
  [in]  const WCHAR                 *pszSubCategory,
  [in]  BOOL                        fIncludeAllSubCategories,
  [out] IFunctionInstanceCollection **ppIFunctionInstanceCollection
);

Parámetros

[in] pszCategory

Identificador de la categoría que se va a enumerar. Vea Definiciones de categoría.

[in] pszSubCategory

Identificador de la subcategoría que se va a enumerar. Consulte Subcategory Definitions(Definiciones de subcategoría). Este parámetro puede ser NULL.

[in] fIncludeAllSubCategories

Si es TRUE, este método enumera de forma recursiva todas las subcategorías de la categoría especificada en pszCategory, devolviendo una colección que contiene instancias de función de todas las subcategorías de pszCategory.

Si es FALSE, este método se restringe a devolver instancias de función en la categoría especificada por pszCategory y la subcategoría especificada por pszSubCategory.

[out] ppIFunctionInstanceCollection

Puntero a un puntero de interfaz IFunctionInstanceCollection que recibe la colección de instancias de función que contiene las instancias de función solicitadas. La colección está vacía si no se encuentra ninguna instancia de función apta.

Valor devuelto

Entre los valores devueltos posibles se incluyen, entre otros, los siguientes.

Código o valor devuelto Descripción
S_OK
El método se completó correctamente.
E_INVALIDARG
El valor de pszCategory no es válido. El valor devuelto en el parámetro ppIFunctionInstanceCollection es NULL.
E_OUTOFMEMORY
El método no puede asignar la memoria necesaria para realizar esta operación.
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
0x80070002
El valor de pszCategory o pszSubCategory es desconocido.
E_PENDING
La llamada se ejecutó para un proveedor que devuelve resultados de forma asincrónica.

Comentarios

Algunos proveedores de detección de funciones devuelven sus resultados de consulta con la interfaz IFunctionDiscoveryNotification . GetInstanceCollection no encuentra instancias de función que se devuelven de esta manera y producirán un error con E_PENDING. Se recomienda que los clientes usen el método CreateInstanceQuery de la interfaz IFunctionDiscovery para buscar instancias de función para dichos proveedores.

Si el método se realiza correctamente pero no se encontraron instancias de función que coincidan con los parámetros de consulta, se devuelve S_OK y ppFunctionInstanceCollection apunta a una colección vacía (el método GetCount de la colección devuelve 0).

Las consultas de subcategoría solo se admiten para categorías superpuestas y algunas categorías de proveedor. El proveedor del Registro, el proveedor de asociaciones PnP-X y el proveedor de publicación admiten consultas de subcategoría. Los proveedores personalizados se pueden diseñar explícitamente para admitir consultas de subcategoría. Para otros proveedores, las colecciones de instancias de función se pueden filtrar mediante restricciones de consulta. Para obtener una lista de restricciones de consulta, vea Definiciones de restricciones.

Ejemplos

El código siguiente devuelve las instancias de función asociadas al proveedor SSDP en el espacio de nombres Microsoft.Networking.Devices.

hr = spDisco->GetInstanceCollection(FCTN_CATEGORY_NETWORKDEVICES,
                                   FCTN_SUBCAT_NETWORKDEVICES_SSDP, 
                                   FALSE, 
                                   &spFunctionInstanceCollection);


Consulte restricciones de interfaz en IFunctionInstanceQuery para filtrar en varias interfaces a la vez o para filtrar por proveedores que no admiten consultas de subcategoría.

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

IFunctionDiscovery