IWbemEventProviderQuerySink::NewQuery 메서드(wbemprov.h)
논리 이벤트 소비자가 Windows Management에 관련 이벤트 쿼리 필터를 등록할 때 IWbemEventProviderQuerySink::NewQuery 메서드를 호출합니다. NewQuery 메서드는 공급자가 클라이언트 애플리케이션에 의해 등록된 새 쿼리에 응답하는 방법을 결정합니다. WMI가 소비자로부터 새 이벤트 쿼리 또는 수정된 이벤트 쿼리를 받으면 WMI는 NewQuery 를 호출하여 쿼리를 이벤트 공급자에 에코합니다. 그러면 공급자가 요청된 알림을 생성합니다.
구문
HRESULT NewQuery(
[in] unsigned long dwId,
[in] WBEM_WSTR wszQueryLanguage,
[in] WBEM_WSTR wszQuery
);
매개 변수
[in] dwId
쿼리에 대한 Windows Management 생성 식별자입니다. 공급자는 나중에 CancelQuery 를 호출하는 동안 공급자가 취소된 쿼리를 알 수 있도록 이를 추적할 수 있습니다.
[in] wszQueryLanguage
다음 쿼리 필터의 언어입니다. 이 버전의 WMI의 경우 항상 "WQL"입니다.
[in] wszQuery
논리 소비자가 등록한 이벤트 쿼리 필터의 텍스트입니다. 이벤트 공급자는 wszQuery 매개 변수 및 wszQueryLanguage 매개 변수의 쿼리 필터 언어를 통해 쿼리 필터의 텍스트를 검사하여 소비자가 요청하는 이벤트 알림을 검색할 수 있습니다.
반환 값
이 메서드는 메서드 호출의 상태를 나타내는 HRESULT를 반환합니다. 다음 목록에는 NewQuery에서 반환된 반환 코드가 나열되어 있습니다. 또한 타사 이벤트 공급자는 NewQuery 를 통해 반환 값으로 전달할 수 있는 유효한 WMI 또는 COM 반환 코드를 반환할 수 있습니다.
설명
소비자가 Windows Management에 이벤트 필터 쿼리를 등록하고 쿼리에 현재 이벤트 공급자가 제공한 이벤트에 대한 참조가 포함된 경우 Windows Management는 이벤트 공급자에게 쿼리를 알릴 수 있습니다.
공급자가 IWbemEventProviderQuerySink 인터페이스를 구현하는 경우 Windows Management는 공급자에게 쿼리 텍스트의 복사본을 제공합니다. 공급자는 쿼리를 구문 분석하고 내부 최적화를 수행할 수 있는지 확인해야 합니다.
Windows Management는 공급자가 어떤 식으로든 해당 동작을 변경할 것으로 기대하지 않습니다. 대신 내부 최적화를 통해 공급자를 지원하기 위한 권고 호출입니다.
예를 들어 공급자가 수백 개의 이벤트를 제공할 수 있지만 모든 이벤트를 제공하는 데 필요한 오버헤드가 큰 경우 공급자는 이러한 이벤트의 대부분이 현재 이벤트 소비자 집합에 필요하지 않다는 것을 알고 있는 경우 상당한 절감을 달성할 수 있습니다. 공급자가 IWbemEventProviderQuerySink를 구현하는 경우 모든 소비자가 요청한 현재 이벤트 집합에 대해 알 수 있습니다. 소비자가 실제로 이러한 이벤트를 요청하기 시작할 때까지 지원하는 대부분의 이벤트 유형을 제공하기 위한 메커니즘을 설정하지 않을 수 있습니다.
각 새 소비자 쿼리 필터에 대해 고유한 dwId를 사용하여 이 메서드에 대한 별도의 호출이 수행됩니다. Windows Management는 동일한 dwId 값에 대해 NewQuery 를 두 번 이상 호출할 수 있는 권한을 보유합니다. 예를 들어 시스템의 다른 곳에서 스키마 변경이 있는 경우입니다. 이 버전의 WMI의 경우 쿼리 언어는 항상 "WQL"입니다.
IWbemEventProviderQuerySink::NewQuery 메서드는 IWbemEventProvider::P rovideEvents 메서드 앞에 호출할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
지원되는 최소 서버 | Windows Server 2008 |
대상 플랫폼 | Windows |
헤더 | wbemprov.h(Wbemidl.h 포함) |
라이브러리 | Wbemuuid.lib |
DLL | Wbemsvc.dll |