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

La méthode IWbemHiPerfProvider ::CreateRefreshableEnum crée une nouvelle énumération actualisable. L’actualisation WMI appelle cette méthode en réponse à une demande cliente à IWbemConfigureRefresher ::AddEnum. Le fournisseur associe l’objet IWbemHiPerfEnum fourni à l’actualisation fourni. À chaque appel à la méthode Refresh de l’actualisateur fourni, le fournisseur s’assure que l’énumérateur contient un ensemble de toutes les instances de la classe répertoriées dans le paramètre wszClass et que ces instances contiennent des informations mises à jour. Une façon possible d’effectuer cette opération consiste à conserver un tableau d’énumérateurs actualisables dans l’actualisation.

Note Si un fournisseur n’implémente pas cette méthode, il doit retourner WBEM_E_PROVIDER_NOT_CAPABLE.
 

Syntaxe

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

Paramètres

[in] pNamespace

Pointeur IWbemServices vers Windows Management, qui peut traiter toutes les requêtes effectuées par le fournisseur. Si pNamespace doit rappeler windows Management pendant son exécution, le fournisseur appelle AddRef sur ce pointeur.

[in] wszClass

Chaîne constante terminée par null de caractères Unicode 16 bits qui contient le nom de la classe, dont les instances sont actualisées dans le paramètre pHiPerfEnum .

[in] pRefresher

Pointeur vers un objet IWbemRefresher qui contient un refresher obtenu en appelant IWbemHiPerfProvider ::CreateRefresher.

[in] lFlags

Réservé. Ce paramètre doit être égal à 0 (zéro).

[in] pContext

Généralement NULL ; sinon, pointeur vers un objet IWbemContext requis par un ou plusieurs fournisseurs de classes dynamiques. Les valeurs de l’objet de contexte doivent être spécifiées dans la documentation du fournisseur spécifique. Pour plus d’informations sur ce paramètre, consultez Effectuer des appels à WMI.

[in] pHiPerfEnum

Pointeur vers un objet IWbemHiPerfEnum qui contient l’énumération hautes performances.

[out] plId

Pointeur vers un entier retourné par le fournisseur qui identifie de manière unique l’énumération actualisable.

Valeur retournée

Cette méthode retourne une valeur HRESULT qui indique l’état de l’appel de méthode. La liste suivante répertorie la valeur contenue dans un HRESULT.

Remarques

Le fournisseur ne doit pas modifier l’énumérateur actualisable, sauf pendant une opération d’actualisation. L’énumération étant superficielle, toutes les instances placées dans l’énumérateur doivent être de la classe spécifiée par wszClass.

Le fournisseur ne doit pas accéder à l’énumérateur, sauf si WMI appelle la méthode IWbemRefresher ::Refresh du propriétaire. Comme pour les objets actualisables, le fournisseur ne doit pas mettre à jour l’énumérateur, sauf si l’objet propriétaire de l’énumérateur actualise l’énumérateur.

Exemples

L’exemple de code suivant décrit comment implémenter 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;
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête wbemprov.h (inclure Wbemidl.h)
Bibliothèque Wbemuuid.lib
DLL Wmiprvsd.dll

Voir aussi

Développement d’un fournisseur WMI

IWbemHiPerfProvider

Création d’un fournisseur d’instance dans un fournisseur de haute performance

Fournisseur de compteurs de performances

Écriture d’un fournisseur d’instances