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.
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
Creazione di un provider di istanze in un provider di High-Performance