Metode IWbemServices::CancelAsyncCall (wbemcli.h)
Metode IWbemServices::CancelAsyncCall membatalkan panggilan asinkron yang saat ini tertunda berdasarkan pointer IWbemObjectSink , yang awalnya diteruskan ke metode asinkron. Penunjuk IWbemObjectSink yang beredar dapat dirilis sebelum panggilan atau setelah panggilan kembali. Metode CancelAsyncCall tidak beroperasi dari dalam sink dan tidak didukung oleh penyedia metode. Ini berarti hanya akhir panggilan klien yang dibatalkan. Penyedia pelaksana tidak diberi tahu bahwa panggilan dibatalkan dan dijalankan hingga selesai. Anda harus mempertimbangkan ini sebelum membatalkan metode yang membutuhkan waktu lama untuk diselesaikan, seperti metode Defrag dan Format di kelas Win32_Volume .
Sintaks
HRESULT CancelAsyncCall(
[in] IWbemObjectSink *pSink
);
Parameter
[in] pSink
Arahkan ke implementasi IWbemObjectSink yang disediakan oleh klien ke salah satu metode asinkron IWbemServices.
Mengembalikan nilai
Metode ini mengembalikan HRESULT yang menunjukkan status panggilan metode. Daftar berikut mencantumkan nilai yang terkandung dalam HRESULT.
Jika gagal, Anda dapat memperoleh informasi yang tersedia dari fungsi COM GetErrorInfo.
Kode kesalahan khusus COM juga dapat dikembalikan jika masalah jaringan menyebabkan Anda kehilangan koneksi jarak jauh ke Manajemen Windows.
Keterangan
Karena panggilan balik ke sink mungkin tidak dikembalikan pada tingkat autentikasi yang sama dengan yang diperlukan klien, disarankan agar Anda menggunakan semisinkron alih-alih komunikasi asinkron. Untuk informasi selengkapnya, lihat Memanggil Metode. Memanggil CancelAsyncCall dari dalam implementasi IWbemObjectSink::Indicate atau IWbemObjectSink::SetStatus dapat mengganggu status WMI dan tidak disarankan.
Dalam kasus panggilan metode seperti ExecMethodAsync, hanya akhir panggilan klien yang dibatalkan. Penyedia pelaksana tidak diberi tahu bahwa panggilan dibatalkan dan dijalankan hingga selesai.
Untuk informasi selengkapnya tentang cara menggunakan panggilan asinkron, lihat Melakukan Panggilan Asinkron dengan C++ dan Menerima Pemberitahuan Peristiwa Asinkron
Contoh
Untuk contoh lengkap yang menggunakan CancelAsyncCall, lihat Contoh: Menerima Pemberitahuan Peristiwa Melalui WMI
Sampel C++ berikut, diambil dari sampel \\Program Files\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\wmi\vc\decoupled\instance_provider, menunjukkan implementasi CancelAsyncCall.HRESULT CProvider_IWbemServices :: CancelAsyncCall (
IWbemObjectSink *a_Sink
)
{
HRESULT t_Result = WBEM_E_NOT_AVAILABLE ;
return t_Result ;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista |
Server minimum yang didukung | Windows Server 2008 |
Target Platform | Windows |
Header | wbemcli.h (termasuk Wbemidl.h) |
Pustaka | 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 |