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 lFlags
WBEM_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