Sdílet prostřednictvím


Funkce ExecNotificationQueryWmi

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

Viz také