Compartir a través de


Método IWbemHiPerfProvider::CreateRefreshableEnum (wbemprov.h)

El método IWbemHiPerfProvider::CreateRefreshableEnum crea una nueva enumeración actualizable. WMI Refresher llama a este método en respuesta a una solicitud de cliente a IWbemConfigureRefresher::AddEnum. El proveedor asocia el objeto IWbemHiPerfEnum proporcionado con el actualizador proporcionado. En cada llamada al método Refresh del actualizador proporcionado, el proveedor garantiza que el enumerador contiene un conjunto de todas las instancias de la clase enumeradas en el parámetro wszClass y que estas instancias contienen información actualizada. Una manera posible de hacerlo sería mantener una matriz de enumeradores actualizables en el actualizador.

Nota Si un proveedor no implementa este método, debe devolver WBEM_E_PROVIDER_NOT_CAPABLE.
 

Sintaxis

HRESULT CreateRefreshableEnum(
  [in]  IWbemServices   *pNamespace,
  [in]  LPCWSTR         wszClass,
  [in]  IWbemRefresher  *pRefresher,
  [in]  long            lFlags,
  [in]  IWbemContext    *pContext,
  [in]  IWbemHiPerfEnum *pHiPerfEnum,
  [out] long            *plId
);

Parámetros

[in] pNamespace

Puntero IWbemServices a Administración de Windows, que puede atender las solicitudes realizadas por el proveedor. Si pNamespace debe volver a llamar a La administración de Windows durante su ejecución, el proveedor llama a AddRef en este puntero.

[in] wszClass

Constante, cadena terminada en null de caracteres Unicode de 16 bits que contiene el nombre de la clase, cuyas instancias se actualizan en el parámetro pHiPerfEnum .

[in] pRefresher

Puntero a un objeto IWbemRefresher que contiene un actualizador obtenido mediante una llamada a IWbemHiPerfProvider::CreateRefresher.

[in] lFlags

Reservado. Este parámetro debe ser 0 (cero).

[in] pContext

Normalmente NULL; de lo contrario, un puntero a un objeto IWbemContext requerido por uno o varios proveedores de clases dinámicas. Los valores del objeto de contexto deben especificarse en la documentación del proveedor específico. Para obtener más información sobre este parámetro, vea Realizar llamadas a WMI.

[in] pHiPerfEnum

Puntero a un objeto IWbemHiPerfEnum que contiene la enumeración de alto rendimiento.

[out] plId

Puntero a un entero devuelto por el proveedor que identifica de forma única la enumeración actualizable.

Valor devuelto

Este método devuelve un valor HRESULT que indica el estado de la llamada al método. En la lista siguiente se muestra el valor contenido en un HRESULT.

Comentarios

El proveedor no debe modificar el enumerador actualizable, excepto durante una operación de actualización. La enumeración es superficial, por lo que todas las instancias colocadas en el enumerador deben ser de la clase especificada por wszClass.

El proveedor no debe tener acceso al enumerador a menos que WMI llame al método IWbemRefresher::Refresh del propietario. Al igual que con los objetos actualizables, el proveedor no debe actualizar el enumerador a menos que el objeto que posee el enumerador actualice el enumerador.

Ejemplos

En el ejemplo de código siguiente se describe cómo implementar CreateRefreshableEnum.

HRESULT CHiPerfProvider::CreateRefreshableEnum(
  /* [in] */IWbemServices *pNamespace,
  /* [in] */LPCWSTR wszClass,
  /* [in] */IWbemRefresher *pRefresher,
  /* [in] */long lFlags,
  /* [in] */IWbemContext *pCtx,
  /* [in] */IWbemHiPerfEnum *pEnum,
  /* [out] */ long *plId
)
{
  // Use a private interface defined
  // to talk with the refresher.
  IMyRefresher* pMyRefr = NULL;

  HRESULT hres = pRefresher->QueryInterface(
    IID_IMyRefresher,
    (void**) &pMyRefr );

  if ( SUCCEEDED( hres ) )
  {
  LPLONG plLastId;
    // Generates a unique identifier
    *plId = InterlockedIncrement( &plLastId );

    // Use an internal method to add the
    // enumerator to an array.
    pMyRefr->AddEnum( wszClass, *plId, pEnum );

    pMyRefr->Release();
  }

  return hres;
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado wbemprov.h (include Wbemidl.h)
Library Wbemuuid.lib
Archivo DLL Wmiprvsd.dll

Consulte también

Desarrollo de un proveedor WMI

IWbemHiPerfProvider

Conversión de un proveedor de instancias en un proveedor de alto rendimiento

Proveedor de contador de rendimiento

Escritura de un proveedor de instancias