IWbemHiPerfProvider::CreateRefreshableEnum-Methode (wbemprov.h)
Die IWbemHiPerfProvider::CreateRefreshableEnum-Methode erstellt eine neue auffrischbare Enumeration. Der WMI Refresher ruft diese Methode als Antwort auf eine Clientanforderung an IWbemConfigureRefresher::AddEnum auf. Der Anbieter ordnet das angegebene IWbemHiPerfEnum-Objekt der angegebenen Aktualisierung zu. Bei jedem Aufruf der Refresh-Methode der angegebenen Aktualisierung stellt der Anbieter sicher, dass der Enumerator einen Satz aller Instanzen der Klasse enthält, die im wszClass-Parameter aufgeführt sind, und dass diese Instanzen aktualisierte Informationen enthalten. Eine möglichkeit, dies zu tun, besteht darin, ein Array von auffrischbaren Enumeratoren in der Aktualisierung beizubehalten.
Syntax
HRESULT CreateRefreshableEnum(
[in] IWbemServices *pNamespace,
[in] LPCWSTR wszClass,
[in] IWbemRefresher *pRefresher,
[in] long lFlags,
[in] IWbemContext *pContext,
[in] IWbemHiPerfEnum *pHiPerfEnum,
[out] long *plId
);
Parameter
[in] pNamespace
Ein IWbemServices-Zeiger zurück in die Windows-Verwaltung, der alle Anforderungen des Anbieters verarbeiten kann. Wenn pNamespace während der Ausführung die Windows-Verwaltung zurückrufen muss, ruft der Anbieter AddRef für diesen Zeiger auf.
[in] wszClass
Konstante, NULL-beendete Zeichenfolge aus 16-Bit-Unicode-Zeichen, die den Namen der Klasse enthält, deren Instanzen im pHiPerfEnum-Parameter aktualisiert werden.
[in] pRefresher
Zeiger auf ein IWbemRefresher-Objekt , das eine Aktualisierung enthält, die durch aufrufen von IWbemHiPerfProvider::CreateRefresher abgerufen wird.
[in] lFlags
Reserviert. Dieser Parameter muss 0 (null) sein.
[in] pContext
Normalerweise NULL; andernfalls ein Zeiger auf ein IWbemContext-Objekt , das von einem oder mehreren dynamischen Klassenanbietern erforderlich ist. Die Werte im Kontextobjekt müssen in der Dokumentation des jeweiligen Anbieters angegeben werden. Weitere Informationen zu diesem Parameter finden Sie unter Tätigen von Aufrufen von WMI.
[in] pHiPerfEnum
Zeiger auf ein IWbemHiPerfEnum-Objekt , das die hochleistungsfähige Enumeration enthält.
[out] plId
Zeiger auf eine ganze Zahl, die vom Anbieter zurückgegeben wird, die die auffrischbare Enumeration eindeutig identifiziert.
Rückgabewert
Diese Methode gibt ein HRESULT zurück, das den Status des Methodenaufrufs angibt. Die folgende Liste listet den Wert auf, der in einem HRESULT enthalten ist.
Hinweise
Der Anbieter darf den aktualisierungsfähigen Enumerator außer während eines Aktualisierungsvorgangs nicht ändern. Die Enumeration ist flach, sodass alle Instanzen, die im Enumerator platziert werden, der von wszClass angegebenen Klasse entsprechen sollten.
Der Anbieter darf nicht auf den Enumerator zugreifen, es sei denn, WMI ruft die IWbemRefresher::Refresh-Methode des Besitzers auf. Wie bei aktualisierbaren Objekten darf der Anbieter den Enumerator nicht aktualisieren, es sei denn, das Objekt, das den Enumerator besitzt, aktualisiert den Enumerator.
Beispiele
Im folgenden Codebeispiel wird beschrieben, wie CreateRefreshableEnum implementiert wird.
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;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | wbemprov.h (include Wbemidl.h) |
Bibliothek | Wbemuuid.lib |
DLL | Wmiprvsd.dll |
Weitere Informationen
Entwickeln eines WMI-Anbieters
Umwandeln eines Instanzanbieters in einen Hochleistungsanbieter