IWbemServices::ExecQuery 메서드(wbemcli.h)
IWbemServices::ExecQuery 메서드는 쿼리를 실행하여 개체를 검색합니다.
수행할 수 있는 유효한 유형의 쿼리는 WQL을 사용하여 쿼리를 참조하세요.
구문
HRESULT ExecQuery(
[in] const BSTR strQueryLanguage,
[in] const BSTR strQuery,
[in] long lFlags,
[in] IWbemContext *pCtx,
[out] IEnumWbemClassObject **ppEnum
);
매개 변수
[in] strQueryLanguage
Windows Management에서 지원하는 쿼리 언어 중 하나를 포함하는 유효한 BSTR 입니다. WMI 쿼리 언어의 약어인 "WQL"이어야 합니다.
[in] strQuery
쿼리의 텍스트를 포함하는 유효한 BSTR 입니다. 이 매개 변수는 NULL일 수 없습니다. WMI 쿼리 문자열을 빌드하는 방법에 대한 자세한 내용은 WQL을 사용하여 쿼리 및 WQL 참조를 참조하세요.
[in] lFlags
다음 플래그는 이 메서드의 동작에 영향을 미칩니다. 이 매개 변수에 대해 제안된 값은 최상의 성능을 위해 WBEM_FLAG_RETURN_IMMEDIATELY WBEM_FLAG_FORWARD_ONLY.
WBEM_FLAG_USE_AMENDED_QUALIFIERS
이 플래그가 설정되면 WMI는 현재 연결 로캘의 지역화된 네임스페이스에 저장된 수정된 한정자를 검색합니다. 설정하지 않으면 직접 네임스페이스에 저장된 한정자만 검색됩니다.
WBEM_FLAG_FORWARD_ONLY
이 플래그를 사용하면 전달 전용 열거자가 반환됩니다. 정방향 전용 열거자는 일반적으로 훨씬 빠르며 기존 열거자보다 메모리를 적게 사용하지만 복제 또는 초기화 호출을 허용하지 않습니다.
WBEM_FLAG_BIDIRECTIONAL
이 플래그를 사용하면 클라이언트가 열거자를 해제할 때까지 Windows Management에서 열거형 개체에 대한 포인터를 유지합니다.
WBEM_FLAG_RETURN_IMMEDIATELY
이 플래그를 사용하면 반동기 호출이 됩니다. 자세한 내용은 메서드 호출을 참조하세요.
WBEM_FLAG_ENSURE_LOCATABLE
이 플래그를 사용하면 반환된 모든 개체에 충분한 정보가 있으므로 __PATH, __RELPATH 및 __SERVER 같은 시스템 속성이 NULL이 아닌 것입니다.
WBEM_FLAG_PROTOTYPE
이 플래그는 프로토타이핑에 사용됩니다. 쿼리를 실행하지 않고 대신 일반적인 결과 개체처럼 보이는 개체를 반환합니다.
WBEM_FLAG_DIRECT_READ
이 플래그는 부모 클래스 또는 서브클래스에 관계없이 지정된 클래스에 대한 공급자에 직접 액세스합니다.
[in] pCtx
일반적으로 NULL입니다. 그렇지 않으면 요청된 클래스 또는 인스턴스를 제공하는 공급자가 사용할 수 있는 IWbemContext 개체에 대한 포인터입니다. 컨텍스트 개체의 값은 해당 공급자에 대한 설명서에 지정해야 합니다. 이 매개 변수에 대한 자세한 내용은 WMI 호출을 참조하세요.
[out] ppEnum
오류가 발생하지 않으면 호출자가 쿼리의 결과 집합에서 인스턴스를 검색할 수 있는 열거자를 받습니다. 쿼리에 0개의 인스턴스가 있는 결과 집합이 있는 것은 오류가 아닙니다. 이는 인스턴스를 반복하려고 시도해야만 결정됩니다. 이 개체는 양수 참조 횟수로 를 반환합니다. 호출자는 개체가 더 이상 필요하지 않은 경우 Release 를 호출해야 합니다.
반환 값
이 메서드는 메서드 호출의 상태를 나타내는 HRESULT를 반환합니다. 다음 목록에는 HRESULT에 포함된 값이 나열되어 있습니다.
실패 시 COM 함수 GetErrorInfo에서 사용 가능한 정보를 가져올 수 있습니다.
네트워크 문제로 인해 Windows Management에 대한 원격 연결이 끊어지는 경우에도 COM 관련 오류 코드를 반환할 수 있습니다.
설명
IWbemServices::ExecQuery 메서드는 strQuery 매개 변수에 지정된 쿼리를 처리하고 호출자가 쿼리 결과에 액세스할 수 있는 열거자를 만듭니다. 열거자는 IEnumWbemClassObject 인터페이스에 대한 포인터입니다. 쿼리 결과는 IWbemClassObject 인터페이스를 통해 사용할 수 있는 클래스 개체의 인스턴스입니다.
WQL 쿼리에서 사용할 수 있는 "AND" 및 "OR" 키워드 수에는 제한이 있습니다. 복잡한 쿼리에 사용되는 WQL 키워드가 많으면 WMI가 WBEM_E_QUOTA_VIOLATION 오류 코드를 HRESULT 값으로 반환할 수 있습니다. WQL 키워드의 제한은 쿼리가 얼마나 복잡한지에 따라 달라집니다.
요구 사항
지원되는 최소 클라이언트 | Windows Vista |
지원되는 최소 서버 | Windows Server 2008 |
대상 플랫폼 | Windows |
헤더 | wbemcli.h(Wbemidl.h 포함) |
라이브러리 | Wbemuuid.lib |
DLL | Fastprox.dll; Esscli.dll; FrameDyn.dll; FrameDynOS.dll; Ntevt.dll; Stdprov.dll; Viewprov.dll; Wbemcomn.dll; Wbemcore.dll; Wbemess.dll; Wbemsvc.dll; Wmipicmp.dll; Wmidcprv.dll; Wmipjobj.dll; Wmiprvsd.dll |