다음을 통해 공유


IWbemServices::ExecNotificationQuery 메서드(wbemcli.h)

IWbemServices::ExecNotificationQuery 메서드는 이벤트를 수신하기 위해 쿼리를 실행합니다. 호출은 즉시 반환되며, 사용자는 반환된 열거자가 도착할 때 이벤트에 대해 폴링할 수 있습니다. 반환된 열거자를 해제하면 쿼리가 취소됩니다.

구문

HRESULT ExecNotificationQuery(
  [in]  const BSTR           strQueryLanguage,
  [in]  const BSTR           strQuery,
  [in]  long                 lFlags,
  [in]  IWbemContext         *pCtx,
  [out] IEnumWbemClassObject **ppEnum
);

매개 변수

[in] strQueryLanguage

Windows Management에서 지원하는 쿼리 언어 중 하나를 포함하는 유효한 BSTR 입니다. NULL일 수 없습니다. 현재 WQL( WMI 쿼리 언어 )만 지원됩니다.

[in] strQuery

이벤트 관련 쿼리의 텍스트를 포함하는 유효한 BSTR 입니다. NULL일 수 없습니다. WMI 쿼리 문자열을 빌드하는 방법에 대한 자세한 내용은 WQL을 사용하여 쿼리WQL 참조를 참조하세요.

[in] lFlags

이 매개 변수는 WBEM_FLAG_RETURN_IMMEDIATELY 및 WBEM_FLAG_FORWARD_ONLY 둘 다로 설정 해야 합니다. 그렇지 않으면 호출이 실패합니다.

WBEM_FLAG_FORWARD_ONLY

이 플래그를 사용하면 전달 전용 열거자가 반환됩니다. 정방향 전용 열거자는 일반적으로 훨씬 빠르며 기존 열거자보다 메모리를 적게 사용하지만 복제 또는 초기화 호출을 허용하지 않습니다.

WBEM_FLAG_RETURN_IMMEDIATELY

사용자는 이 플래그를 지정해야 합니다. 그렇지 않으면 호출이 실패합니다. 이는 이벤트가 지속적으로 수신되기 때문입니다. 즉, 사용자는 반환된 열거자를 폴링해야 합니다. 가능한 이벤트를 기다리는 동안 이 호출을 무기한 차단하면 스레드가 무기한 차단됩니다. 자세한 내용은 메서드 호출을 참조하세요.

[in] pCtx

일반적으로 NULL입니다. 그렇지 않으면 요청된 이벤트를 제공하는 공급자가 사용할 수 있는 IWbemContext 개체에 대한 포인터입니다. 컨텍스트 개체의 값은 해당 공급자에 대한 설명서에 지정해야 합니다. 이 매개 변수에 대한 자세한 내용은 WMI 호출을 참조하세요.

[out] ppEnum

오류가 발생하지 않으면 이 매개 변수는 호출자가 쿼리의 결과 집합에서 인스턴스를 검색할 수 있는 열거자를 받습니다. 호출자는 IEnumWbemClassObject::Next 를 주기적으로 호출하여 사용 가능한 이벤트가 있는지 확인합니다. 이 사용에서 Reset 은 열거자를 이벤트 시퀀스의 시작 부분으로 다시 이동하지 않습니다. 영향을 주지 않습니다. 매개 변수는 반환된 열거자에서 Release 가 호출될 때까지 이벤트를 계속 받을 수 있습니다.

반환 값

이 메서드는 메서드 호출의 상태를 나타내는 HRESULT를 반환합니다. 다음 목록에는 HRESULT에 포함된 값이 나열되어 있습니다.

실패 시 COM 함수 GetErrorInfo에서 사용 가능한 정보를 가져올 수 있습니다.

네트워크 문제로 인해 Windows Management에 대한 원격 연결이 끊어지는 경우에도 COM 관련 오류 코드를 반환할 수 있습니다.

설명

WQL 쿼리에 사용할 수 있는 ANDOR 키워드의 수에는 제한이 있습니다. 복잡한 쿼리에 사용되는 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::ExecNotificationQueryAsync

WQL을 사용하여 쿼리

애플리케이션 기간 동안 이벤트 수신

오류 코드 검색