다음을 통해 공유


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

추가 정보

IWbemEventProviderQuerySink

IWbemEventProviderQuerySink::CancelQuery