Megosztás a következőn keresztül:


ExecNotificationQueryWmi függvény

Lekérdezést hajt végre az események fogadásához. A hívás azonnal visszatér, és a hívó lekérdezheti a visszaadott enumerátort az események beérkezésekor. A visszaadott enumerátor feloldása megszakítja a lekérdezést.

Megjegyzés

Ez az API csak belső használatra készült. Nem fejlesztői kódból való használatra készült.

Szintaxis

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
);

Paraméterek

strQueryLanguage
[in] A Windows Management által támogatott érvényes lekérdezési nyelvvel rendelkező sztring. Ennek "WQL" betűszónak kell lennie, amely a WMI lekérdezési nyelvének rövidítése.

strQuery
[in] A lekérdezés szövege. Ez a paraméter nem lehet null.

lFlags
[in] Az alábbi két jelző kombinációja, amelyek befolyásolják a függvény működését. Ezek az értékek a WbemCli.h fejlécfájlban vannak definiálva, vagy konstansként definiálhatók a kódban.

Állandó Érték Leírás
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 A jelző félszinkron hívást eredményez. Ha ez a jelző nincs beállítva, a hívás sikertelen lesz. Ennek az az oka, hogy az események folyamatosan érkeznek, ami azt jelenti, hogy a felhasználónak le kell kérdeznie a visszaadott enumerátort. A hívás határozatlan időre történő letiltása ezt lehetetlenné teszi.
WBEM_FLAG_FORWARD_ONLY 0x20 A függvény csak előre megadott enumerátort ad vissza. A csak továbbítandó enumerátorok általában gyorsabbak, és kevesebb memóriát használnak, mint a hagyományos enumerátorok, de nem engedélyezik a Klónozás hívását.

pCtx
[in] Ez az érték nulláltalában . Ellenkező esetben egy IWbemContext-példányra mutat, amelyet a kért eseményeket biztosító szolgáltató használhat.

ppEnum
[kifelé] Ha nem történik hiba, megkapja a mutatót az enumerátorhoz, amely lehetővé teszi, hogy a hívó lekérje a lekérdezés eredményhalmazában lévő példányokat. További információért tekintse meg a Megjegyzések szakaszt.

authLevel
[in] Az engedélyezési szint.

impLevel
[in] A megszemélyesítési szint.

pCurrentNamespace
[in] Az aktuális névteret képviselő IWbemServices-objektumra mutató mutató.

strUser
[in] A felhasználónév. További információt a ConnectServerWmi függvényben talál.

strPassword
[in] A jelszó. További információt a ConnectServerWmi függvényben talál.

strAuthority
[in] A felhasználó tartományneve. További információt a ConnectServerWmi függvényben talál.

Visszatérési érték

A függvény által visszaadott alábbi értékek a WbemCli.h fejlécfájlban vannak definiálva, vagy konstansként definiálhatók a kódban:

Állandó Érték Leírás
WBEM_E_ACCESS_DENIED 0x80041003 A felhasználónak nincs engedélye megtekinteni egy vagy több osztályt, amelyet a függvény vissza tud adni.
WBEM_E_FAILED 0x80041001 Meghatározatlan hiba történt.
WBEM_E_INVALID_PARAMETER 0x80041008 Érvénytelen paraméter.
WBEM_E_INVALID_CLASS 0x80041010 A lekérdezés olyan osztályt határoz meg, amely nem létezik.
WBEMESS_E_REGISTRATION_TOO_PRECISE 0x80042002 Túl nagy pontosságot kértek az események kézbesítésében. Nagyobb lekérdezési tűrést kell megadni.
WBEMESS_E_REGISTRATION_TOO_BROAD 0x80042001 A lekérdezés több információt kér, mint amennyit a Windows Management megadhat. Ez HRESULT akkor jelenik meg, ha egy esemény-lekérdezés egy névtér összes objektumának lekérdezésére irányuló kérést eredményez.
WBEM_E_INVALID_QUERY 0x80041017 A lekérdezés szintaxishibát észlelt.
WBEM_E_INVALID_QUERY_TYPE 0x80041018 A kért lekérdezési nyelv nem támogatott.
WBEM_E_QUOTA_VIOLATION 0x8004106c A lekérdezés túl összetett.
WBEM_E_OUT_OF_MEMORY 0x80041006 Nincs elegendő memória a művelet végrehajtásához.
WBEM_E_SHUTTING_DOWN 0x80041033 A WMI valószínűleg leállt, és újraindult. Hívja meg újra a ConnectServerWmi parancsot.
WBEM_E_TRANSPORT_FAILURE 0x80041015 Az aktuális folyamat és a WMI közötti távoli eljáráshívási (RPC-) kapcsolat meghiúsult.
WBEM_E_UNPARSABLE_QUERY 0x80041058 A lekérdezés nem elemezhető.
WBEM_S_NO_ERROR 0 A függvényhívás sikeres volt.

Megjegyzések

Ez a függvény becsomagolja az IWbemServices::ExecNotificationQuery metódus hívását .

A függvény visszaadása után a hívó rendszeres időközönként továbbítja a visszaadott ppEnum objektumot a Next függvénynek, hogy lássa, vannak-e elérhető események.

A WQL-lekérdezésekben használható kulcsszavak és OR kulcsszavak száma AND korlátozott. Az összetett lekérdezésekben használt nagy számú WQL-kulcsszó miatt a WMI értékként HRESULT adja vissza a WBEM_E_QUOTA_VIOLATION (vagy 0x8004106c) hibakódot. A WQL-kulcsszavak korlátja attól függ, hogy mennyire összetett a lekérdezés.

Ha a függvényhívás sikertelen, további hibainformációkat kaphat a GetErrorInfo függvény meghívásával.

Követelmények

Platformok: Lásd: Rendszerkövetelmények.

Fejléc: WMINet_Utils.idl

.NET-keretrendszer verziók: 4.7.2 óta érhető el

Lásd még