다음을 통해 공유


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

IWbemObjectSink::SetStatus 메서드는 소스에서 알림 시퀀스의 끝을 나타내거나 다른 상태 코드를 싱크로 보내기 위해 호출됩니다. SetStatus를 호출하기 전에 IWbemObjectSink::Indicate 메서드가 호출되었을 수도 있고 호출되지 않았을 수도 있습니다.

일반적으로 클라이언트는 IWbemObjectSink 인터페이스를 구현하고 IWbemObjectSink 인터페이스를 사용하여 결과를 반환하는 IWbemServices 메서드를 실행합니다. 이 작업 중에 WMI는 필요한 횟수만큼 표시 를 호출한 다음 SetStatus에 대한 최종 호출과 대부분의 경우 릴리스를 호출합니다.

구문

HRESULT SetStatus(
  [in] long             lFlags,
  [in] HRESULT          hResult,
  [in] BSTR             strParam,
  [in] IWbemClassObject *pObjParam
);

매개 변수

[in] lFlags

상태 정보의 비트 마스크입니다. 작업의 상태 hResult 매개 변수를 검사하여 가져올 수 있습니다.

WBEM_STATUS_COMPLETE

작업이 완료되었습니다.

WBEM_STATUS_PROGRESS

작업이 아직 진행 중입니다.

WBEM_STATUS_REQUIREMENTS

사후 필터링을 활성화하는 데 사용됩니다.

[in] hResult

이 매개 변수는 비동기 작업 또는 알림의 HRESULT 로 설정됩니다. 오류가 발생한 경우 오류 코드이거나 비동기 호출에서 수행된 진행률입니다.

[in] strParam

원래 비동기 작업이 문자열을 반환하는 경우 읽기 전용 BSTR에 대한 포인터를 받습니다. 예를 들어 PutInstanceAsync를 사용하는 경우 SetStatus는 새로 만든 instance 개체 경로로 설정된 이 매개 변수를 사용하여 호출됩니다.

[in] pObjParam

복잡한 오류 또는 상태 개체가 반환되는 경우 오류 개체에 대한 포인터가 포함됩니다. SetStatus가 반환된 후에 개체가 필요한 경우 호출된 개체가 반환되기 전에 포인터에서 AddRef 메서드를 사용해야 합니다.

반환 값

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

설명

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

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

클라이언트의 SetStatus 구현을 통해 중간 상태 업데이트를 받으려면 공급자/서비스 메서드 호출에서 WBEM_FLAG_SENT_STATUS 지정해야 합니다. hResult의 HIWORD 및 LOWORD 값을 개별적으로 검사하여 정확한 상태 확인할 수 있습니다. LOWORD(hResult) 값에는 지금까지 수행한 진행률의 양이 포함되며 HIWORD(hResult) 값에는 합계가 포함됩니다.

공급자 또는 서비스 메서드를 호출할 때 WBEM_FLAG_SEND_STATUS 지정하지 않으면 SetStatus에 대한 호출이 하나만 수신됩니다.

요구 사항

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

추가 정보

IWbemObjectSink

IWbemObjectSink::Indicate

IWbemObjectSinkEx

IWbemServices::ExecQueryAsync

WBEM_STATUS_TYPE