Condividi tramite


Metodo IWbemHiPerfProvider::CreateRefreshableEnum (wbemprov.h)

Il metodo IWbemHiPerfProvider::CreateRefreshableEnum crea una nuova enumerazione aggiornabile. Il refresher WMI chiama questo metodo in risposta a una richiesta client a IWbemConfigureRefresher::AddEnum. Il provider associa l'oggetto IWbemHiPerfEnum fornito all'aggiornamento fornito. In ogni chiamata al metodo Refresher fornito, il provider garantisce che l'enumeratore contenga un set di tutte le istanze della classe elencate nel parametro wszClass e che queste istanze contengano informazioni aggiornate. Un modo per eseguire questa operazione consiste nel mantenere una matrice di enumeratori aggiornabili nell'utilità di aggiornamento.

Nota Se un provider non implementa questo metodo, deve restituire WBEM_E_PROVIDER_NOT_CAPABLE.
 

Sintassi

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

Parametri

[in] pNamespace

Puntatore IWbemServices in Gestione Windows, che può gestire qualsiasi richiesta effettuata dal provider. Se pNamespace deve eseguire il callback in Gestione Windows durante l'esecuzione, il provider chiama AddRef su questo puntatore.

[in] wszClass

Stringa con terminazione Null a 16 bit, caratteri Unicode che contiene il nome della classe, le cui istanze vengono aggiornate nel parametro pHiPerfEnum .

[in] pRefresher

Puntatore a un oggetto IWbemRefresher che contiene un aggiornamento ottenuto chiamando IWbemHiPerfProvider::CreateRefresher.

[in] lFlags

Riservato. Questo parametro deve essere 0 (zero).

[in] pContext

In genere NULL; in caso contrario, un puntatore a un oggetto IWbemContext richiesto da uno o più provider di classi dinamiche. I valori nell'oggetto di contesto devono essere specificati nella documentazione del provider specifico. Per altre informazioni su questo parametro, vedere Effettuare chiamate a WMI.

[in] pHiPerfEnum

Puntatore a un oggetto IWbemHiPerfEnum che contiene l'enumerazione a prestazioni elevate.

[out] plId

Puntatore a un numero intero restituito dal provider che identifica in modo univoco l'enumerazione aggiornabile.

Valore restituito

Questo metodo restituisce un valore HRESULT che indica lo stato della chiamata al metodo. L'elenco seguente elenca il valore contenuto in hrESULT.

Commenti

Il provider non deve modificare l'enumeratore aggiornabile tranne durante un'operazione di aggiornamento. L'enumerazione è superficiale, quindi tutte le istanze inserite nell'enumeratore devono essere della classe specificata da wszClass.

Il provider non deve accedere all'enumeratore a meno che WMI non chiami il metodo IWbemRefresher::Refresh del proprietario. Come per gli oggetti aggiornabili, il provider non deve aggiornare l'enumeratore a meno che l'oggetto proprietario dell'enumeratore aggiorni l'enumeratore.

Esempio

Nell'esempio di codice seguente viene descritto come implementare 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;
}

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione wbemprov.h (include Wbemidl.h)
Libreria Wbemuuid.lib
DLL Wmiprvsd.dll

Vedi anche

Sviluppo di un provider WMI

IWbemHiPerfProvider

Creazione di un provider di istanze in un provider di High-Performance

Provider contatore prestazioni

Scrittura di un provider di istanze