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


ExecQueryWmi függvény

Végrehajt egy lekérdezést az objektumok lekéréséhez.

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

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] A függvény működését befolyásoló jelzők kombinációja. A WbemCli.h fejlécfájlban a következő értékek vannak definiálva, vagy konstansként definiálhatók a kódban:

Állandó Érték Leírás
WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x20000 Ha be van állítva, a függvény lekéri az aktuális kapcsolat területi beállításának honosított névterében tárolt módosított minősítőket.
Ha nincs beállítva, a függvény csak az azonnali névtérben tárolt minősítőket kéri le.
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 A jelző félszinkron hívást eredményez.
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.
WBEM_FLAG_BIDIRECTIONAL 0 A WMI mindaddig megőrzi az enumerálásban lévő objektumok mutatóit, amíg azok fel nem szabadulnak.
WBEM_FLAG_ENSURE_LOCATABLE 0x100 Biztosítja, hogy a visszaadott objektumok elegendő információval rendelkezzenek, hogy a rendszertulajdonságok (például __PATH, __RELPATH és __SERVER) ne nulllegyenek .
WBEM_FLAG_PROTOTYPE 2 Ezt a jelölőt prototípus-íráshoz használjuk. Nem hajtja végre a lekérdezést, hanem egy tipikus eredményobjektumnak tűnő objektumot ad vissza.
WBEM_FLAG_DIRECT_READ 0x200 Közvetlen hozzáférést biztosít a szolgáltatóhoz a megadott osztályhoz, tekintet nélkül a szülőosztályára vagy alosztályára.

Az ajánlott jelzők a WBEM_FLAG_RETURN_IMMEDIATELY és WBEM_FLAG_FORWARD_ONLY a legjobb teljesítmény érdekében.

pCtx
[in] Ez az érték nulláltalában . Ellenkező esetben ez egy IWbemContext-példányra mutató mutató, amelyet a kért osztályokat 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. A lekérdezés eredménye nulla példánnyal rendelkezhet. 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_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_NOT_FOUND 0x80041002 A lekérdezés olyan osztályt határoz meg, amely nem létezik.
WBEM_S_NO_ERROR 0 A függvényhívás sikeres volt.

Megjegyzések

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

Ez a függvény feldolgozza a strQuery paraméterben megadott lekérdezést, és létrehoz egy enumerátort, amelyen keresztül a hívó hozzáférhet a lekérdezés eredményeihez. Az enumerátor egy IEnumWbemClassObject felületre mutató mutató; a lekérdezési eredmények az IWbemClassObject felületen elérhető osztályobjektumok példányai.

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