IWbemServices::CancelAsyncCall 메서드(wbemcli.h)
IWbemServices::CancelAsyncCall 메서드는 원래 비동기 메서드에 전달된 IWbemObjectSink 포인터를 기반으로 현재 보류 중인 비동기 호출을 취소합니다. 호출 전에 또는 호출이 반환된 후에 미해결 IWbemObjectSink 포인터를 해제할 수 있습니다. CancelAsyncCall 메서드는 싱크 내에서 작동되지 않으며 메서드 공급자에서 지원되지 않습니다. 즉, 호출의 클라이언트 끝만 취소됩니다. 구현 공급자는 호출이 취소되고 완료될 때 실행된다는 알림을 받지 않습니다. Win32_Volume 클래스의Defrag 및 Format 메서드와 같이 완료하는 데 시간이 오래 걸리는 메서드를 취소하기 전에 이를 고려해야 합니다.
구문
HRESULT CancelAsyncCall(
[in] IWbemObjectSink *pSink
);
매개 변수
[in] pSink
클라이언트가 IWbemServices 의 비동기 메서드에 제공하는 IWbemObjectSink 구현에 대한 포인터 입니다.
반환 값
이 메서드는 메서드 호출의 상태를 나타내는 HRESULT를 반환합니다. 다음 목록에는 HRESULT 내에 포함된 값이 나열되어 있습니다.
실패 시 COM 함수 GetErrorInfo에서 사용 가능한 정보를 얻을 수 있습니다.
네트워크 문제로 인해 Windows Management에 대한 원격 연결이 끊어지는 경우에도 COM 관련 오류 코드가 반환될 수 있습니다.
설명
싱크에 대한 콜백은 클라이언트에서 요구하는 것과 동일한 인증 수준으로 반환되지 않을 수 있으므로 비동기 통신 대신 반동기 통신을 사용하는 것이 좋습니다. 자세한 내용은 메서드 호출을 참조하세요. IWbemObjectSink::Indicate 또는 IWbemObjectSink::SetStatus의 구현 내에서 CancelAsyncCall을 호출하면 WMI 상태를 방해할 수 있으며 권장되지 않습니다.
ExecMethodAsync와 같은 메서드 호출의 경우 호출의 클라이언트 끝만 취소됩니다. 구현 공급자는 호출이 취소되고 완료될 때 실행된다는 알림을 받지 않습니다.
비동기 호출을 사용하는 방법에 대한 자세한 내용은 C++를 사용하여 비동기 호출 만들기 및 비동기 이벤트 알림 받기를 참조하세요.
예제
CancelAsyncCall을 사용하는 전체 예제는 예제: WMI를 통해 이벤트 알림 수신을 참조하세요.
\\Program Files\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\wmi\vc\decoupled\instance_provider 샘플에서 가져온 다음 C++ 샘플은 CancelAsyncCall의 구현을 보여 줍니다.HRESULT CProvider_IWbemServices :: CancelAsyncCall (
IWbemObjectSink *a_Sink
)
{
HRESULT t_Result = WBEM_E_NOT_AVAILABLE ;
return t_Result ;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | 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 |