Freigeben über


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.

Hinweis Wenn ein Anbieter diese Methode nicht implementiert, muss er WBEM_E_PROVIDER_NOT_CAPABLE zurückgeben.
 

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

IWbemHiPerfProvider

Umwandeln eines Instanzanbieters in einen Hochleistungsanbieter

Leistungsindikator-Provider

Schreiben eines Instanzanbieters