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 příjem událostí. Volání se vrátí okamžitě a volající se může dotazovat vráceného enumerátoru na události při jejich příchodu. Uvolněním vráceného enumerátoru se dotaz zruší.
Poznámka
Toto rozhraní API je pouze pro interní použití. Není určen pro použití z vývojářského kódu.
Syntaxe
HRESULT ExecNotificationQueryWmi (
[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 dotazovací jazyk WMI.
strQuery
[v] Text dotazu. Tento parametr nemůže být null.
lFlags
[v] Kombinace následujících dvou příznaků, které ovlivňují chování této funkce. Tyto hodnoty jsou definovány v souboru hlaviček WbemCli.h nebo je můžete definovat jako konstanty v kódu.
| Konstanta | Hodnota | Popis |
|---|---|---|
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Příznak způsobí polosynchronní volání. Pokud tento příznak není nastavený, volání selže. Důvodem je to, že události jsou přijímány nepřetržitě, což znamená, že uživatel musí dotazovat vrácený výčet. Blokováním tohoto volání to na neurčito znemožňuje. |
WBEM_FLAG_FORWARD_ONLY |
0x20 | Funkce vrátí enumerátor jen dopředný. Enumerátory pouze pro předávání jsou obvykle rychlejší a využívají méně paměti než konvenční enumerátory, ale neumožňují volání clone. |
pCtx
[v] Tato hodnota je nullobvykle . V opačném případě se jedná o ukazatel na instanci IWbemContext , kterou může použít zprostředkovatel, který poskytuje požadované události.
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. 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 souboru hlaviček WbemCli.h nebo je můžete definovat jako konstanty ve vašem 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_CLASS |
0x80041010 | Dotaz určuje třídu, která neexistuje. |
WBEMESS_E_REGISTRATION_TOO_PRECISE |
0x80042002 | Bylo požadováno příliš mnoho přesnosti při doručování událostí. Musí být zadána větší tolerance dotazování. |
WBEMESS_E_REGISTRATION_TOO_BROAD |
0x80042001 | Dotaz vyžaduje více informací, než může správa systému Windows poskytnout. To HRESULT se vrátí, když výsledkem dotazu na událost je požadavek na dotazování všech objektů v oboru názvů. |
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_UNPARSABLE_QUERY |
0x80041058 | Dotaz nelze analyzovat. |
WBEM_S_NO_ERROR |
0 | Volání funkce bylo úspěšné. |
Poznámky
Tato funkce zabalí volání metody IWbemServices::ExecNotificationQuery .
Po vrácení funkce volající pravidelně předává vrácený ppEnum objekt funkci Next , aby se zjistilo, jestli jsou k dispozici nějaké události.
Počet klíčových slov aOR, která se dají použít v dotazech WQL, jsou omezenaAND. Velký počet klíčových slov WQL použitých ve složitém dotazu může způsobit, že rozhraní WMI vrátí WBEM_E_QUOTA_VIOLATION kód chyby (nebo 0x8004106c) jako HRESULT hodnotu. 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