다음을 통해 공유


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

추가 정보

IWbemServices

IWbemServices::ExecQueryAsync

WQL을 사용하여 쿼리