Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Nesneleri almak için bir sorgu yürütür.
Not
Bu API yalnızca iç kullanıma yöneliktir. Geliştirici kodundan kullanılmak üzere tasarlanmamıştır.
Sözdizimi
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
);
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 bayrakların birleşimi. 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_FLAG_USE_AMENDED_QUALIFIERS |
0x20000 | Ayarlanırsa işlev, geçerli bağlantının yerel ayarının yerelleştirilmiş ad alanında depolanan değiştirilmiş niteleyicileri alır. Ayarlanmadıysa işlev yalnızca anlık ad alanında depolanan niteleyicileri alır. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | bayrağı yarı zaman uyumsuz bir çağrıya neden olur. |
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. |
WBEM_FLAG_BIDIRECTIONAL |
0 | WMI, serbest bırakılana kadar numaralandırmadaki nesnelere yönelik işaretçileri korur. |
WBEM_FLAG_ENSURE_LOCATABLE |
0x100 | __PATH, __RELPATHve __SERVER gibi sistem özelliklerinin olmaması için döndürülen nesnelerin içinde yeterli bilgiye sahip olmasını nullsağlar. |
WBEM_FLAG_PROTOTYPE |
2 | Bu bayrak prototip oluşturma için kullanılır. Sorguyu yürütmez ve bunun yerine tipik bir sonuç nesnesine benzeyen bir nesne döndürür. |
WBEM_FLAG_DIRECT_READ |
0x200 | Üst sınıfına veya alt sınıflarına bakılmaksızın belirtilen sınıf için sağlayıcıya doğrudan erişime neden olur. |
Önerilen bayraklar en iyi performans için ve'tir WBEM_FLAG_RETURN_IMMEDIATELYWBEM_FLAG_FORWARD_ONLY .
pCtx
[in] Genellikle, bu değer şeklindedir null. Aksi takdirde, istenen sınıfları 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. Sorguda sıfır örnek içeren bir sonuç kümesi olabilir. 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_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_NOT_FOUND |
0x80041002 | Sorgu, var olmayan bir sınıf belirtir. |
WBEM_S_NO_ERROR |
0 | İşlev çağrısı başarılı oldu. |
Açıklamalar
Bu işlev bir çağrıyı IWbemServices::ExecQuery yöntemine sarmalar .
Bu işlev parametresinde strQuery belirtilen sorguyu işler ve çağıranın sorgu sonuçlarına erişebileceği bir numaralandırıcı oluşturur. Numaralandırıcı bir IEnumWbemClassObject arabiriminin işaretçisidir; sorgu sonuçları , IWbemClassObject arabirimi aracılığıyla kullanılabilir hale gelen sınıf nesnelerinin örnekleridir.
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