Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Spustí dotaz pro načtení objektů.
Poznámka
Toto rozhraní API je určené pouze pro interní použití. Není určen pro použití z kódu vývojáře.
Syntaxe
HRESULT ExecQueryWmi (
[in] BSTR strQueryLanguage,
[in] BSTR strQuery,
[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
);
Parametry
strQueryLanguage
[v] Řetězec s platným dotazovacím jazykem podporovaným službou Windows Management. Musí to být WQL, zkratka pro WMI Query Language.
strQuery
[v] Text dotazu Tento parametr nemůže být null.
lFlags
[v] Kombinace příznaků, které ovlivňují chování této funkce. Následující hodnoty jsou definovány v hlavičkovém souboru WbemCli.h nebo je můžete definovat jako konstanty v kódu:
| Konstanta | Hodnota | Popis |
|---|---|---|
WBEM_FLAG_USE_AMENDED_QUALIFIERS |
0x20000 | Pokud je tato funkce nastavená, načte upravené kvalifikátory uložené v lokalizovaného oboru názvů národního prostředí aktuálního připojení. Pokud není nastavená, funkce načte pouze kvalifikátory uložené v bezprostředním oboru názvů. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Příznak způsobí polosynchronní volání. |
WBEM_FLAG_FORWARD_ONLY |
0x20 | Funkce vrátí dopředný enumerátor. Enumerátory pouze vpřed jsou obvykle rychlejší a využívají méně paměti než konvenční enumerátory, ale neumožňují volání Clone. |
WBEM_FLAG_BIDIRECTIONAL |
0 | WMI uchovává ukazatele na objekty ve výčtu, dokud nebudou uvolněny. |
WBEM_FLAG_ENSURE_LOCATABLE |
0x100 | Zajišťuje, aby všechny vrácené objekty měly dostatek informací, aby systémové vlastnosti, například __PATH, __RELPATH a __SERVER, nebyly null. |
WBEM_FLAG_PROTOTYPE |
2 | Tento příznak se používá pro vytváření prototypů. Nespustí dotaz a místo toho vrátí objekt, který vypadá jako typický objekt výsledku. |
WBEM_FLAG_DIRECT_READ |
0x200 | Způsobí přímý přístup k poskytovateli pro zadanou třídu bez ohledu na její nadřazenou třídu nebo jakékoli podtřídy. |
Doporučené příznaky jsou WBEM_FLAG_RETURN_IMMEDIATELY a WBEM_FLAG_FORWARD_ONLY pro zajištění nejlepšího výkonu.
pCtx
[v] Tato hodnota je nullobvykle . Jinak se jedná o ukazatel na instanci IWbemContext , který může být použit zprostředkovatelem, který poskytuje požadované třídy.
ppEnum
[out] Pokud nedojde k žádné chybě, obdrží ukazatel na enumerátor, který umožňuje volajícímu načíst instance v sadě výsledků dotazu. Dotaz může mít sadu výsledků dotazu s nulovými instancemi. Další informace najdete v části Poznámky .
authLevel
[v] Úroveň autorizace.
impLevel
[v] Úroveň zosobnění.
pCurrentNamespace
[v] Ukazatel na objekt IWbemServices , který představuje aktuální obor názvů.
strUser
[v] Uživatelské jméno. Další informace najdete ve funkci ConnectServerWmi .
strPassword
[v] Heslo. Další informace najdete ve funkci ConnectServerWmi .
strAuthority
[v] Název domény uživatele. Další informace najdete ve funkci ConnectServerWmi .
Vrácená hodnota
Následující hodnoty vrácené touto funkcí jsou definovány v hlavičce souboru WbemCli.h nebo je můžete definovat jako konstanty v kódu:
| Konstanta | Hodnota | Popis |
|---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | Uživatel nemá oprávnění k zobrazení jedné nebo více tříd, které může funkce vrátit. |
WBEM_E_FAILED |
0x80041001 | Došlo k nespecifikované chybě. |
WBEM_E_INVALID_PARAMETER |
0x80041008 | Parametr není platný. |
WBEM_E_INVALID_QUERY |
0x80041017 | Dotaz měl chybu syntaxe. |
WBEM_E_INVALID_QUERY_TYPE |
0x80041018 | Požadovaný dotazovací jazyk není podporován. |
WBEM_E_QUOTA_VIOLATION |
0x8004106c | Dotaz je příliš složitý. |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | K dokončení operace není k dispozici dostatek paměti. |
WBEM_E_SHUTTING_DOWN |
0x80041033 | Rozhraní WMI se pravděpodobně zastavilo a restartovalo. Znovu zavolejte ConnectServerWmi . |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | Propojení vzdáleného volání procedur (RPC) mezi aktuálním procesem a rozhraním WMI selhalo. |
WBEM_E_NOT_FOUND |
0x80041002 | Dotaz určuje třídu, která neexistuje. |
WBEM_S_NO_ERROR |
0 | Volání funkce bylo úspěšné. |
Poznámky
Tato funkce zabalí volání metody IWbemServices::ExecQuery .
Tato funkce zpracuje dotaz zadaný v parametru strQuery a vytvoří enumerátor, jehož prostřednictvím má volající přístup k výsledkům dotazu. Enumerátor je ukazatel na IEnumWbemClassObject rozhraní; výsledky dotazu jsou instance objektů třídy zpřístupněné prostřednictvím rozhraní IWbemClassObject .
Počet AND klíčových slov a OR , která lze použít v dotazech jazyka WQL, jsou omezena. Velký počet klíčových slov jazyka WQL použitých v komplexním dotazu může způsobit, že rozhraní WMI vrátí WBEM_E_QUOTA_VIOLATION kód chyby (nebo 0x8004106c) jako hodnotu HRESULT . Limit klíčových slov jazyka WQL závisí na tom, jak složitý je dotaz.
Pokud volání funkce selže, můžete získat další informace o chybě voláním funkce GetErrorInfo .
Požadavky
Platformy: Viz Požadavky na systém.
Záhlaví: WMINet_Utils.idl
Verze rozhraní .NET Framework: K dispozici od verze 4.7.2