IWbemServices::CreateClassEnum-Methode (wbemcli.h)
Die IWbemServices::CreateClassEnum-Methode gibt einen Enumerator für alle Klassen zurück, die Auswahlkriterien erfüllen. Der Aufrufer muss den zurückgegebenen Enumerator verwenden, um die Klassendefinitionen abzurufen, wobei IEnumWbemClassObject::Next aufgerufen wird, um jede Klasse oder klassenblöcke abzurufen. Sie wird durch Aufrufen von IEnumWbemClassObject::Release abgeschlossen.
Syntax
HRESULT CreateClassEnum(
[in] const BSTR strSuperclass,
[in] long lFlags,
[in] IWbemContext *pCtx,
[out] IEnumWbemClassObject **ppEnum
);
Parameter
[in] strSuperclass
Wenn nicht NULL oder leer, gibt einen namen der übergeordneten Klasse an. Nur Klassen, die Unterklassen dieser Klasse sind, werden im Enumerator zurückgegeben. Wenn es NULL oder leer ist und lFlags WBEM_FLAG_SHALLOW ist, werden nur die Klassen der obersten Ebene zurückgegeben (d. a. Klassen, die keine übergeordnete Klasse haben). Wenn es NULL oder leer ist und lFlagsWBEM_FLAG_DEEP ist, werden alle Klassen innerhalb des Namespace zurückgegeben.
[in] lFlags
Die folgenden Flags wirken sich auf das Verhalten dieser Methode aus. Der vorgeschlagene Wert für diesen Parameter ist WBEM_FLAG_RETURN_IMMEDIATELY und WBEM_FLAG_FORWARD_ONLY für optimale Leistung.
WBEM_FLAG_USE_AMENDED_QUALIFIERS
Wenn dieses Flag festgelegt ist, ruft WMI die geänderten Qualifizierer ab, die im lokalisierten Namespace des Gebietsschemas der aktuellen Verbindung gespeichert sind. Wenn nicht festgelegt, werden nur die im unmittelbaren Namespace gespeicherten Qualifizierer abgerufen.
WBEM_FLAG_DEEP
Dieses Flag erzwingt, dass die Enumeration alle Unterklassen in die Hierarchie einschließt, aber nicht diese Klasse.
WBEM_FLAG_SHALLOW
Dieses Flag erzwingt, dass die Enumeration nur reine Instanzen dieser Klasse enthält, wobei alle Instanzen von Unterklassen ausgeschlossen sind, die Eigenschaften bereitstellen, die in dieser Klasse nicht gefunden wurden.
WBEM_FLAG_RETURN_IMMEDIATELY
Dieses Flag verursacht einen semisynchronen Aufruf. Weitere Informationen finden Sie unter Aufrufen einer Methode.
WBEM_FLAG_FORWARD_ONLY
Dieses Flag bewirkt, dass ein forward-only-Enumerator zurückgegeben wird. In der Regel sind Forward-Enumeratoren schneller und verbrauchen weniger Arbeitsspeicher als herkömmliche Enumeratoren, lassen jedoch keine Aufrufe zum Klonen oder Zurücksetzen zu.
WBEM_FLAG_BIDIRECTIONAL
Dieses Flag bewirkt, dass WMI Zeiger auf Objekte der Enumeration behält, bis der Client den Enumerator freigibt. Da Objektzeiger nicht sofort freigegeben werden, schlägt diese Methode möglicherweise mit einem HRESULT von WBEM_E_OUT_OF_MEMORY fehl, wenn der Client versucht, eine große Anzahl von Objekten aufzulisten. Dieses Flag wird standardmäßig impliziert, wenn Sie den lFlags-Parameter auf 0 (null) festlegen.
[in] pCtx
In der Regel NULL. Andernfalls ist dies ein Zeiger auf ein IWbemContext-Objekt , das von dem Anbieter verwendet werden kann, der die angeforderten Klassen bereitstellt. Die Werte im Kontextobjekt müssen in der Dokumentation für den Anbieter angegeben werden. Weitere Informationen zu diesem Parameter finden Sie unter Ausführen von Aufrufen an WMI.
[out] ppEnum
Empfängt den Zeiger auf den Enumerator. Das zurückgegebene Objekt weist eine positive Verweisanzahl auf. Der Aufrufer muss Release auf dem Zeiger aufrufen, wenn er nicht mehr benötigt wird.
Rückgabewert
Diese Methode gibt ein HRESULT zurück, das die status eines Methodenaufrufs angibt. In der folgenden Liste ist der in einem HRESULT enthaltene Wert aufgeführt.
Bei einem Fehler können Sie verfügbare Informationen über die COM-Funktion GetErrorInfo abrufen.
COM-spezifische Fehlercodes können auch zurückgegeben werden, wenn Netzwerkprobleme dazu führen, dass die Remoteverbindung mit der Windows-Verwaltung verloren geht.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | wbemcli.h (include Wbemidl.h) |
Bibliothek | Wbemuuid.lib |
DLL | Fastprox.dll; Esscli.dll; FrameDyn.dll; FrameDynOS.dll; Ntevt.dll; Stdprov.dll; Viewprov.dll; Wbemcomn.dll; Wbemcore.dll; Wbemess.dll; Wbemsvc.dll; Wmipicmp.dll; Wmidcprv.dll; Wmipjobj.dll; Wmiprvsd.dll |