다음을 통해 공유


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

이벤트 알림을 중지하기 위해 CancelAsyncCall이 호출될 때까지 지정된 응답 처리기에 이벤트가 제공된다는 점을 제외하고 IWbemServices::ExecNotificationQueryAsync 메서드는 IWbemServices::ExecNotificationQuery와 동일한 작업을 수행합니다.

구문

HRESULT ExecNotificationQueryAsync(
  [in] const BSTR      strQueryLanguage,
  [in] const BSTR      strQuery,
  [in] long            lFlags,
  [in] IWbemContext    *pCtx,
  [in] IWbemObjectSink *pResponseHandler
);

매개 변수

[in] strQueryLanguage

Windows Management에서 지원하는 쿼리 언어 중 하나를 포함하는 유효한 BSTR 입니다. "WQL"이어야 합니다.

[in] strQuery

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

[in] lFlags

이 매개 변수는 다음 값일 수 있습니다.

WBEM_FLAG_SEND_STATUS

이 플래그는 클라이언트의 IWbemObjectSink::SetStatus 구현을 통해 중간 상태 보고서를 수신하라는 요청을 Windows Management에 등록합니다. 공급자 구현은 동작을 변경하려면 이 플래그에 대한 중간 상태 보고를 지원해야 합니다.

[in] pCtx

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

[in] pResponseHandler

호출자의 IWbemObjectSink 구현에 대한 포인터입니다. 이 처리기는 사용할 수 있게 되면 쿼리 결과 집합의 개체를 받습니다. 이벤트 수신을 중단하려면 호출자가 pResponseHandler에 대해 동일한 포인터 값을 사용하여 IWbemServices::CancelAsyncCall을 호출해야 합니다. 이벤트를 사용할 수 있게 되면 제공된 IWbemObjectSink::Indicate 구현이 호출되어 이벤트 개체를 전달합니다. 최종 또는 종료 조건이 없으므로 IWbemObjectSink::SetStatus 메서드는 언제든지 호출되지 않습니다. 호출은 취소될 때까지 무기한 실행됩니다. 오류 코드가 반환되면 제공된 IWbemObjectSink 포인터가 사용되지 않습니다. WBEM_S_NO_ERROR 반환되면 작업의 결과를 나타내기 위해 사용자의 IWbemObjectSink 구현이 호출됩니다. Windows Management는 WBEM_S_NO_ERROR 반환되는 경우 포인터에서만 AddRef를 호출합니다. 오류 코드가 반환되는 경우 참조 수는 항목에서와 동일합니다. 이 매개 변수에 대한 자세한 설명은 메서드 호출을 참조하세요.

반환 값

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

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

다른 오류 코드는 pResponseHandler 매개 변수에 지정된 개체 싱크로 반환됩니다.

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

설명

결과 집합의 끝을 나타내기 위해 IWbemObjectSink::SetStatus 메서드가 호출됩니다. IWbemObjectSink::오류 조건이 발생하는지 여부를 나타내기 위해 IWbemObjectSink에 대한 중간 호출 없이 호출할 수도 있습니다.

콜백은 클라이언트에서 요구하는 것과 동일한 인증 수준에서 반환되지 않을 수 있으므로 비동기 통신 대신 반동기를 사용하는 것이 좋습니다. 비동기 통신이 필요한 경우 메서드 호출을 참조하세요.

메서드를 반동적으로 사용하는 방법에 대한 자세한 내용은 IWbemServices::ExecNotificationQuery메서드 호출을 참조하세요.

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::ExecQuery

이벤트 알림 받기

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