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