CreateClassEnumWmi-Funktion

Gibt einen Enumerator für alle Klassen zurück, die die angegebenen Auswahlkriterien erfüllen.

Hinweis

Diese API ist ausschließlich für die interne Verwendung vorgesehen. Sie ist nicht für die Verwendung im Entwicklercode vorgesehen.

Syntax

HRESULT CreateClassEnumWmi (
   [in] BSTR                    strSuperclass,
   [in] long                    lFlags,
   [in] IWbemContext*           pCtx,
   [out] IEnumWbemClassObject** ppEnum,
   [in] DWORD                   authLevel,
   [in] DWORD                   impLevel,
   [in] IWbemServices*          pCurrentNamespace,
   [in] BSTR                    strUser,
   [in] BSTR                    strPassword,
   [in] BSTR                    strAuthority
);

Parameter

strSuperclass
[in] Wenn der Wert nicht null oder leer ist, gibt dies den Namen einer übergeordneten Klasse an; der Enumerator gibt nur Unterklassen dieser Klasse zurück. Wenn der Wert null oder leer ist und lFlags „WBEM_FLAG_SHALLOW“ ist, werden nur Klassen der obersten Ebene (Klassen ohne übergeordnete Klasse) zurückgegeben. Wenn der Wert null oder leer ist und lFlagsWBEM_FLAG_DEEP ist, werden alle Klassen im Namespace zurückgegeben.

lFlags
[in] Eine Kombination aus Flags, die das Verhalten dieser Funktion beeinflussen. Die folgenden Werte werden in der Headerdatei WbemCli.h definiert. Alternativ dazu können Sie sie als Konstanten im Code definieren:

Konstante Wert BESCHREIBUNG
WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x20000 Wenn dieser Wert festgelegt ist, ruft die Funktion die geänderten Qualifizierer (AMENDED) ab, die im lokalisierten Namespace des Gebietsschemas der aktuellen Verbindung gespeichert sind.
Wenn dieser Wert nicht festgelegt ist, ruft die Funktion nur die Qualifizierer ab, die im unmittelbaren Namespace gespeichert sind.
WBEM_FLAG_DEEP 0 Die Enumeration enthält alle Unterklassen in der Hierarchie, aber nicht diese Klasse.
WBEM_FLAG_SHALLOW 1 Die Enumeration enthält nur reine Instanzen dieser Klasse und schließt alle Instanzen von Unterklassen aus, die Eigenschaften bereitstellen, die in dieser Klasse nicht gefunden wurden.
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 Das Flag verursacht einen halbsynchronen Aufruf.
WBEM_FLAG_FORWARD_ONLY 0x20 Die Funktion gibt einen Vorwärtsenumerator zurück. In der Regel sind Vorwärtsenumeratoren schneller und verbrauchen weniger Arbeitsspeicher als herkömmliche Enumeratoren, lassen jedoch keine Aufrufe von Clone zu.
WBEM_FLAG_BIDIRECTIONAL 0 WMI behält die Zeiger auf Objekte in der Enumeration bei, bis sie freigegeben werden.

Die empfohlenen Flags für eine optimale Leistung sind WBEM_FLAG_RETURN_IMMEDIATELY und WBEM_FLAG_FORWARD_ONLY.

pCtx
[in] In der Regel ist dieser Wert null. Andernfalls handelt es sich um einen Zeiger auf eine IWbemContext-Instanz, die von dem Anbieter verwendet werden kann, der die angeforderten Klassen bereitstellt.

ppEnum
[out] Empfängt den Zeiger auf den Enumerator.

authLevel
[in] Die Autorisierungsebene.

impLevel
[in] Die Ebene des Identitätswechsels.

pCurrentNamespace
[in] Ein Zeiger auf ein IWbemServices-Objekt, das den aktuellen Namespace repräsentiert.

strUser
[in] Der Benutzername. Weitere Informationen finden Sie bei der ConnectServerWmi-Funktion.

strPassword
[in] Das Kennwort. Weitere Informationen finden Sie bei der ConnectServerWmi-Funktion.

strAuthority
[in] Der Domänenname des Benutzers/der Benutzerin. Weitere Informationen finden Sie bei der ConnectServerWmi-Funktion.

Rückgabewert

Die folgenden von dieser Funktion zurückgegebenen Werte werden in der Headerdatei WbemCli.h definiert. Alternativ dazu können Sie sie als Konstanten im Code definieren:

Konstante Wert BESCHREIBUNG
WBEM_E_ACCESS_DENIED 0x80041003 Der Benutzer/die Benutzerin verfügt nicht über die Berechtigung, eine oder mehrere der Klassen anzuzeigen, die die Funktion zurückgeben kann.
WBEM_E_FAILED 0x80041001 Ein unbekannter Fehler ist aufgetreten.
WBEM_E_INVALID_CLASS 0x80041010 strSuperClass existiert nicht.
WBEM_E_INVALID_PARAMETER 0x80041008 Ein Parameter ist nicht gültig.
WBEM_E_OUT_OF_MEMORY 0x80041006 Es ist nicht genügend Arbeitsspeicher verfügbar, um den Vorgang abzuschließen.
WBEM_E_SHUTTING_DOWN 0x80041033 WMI wurde wahrscheinlich beendet und startet neu. Rufen Sie ConnectServerWmi erneut auf.
WBEM_E_TRANSPORT_FAILURE 0x80041015 Fehler bei der RPC-Verbindung (Remote Procedure Call, Remoteprozeduraufruf) zwischen dem aktuellen Prozess und WMI.
WBEM_S_NO_ERROR 0 Der Funktionsaufruf war erfolgreich.

Bemerkungen

Diese Funktion umschließt einen Aufruf der IWbemServices::CreateClassEnum-Methode.

Wenn der Funktionsaufruf nicht erfolgreich ist, können Sie durch Aufruf der GetErrorInfo-Funktion zusätzliche Fehlerinformationen abrufen.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: WMINet_Utils.idl

.NET Framework-Versionen: seit Version 4.7.2 verfügbar

Siehe auch