Metodo Provider::EnumerateInstances (provider.h)
[La classe Provider fa parte di WMI Provider Framework, che viene ora considerata in stato finale e non saranno disponibili ulteriori sviluppi, miglioramenti o aggiornamenti per problemi non correlati alla sicurezza che interessano queste librerie. Le API MI devono essere usate per tutti i nuovi sviluppi.
Il metodo EnumerateInstances viene chiamato da WMI per recuperare tutte le istanze della classe di un provider di framework.
Sintassi
HRESULT EnumerateInstances(
MethodContext *pMethodContext,
long lFlags
);
Parametri
pMethodContext
Puntatore all'oggetto contesto per questa chiamata. Questo valore contiene tutte le proprietà IWbemContext specificate dal client. Inoltre, questo puntatore deve essere usato come parametro per tutte le chiamate in WMI.
lFlags
Maschera di bit dei flag con informazioni sull'operazione EnumerateInstances . Questo è il valore specificato dal client nel metodo IWbemServices::CreateInstanceEnum .
I flag seguenti vengono gestiti da (e filtrati) da WMI:
- WBEM_FLAG_DEEP
- WBEM_FLAG_SHALLOW
- WBEM_FLAG_RETURN_IMMEDIATELY
- WBEM_FLAG_FORWARD_ONLY
- WBEM_FLAG_BIDIRECTIONAL
- WBEM_FLAG_USE_AMENDED_QUALIFIERS
Valore restituito
L'implementazione predefinita del provider di framework di questo metodo restituisce WBEM_E_PROVIDER_NOT_CAPABLE al metodo chiamante. Il metodo IWbemServices::CreateInstanceEnum elenca i valori restituiti più comuni, ma è possibile scegliere di restituire qualsiasi codice restituito COM.
Commenti
Non è un errore per EnumerateInstances restituire zero istanze creando un'istanza di zero istanze CInstance e impostando il valore restituito su WBEM_S_NO_ERROR.
WMI spesso chiama EnumerateInstances quando un'applicazione client chiama IWbemServices::CreateInstanceEnum, anche se WMI può chiamare anche EnumerateInstances in altre situazioni. Di seguito è riportato un modo comune per eseguire l'override di EnumerateInstances:
- Creare un'istanza vuota della classe usando Provider::CreateNewInstance.
- Popolare le proprietà dell'istanza vuota usando i metodi Set della classe CInstance , ad esempio CInstance::SetByte o CInstance::SetStringArray.
- Inviare di nuovo l'istanza al client usando CInstance::Commit.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | provider.h (include FwCommon.h) |
Libreria | FrameDyn.lib |
DLL | FrameDynOS.dll; FrameDyn.dll |