Compartir a través de


Método Provider::EnumerateInstances (provider.h)

[La clase Provider forma parte del marco del proveedor de WMI que ahora se considera en estado final y no habrá más desarrollo, mejoras o actualizaciones disponibles para problemas no relacionados con la seguridad que afecten a estas bibliotecas. Las API de MI se deben usar para todo el nuevo desarrollo.]

WMI llama al método EnumerateInstances para recuperar todas las instancias de la clase de un proveedor de marcos.

Sintaxis

HRESULT EnumerateInstances(
  MethodContext *pMethodContext,
  long          lFlags
);

Parámetros

pMethodContext

Puntero al objeto de contexto de esta llamada. Este valor contiene las propiedades IWbemContext especificadas por el cliente. Además, este puntero debe usarse como parámetro para cualquier llamada a WMI.

lFlags

Máscara de bits de marcas con información sobre la operación EnumerateInstances . Este es el valor especificado por el cliente en el método IWbemServices::CreateInstanceEnum .

WMI controla las marcas siguientes (y filtradas):

  • WBEM_FLAG_DEEP
  • WBEM_FLAG_SHALLOW
  • WBEM_FLAG_RETURN_IMMEDIATELY
  • WBEM_FLAG_FORWARD_ONLY
  • WBEM_FLAG_BIDIRECTIONAL
  • WBEM_FLAG_USE_AMENDED_QUALIFIERS

Valor devuelto

La implementación predeterminada del proveedor del marco de trabajo de este método devuelve WBEM_E_PROVIDER_NOT_CAPABLE al método que realiza la llamada. El método IWbemServices::CreateInstanceEnum enumera los valores devueltos más comunes, pero puede elegir devolver cualquier código de retorno COM.

Comentarios

No es un error para EnumerateInstances devolver cero instancias mediante la creación de instancias de cero instancias de CInstance y el establecimiento del valor devuelto en WBEM_S_NO_ERROR.

WMI suele llamar a EnumerateInstances cuando una aplicación cliente llama a IWbemServices::CreateInstanceEnum, aunque WMI también puede llamar a EnumerateInstances en otras situaciones. A continuación se muestra una manera común de invalidar EnumerateInstances:

  1. Cree una instancia vacía de la clase mediante Provider::CreateNewInstance.
  2. Rellene las propiedades de la instancia vacía mediante los métodos Set de la clase CInstance , como CInstance::SetByte o CInstance::SetStringArray.
  3. Vuelva a enviar la instancia al cliente mediante CInstance::Commit.
Si va a compilar un proveedor de solo método y no tiene ninguna instancia, o si la enumeración de instancias de la clase devolvería demasiadas instancias, puede decidir admitir consultas que recuperen solo instancias específicas.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado provider.h (include FwCommon.h)
Library FrameDyn.lib
Archivo DLL FrameDynOS.dll; FrameDyn.dll