Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wykonuje zapytanie w celu odbierania zdarzeń. Wywołanie jest zwracane natychmiast, a obiekt wywołujący może sondować zwrócony moduł wyliczający pod kątem zdarzeń w miarę ich nadejścia. Zwolnienie zwróconego modułu wyliczającego anuluje zapytanie.
Uwaga
Ten interfejs API jest przeznaczony tylko do użytku wewnętrznego. Nie jest przeznaczony do użycia z poziomu kodu dewelopera.
Składnia
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
[in] Ciąg z prawidłowym językiem zapytań obsługiwanym przez zarządzanie systemem Windows. Musi to być "WQL", akronim języka zapytań WMI.
strQuery
[in] Tekst zapytania. Ten parametr nie może mieć wartości null.
lFlags
[in] Kombinacja następujących dwóch flag, które wpływają na zachowanie tej funkcji. Te wartości są definiowane w pliku nagłówkowym WbemCli.h lub można je zdefiniować jako stałe w kodzie.
| Stała | Wartość | Opis |
|---|---|---|
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Flaga powoduje wywołanie semisynchroniczne. Jeśli ta flaga nie jest ustawiona, wywołanie zakończy się niepowodzeniem. Dzieje się tak, ponieważ zdarzenia są odbierane w sposób ciągły, co oznacza, że użytkownik musi sondować zwrócony moduł wyliczający. Zablokowanie tego wywołania w nieskończoność sprawia, że niemożliwe. |
WBEM_FLAG_FORWARD_ONLY |
0x20 | Funkcja zwraca moduł wyliczający tylko do przodu. Zazwyczaj moduły wyliczania tylko do przodu są szybsze i używają mniejszej ilości pamięci niż konwencjonalne moduły wyliczania, ale nie zezwalają na wywołania klonowania. |
pCtx
[in] Zazwyczaj ta wartość to null. W przeciwnym razie jest to wskaźnik do wystąpienia IWbemContext , który może być używany przez dostawcę dostarczającego żądane zdarzenia.
ppEnum
[out] Jeśli żaden błąd nie wystąpi, odbierze wskaźnik do modułu wyliczającego, który umożliwia wywołującym pobranie wystąpień w zestawie wyników zapytania. Aby uzyskać więcej informacji, zobacz sekcję Uwagi .
authLevel
[in] Poziom autoryzacji.
impLevel
[in] Poziom personifikacji.
pCurrentNamespace
[in] Wskaźnik do obiektu IWbemServices , który reprezentuje bieżącą przestrzeń nazw.
strUser
[in] Nazwa użytkownika. Aby uzyskać więcej informacji, zobacz funkcję ConnectServerWmi .
strPassword
[in] Hasło. Aby uzyskać więcej informacji, zobacz funkcję ConnectServerWmi .
strAuthority
[in] Nazwa domeny użytkownika. Aby uzyskać więcej informacji, zobacz funkcję ConnectServerWmi .
Wartość zwracana
Następujące wartości zwracane przez tę funkcję są definiowane w pliku nagłówkowym WbemCli.h lub można je zdefiniować jako stałe w kodzie:
| Stała | Wartość | Opis |
|---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | Użytkownik nie ma uprawnień do wyświetlania co najmniej jednej klasy, którą funkcja może zwrócić. |
WBEM_E_FAILED |
0x80041001 | Wystąpił nieokreślony błąd. |
WBEM_E_INVALID_PARAMETER |
0x80041008 | Parametr jest nieprawidłowy. |
WBEM_E_INVALID_CLASS |
0x80041010 | Zapytanie określa klasę, która nie istnieje. |
WBEMESS_E_REGISTRATION_TOO_PRECISE |
0x80042002 | Zażądano zbyt dużej precyzji w dostarczaniu zdarzeń. Należy określić większą tolerancję sondowania. |
WBEMESS_E_REGISTRATION_TOO_BROAD |
0x80042001 | Zapytanie żąda więcej informacji niż usługa Windows Management może dostarczyć. Jest to HRESULT zwracane, gdy zapytanie o zdarzenie powoduje wysłanie żądania sondowania wszystkich obiektów w przestrzeni nazw. |
WBEM_E_INVALID_QUERY |
0x80041017 | Zapytanie miało błąd składni. |
WBEM_E_INVALID_QUERY_TYPE |
0x80041018 | Żądany język zapytań nie jest obsługiwany. |
WBEM_E_QUOTA_VIOLATION |
0x8004106c | Zapytanie jest zbyt złożone. |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | Za mało pamięci, aby ukończyć operację. |
WBEM_E_SHUTTING_DOWN |
0x80041033 | Usługa WMI została prawdopodobnie zatrzymana i uruchomiona ponownie. Ponownie wywołaj metodę ConnectServerWmi . |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | Połączenie zdalnego wywołania procedury (RPC) między bieżącym procesem a usługą WMI nie powiodło się. |
WBEM_E_UNPARSABLE_QUERY |
0x80041058 | Nie można przeanalizować kwerendy. |
WBEM_S_NO_ERROR |
0 | Wywołanie funkcji zakończyło się pomyślnie. |
Uwagi
Ta funkcja opakowuje wywołanie metody IWbemServices::ExecNotificationQuery .
Po powrocie funkcji obiekt wywołujący okresowo przekazuje zwrócony ppEnum obiekt do funkcji Next , aby sprawdzić, czy są dostępne jakiekolwiek zdarzenia.
Istnieją ograniczenia liczby AND słów kluczowych i OR , które mogą być używane w zapytaniach WQL. Duża liczba słów kluczowych WQL używanych w złożonym zapytaniu może spowodować, że usługa WMI zwróci WBEM_E_QUOTA_VIOLATION kod błędu (lub 0x8004106c) jako HRESULT wartość. Limit słów kluczowych WQL zależy od tego, jak złożone jest zapytanie.
Jeśli wywołanie funkcji zakończy się niepowodzeniem, możesz uzyskać dodatkowe informacje o błędzie, wywołując funkcję GetErrorInfo .
Wymagania
Platformy: Zobacz Wymagania systemowe.
Nagłówka: WMINet_Utils.idl
wersje .NET Framework: dostępne od wersji 4.7.2