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 쿼리에 사용할 수 있는 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 |