Aracılığıyla paylaş


ExecNotificationQueryWmi işlevi

Olayları almak için bir sorgu yürütür. Çağrı hemen döndürür ve çağıran gelen olaylar için döndürülen numaralandırıcıyı yoklayabilir. Döndürülen numaralandırıcının serbest bırakılması sorguyu iptal eder.

Not

Bu API yalnızca iç kullanıma yöneliktir. Geliştirici kodundan kullanılmak üzere tasarlanmamıştır.

Sözdizimi

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

Parametreler

strQueryLanguage
[in] Windows Yönetimi tarafından desteklenen geçerli sorgu diline sahip bir dize. Wmi Sorgu Dili kısaltması olan "WQL" olmalıdır.

strQuery
[in] Sorgu metni. Bu parametre olamaz null.

lFlags
[in] Bu işlevin davranışını etkileyen aşağıdaki iki bayrağın birleşimi. Bu değerler WbemCli.h üst bilgi dosyasında tanımlanır veya bunları kodunuzda sabit olarak tanımlayabilirsiniz.

Sabit Değer Açıklama
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 bayrağı yarı zaman uyumsuz bir çağrıya neden olur. Bu bayrak ayarlanmadıysa, çağrı başarısız olur. Bunun nedeni olayların sürekli olarak alınmasıdır; bu da kullanıcının döndürülen numaralandırıcıyı yoklaması gerektiği anlamına gelir. Bu çağrıyı süresiz olarak engellemek bunu imkansız hale getirir.
WBEM_FLAG_FORWARD_ONLY 0x20 işlevi yalnızca ileriye doğru bir numaralandırıcı döndürür. Genellikle, yalnızca ileriye doğru numaralandırıcılar daha hızlıdır ve geleneksel numaralandırıcılara göre daha az bellek kullanır, ancak Clone çağrılarına izin vermezler.

pCtx
[in] Genellikle, bu değer şeklindedir null. Aksi takdirde, istenen olayları sağlayan sağlayıcı tarafından kullanılabilecek bir IWbemContext örneğine yönelik bir işaretçidir.

ppEnum
[out] Hata oluşmazsa, çağıranın sorgunun sonuç kümesindeki örnekleri almasını sağlayan numaralandırıcının işaretçisini alır. Daha fazla bilgi için Açıklamalar bölümüne bakın.

authLevel
[in] Yetkilendirme düzeyi.

impLevel
[in] Kimliğe bürünme düzeyi.

pCurrentNamespace
[in] Geçerli ad alanını temsil eden bir IWbemServices nesnesinin işaretçisi.

strUser
[in] Kullanıcı adı. Daha fazla bilgi için bkz . ConnectServerWmi işlevi.

strPassword
[in] Parola. Daha fazla bilgi için bkz . ConnectServerWmi işlevi.

strAuthority
[in] Kullanıcının etki alanı adı. Daha fazla bilgi için bkz . ConnectServerWmi işlevi.

Döndürülen değer

Bu işlev tarafından döndürülen aşağıdaki değerler WbemCli.h üst bilgi dosyasında tanımlanır veya bunları kodunuzda sabit olarak tanımlayabilirsiniz:

Sabit Değer Açıklama
WBEM_E_ACCESS_DENIED 0x80041003 Kullanıcının işlevin döndürebileceği bir veya daha fazla sınıfı görüntüleme izni yok.
WBEM_E_FAILED 0x80041001 Belirtilmemiş bir hata oluştu.
WBEM_E_INVALID_PARAMETER 0x80041008 Parametre geçerli değil.
WBEM_E_INVALID_CLASS 0x80041010 Sorgu, var olmayan bir sınıf belirtir.
WBEMESS_E_REGISTRATION_TOO_PRECISE 0x80042002 Olayların tesliminde çok fazla duyarlık istendi. Daha büyük bir yoklama toleransı belirtilmelidir.
WBEMESS_E_REGISTRATION_TOO_BROAD 0x80042001 Sorgu, Windows Yönetimi'nin sağlayabileceklerinden daha fazla bilgi istemektedir. Bu HRESULT , bir olay sorgusu bir ad alanındaki tüm nesneleri yoklama isteğiyle sonuçlandığında döndürülür.
WBEM_E_INVALID_QUERY 0x80041017 Sorguda söz dizimi hatası vardı.
WBEM_E_INVALID_QUERY_TYPE 0x80041018 İstenen sorgu dili desteklenmiyor.
WBEM_E_QUOTA_VIOLATION 0x8004106c Sorgu çok karmaşık.
WBEM_E_OUT_OF_MEMORY 0x80041006 İşlemi tamamlamak için yeterli bellek yok.
WBEM_E_SHUTTING_DOWN 0x80041033 WMI büyük olasılıkla durduruldu ve yeniden başlatıldı. ConnectServerWmi'yi yeniden arayın.
WBEM_E_TRANSPORT_FAILURE 0x80041015 Geçerli işlem ile WMI arasındaki uzak yordam çağrısı (RPC) bağlantısı başarısız oldu.
WBEM_E_UNPARSABLE_QUERY 0x80041058 Sorgu ayrıştırılamıyor.
WBEM_S_NO_ERROR 0 İşlev çağrısı başarılı oldu.

Açıklamalar

Bu işlev IWbemServices::ExecNotificationQuery yöntemine bir çağrı sarmalar.

İşlev döndürdükten sonra çağıran, herhangi bir olayın kullanılabilir olup olmadığını görmek için döndürülen ppEnum nesneyi düzenli aralıklarla Sonraki işlevine geçirir.

WQL sorgularında kullanılabilecek ve OR anahtar sözcük sayısının AND sınırları vardır. Karmaşık bir sorguda kullanılan çok sayıda WQL anahtar sözcüğü WMI'nın (veya 0x8004106c) hata kodunu değer HRESULT olarak döndürmesine WBEM_E_QUOTA_VIOLATION neden olabilir. WQL anahtar sözcüklerinin sınırı, sorgunun ne kadar karmaşık olduğuna bağlıdır.

İşlev çağrısı başarısız olursa GetErrorInfo işlevini çağırarak ek hata bilgileri alabilirsiniz.

Gereksinimler

Platform: Bkz. Sistem Gereksinimleri.

Üstbilgi: WMINet_Utils.idl

.NET Framework Sürümleri: 4.7.2 sürümünden itibaren kullanılabilir

Ayrıca bkz.