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.
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
Création d’un fournisseur d’instance dans un fournisseur de haute performance