Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Kör en fråga för att ta emot händelser. Anropet returneras omedelbart och anroparen kan avsöka den returnerade uppräknaren efter händelser när de anländer. När den returnerade uppräknaren släpps avbryts frågan.
Anteckning
Det här API:et är endast för internt bruk. Det är inte avsett att användas från utvecklarkod.
Syntax
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
);
Parametrar
strQueryLanguage
[in] En sträng med det giltiga frågespråket som stöds av Windows Management. Det måste vara "WQL", förkortningen för WMI Query Language.
strQuery
[in] Texten i frågan. Den här parametern får inte vara null.
lFlags
[in] En kombination av följande två flaggor som påverkar funktionens beteende. Dessa värden definieras i rubrikfilen WbemCli.h , eller så kan du definiera dem som konstanter i koden.
| Konstant | Värde | Beskrivning |
|---|---|---|
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Flaggan orsakar ett semisynkront anrop. Om den här flaggan inte har angetts misslyckas anropet. Det beror på att händelser tas emot kontinuerligt, vilket innebär att användaren måste avsöka den returnerade uppräknaren. Att blockera det här anropet på obestämd tid gör det omöjligt. |
WBEM_FLAG_FORWARD_ONLY |
0x20 | Funktionen returnerar en framåtriktad uppräknare. Normalt är uppräknare med endast vidarebefordran snabbare och använder mindre minne än konventionella uppräknare, men de tillåter inte anrop till Klona. |
pCtx
[in] Det här värdet är nullvanligtvis . Annars är det en pekare till en IWbemContext-instans som kan användas av providern som tillhandahåller de begärda händelserna.
ppEnum
[ut] Om inget fel inträffar tar emot pekaren till uppräknaren som gör att anroparen kan hämta instanserna i frågans resultatuppsättning. Mer information finns i avsnittet Kommentarer .
authLevel
[in] Auktoriseringsnivån.
impLevel
[in] Personifieringsnivån.
pCurrentNamespace
[in] En pekare till ett IWbemServices-objekt som representerar det aktuella namnområdet.
strUser
[in] Användarnamnet. Mer information finns i funktionen ConnectServerWmi .
strPassword
[in] Lösenordet. Mer information finns i funktionen ConnectServerWmi .
strAuthority
[in] Användarens domännamn. Mer information finns i funktionen ConnectServerWmi .
Returvärde
Följande värden som returneras av den här funktionen definieras i wbemCli.h-huvudfilen , eller så kan du definiera dem som konstanter i koden:
| Konstant | Värde | Beskrivning |
|---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | Användaren har inte behörighet att visa en eller flera av de klasser som funktionen kan returnera. |
WBEM_E_FAILED |
0x80041001 | Ett ospecificerat fel har uppstått. |
WBEM_E_INVALID_PARAMETER |
0x80041008 | En parameter är inte giltig. |
WBEM_E_INVALID_CLASS |
0x80041010 | Frågan anger en klass som inte finns. |
WBEMESS_E_REGISTRATION_TOO_PRECISE |
0x80042002 | För mycket precision vid leverans av händelser har begärts. En större avsökningstolerans måste anges. |
WBEMESS_E_REGISTRATION_TOO_BROAD |
0x80042001 | Frågan begär mer information än vad Windows-hantering kan ge. Detta HRESULT returneras när en händelsefråga resulterar i en begäran om att avsöka alla objekt i ett namnområde. |
WBEM_E_INVALID_QUERY |
0x80041017 | Frågan hade ett syntaxfel. |
WBEM_E_INVALID_QUERY_TYPE |
0x80041018 | Det begärda frågespråket stöds inte. |
WBEM_E_QUOTA_VIOLATION |
0x8004106c | Frågan är för komplex. |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | Det finns inte tillräckligt med minne för att slutföra åtgärden. |
WBEM_E_SHUTTING_DOWN |
0x80041033 | WMI stoppades förmodligen och startades om. Anropa ConnectServerWmi igen. |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | RPC-länken (Remote Procedure Call) mellan den aktuella processen och WMI misslyckades. |
WBEM_E_UNPARSABLE_QUERY |
0x80041058 | Det går inte att parsa frågan. |
WBEM_S_NO_ERROR |
0 | Funktionsanropet lyckades. |
Kommentarer
Den här funktionen omsluter ett anrop till metoden IWbemServices::ExecNotificationQuery .
När funktionen har returnerats skickar anroparen regelbundet det returnerade ppEnum objektet till funktionen Nästa för att se om några händelser är tillgängliga.
Det finns gränser för antalet AND nyckelord och OR som kan användas i WQL-frågor. Ett stort antal WQL-nyckelord som används i en komplex fråga kan orsaka att WMI returnerar WBEM_E_QUOTA_VIOLATION (eller 0x8004106c) felkoden som ett HRESULT värde. Gränsen för WQL-nyckelord beror på hur komplex frågan är.
Om funktionsanropet misslyckas kan du hämta ytterligare felinformation genom att anropa funktionen GetErrorInfo .
Krav
Plattformar: Se Systemkrav.
Huvudet: WMINet_Utils.idl
.NET Framework versioner: Tillgänglig sedan 4.7.2