다음을 통해 공유


IWbemObjectSink::Indicate 메서드(wbemcli.h)

Indicate 메서드는 알림을 제공하기 위해 소스에서 호출됩니다. 일반적으로 WMI는 클라이언트가 IWbemServices의 비동기 메서드 중 하나를 실행한 후 이 인터페이스의 클라이언트 구현을 호출합니다. 다른 경우에는 다양한 유형의 공급자가 WMI에서 내보낸 구현을 호출하여 이벤트를 배달합니다. 따라서 클라이언트 코드는 경우에 따라 이 인터페이스를 구현하고 다른 경우에 다른 구성 요소의 구현을 사용해야 할 수 있습니다.

IWbemServices 인터페이스의 비동기 메서드와 함께 이 인터페이스 및 메서드를 사용합니다.

클라이언트와 공급자는 알림을 받거나 IWbemServices의 비동기 메서드를 실행하기 위해 이 인터페이스를 구현해야 합니다. 자세한 내용은 메서드 호출을 참조하세요.

구문

HRESULT Indicate(
  [in] long             lObjectCount,
  [in] IWbemClassObject **apObjArray
);

매개 변수

[in] lObjectCount

다음 포인터 배열의 개체 수입니다.

[in] apObjArray

IWbemClassObject 인터페이스에 대한 포인터의 배열입니다. 배열 메모리 자체는 읽기 전용이며 메서드의 호출자가 소유합니다. 이 매개 변수는 in 매개 변수이므로 구현에는 배열의 개체 포인터에서 IWbemClassObject::AddRef 를 호출하고 COM 규칙에 따라 메서드가 반환된 후 개체가 사용될 경우 반환하기 전에 이를 유지하는 옵션이 있습니다. 개체가 Indicate 호출 기간 동안만 사용되는 경우 각 개체 포인터에서 AddRef 를 호출할 필요가 없습니다.

반환 값

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

설명

이벤트 구독 싱크(IWbemObjectSink 또는 IWbemEventSink)를 구현하는 경우 싱크 개체의 Indicate 메서드 내에서 WMI를 호출하지 마세요. 예를 들어 Indicate 구현 내에서 IWbemServices::CancelAsyncCall을 호출하면 WMI 상태를 방해할 수 있습니다. 이벤트 구독을 취소하려면 플래그를 설정하고 다른 스레드 또는 개체에서 IWbemServices::CancelAsyncCall을 호출합니다. 개체, 열거형, 쿼리 검색과 같이 이벤트 싱크와 관련이 없는 구현의 경우 WMI를 호출할 수 있습니다.

이벤트 알림을 전달하는 WMI 스레드는 싱크 개체의 처리가 완료될 때까지 다른 작업을 수행할 수 없으므로 싱크 구현은 이벤트 알림을 100밀리초 내에 처리해야 합니다. 알림에 대량 처리가 필요한 경우 싱크는 다른 스레드가 처리를 진행하도록 내부 큐를 사용할 수 있습니다.

이벤트 공급자가 이벤트를 제공하기 위해 Indicate 를 호출하면 WBEM_E_SERVER_TOO_BUSY 호출이 실패할 수 있습니다. 공급자는 이벤트를 다시 실행하여 이 메시지에 응답하도록 선택할 수 있습니다.

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

요구 사항

   
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 wbemcli.h(Wbemidl.h 포함)
라이브러리 Wbemuuid.lib
DLL Fastprox.dll

추가 정보

IWbemObjectSink

IWbemObjectSink::SetStatus

IWbemObjectSinkEx

IWbemServices::ExecQueryAsync