IFunctionInstanceQuery::Execute method (functiondiscoveryapi.h)

[Penemuan Fungsi tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini mungkin diubah atau tidak tersedia dalam versi berikutnya.]

Melakukan kueri yang ditentukan oleh IFunctionDiscovery::CreateInstanceQuery.

Sintaks

HRESULT Execute(
  [out] IFunctionInstance **ppIFunctionInstance
);

Parameter

[out] ppIFunctionInstance

Penunjuk ke penunjuk antarmuka IFunctionInstance yang menerima instans fungsi yang diminta.

Nilai kembali

Kemungkinan nilai yang dikembalikan termasuk, tetapi tidak terbatas pada, berikut ini.

Mengembalikan kode/nilai Deskripsi
S_OK
Metode berhasil diselesaikan.
E_INVALIDARG
Parameter ppIFunctionInstance adalah NULL.
E_OUTOFMEMORY
Metode tidak dapat mengalokasikan memori yang diperlukan untuk melakukan operasi ini.
E_PENDING
Hasil yang akan dikembalikan oleh penyedia akan datang melalui pemberitahuan asinkron.
HRESULT_FROM_WIN32(ERROR_OBJECT_NOT_FOUND)
0x800710d8
Instans fungsi yang diwakili oleh ID yang ditentukan tidak ada pada komputer ini.
HRESULT_FROM_WIN32(ERROR_KEY_DELETED)
0x800703fa
Instans fungsi tidak dapat dikembalikan karena kunci yang sesuai dengan instans fungsi dihapus oleh proses lain. Kesalahan ini dikembalikan oleh penyedia registri jika kunci dihapus saat pemrosesan kueri sedang berlangsung.
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
0x80070002
Instans fungsi tidak dapat dikembalikan karena kunci yang sesuai dengan instans fungsi tidak dapat ditemukan. Kesalahan ini dikembalikan oleh penyedia registri ketika penyedia tidak dapat menemukan instans yang cocok untuk kueri instans.
 

Kueri yang telah ditentukan sebelumnya adalah kueri kategori berlapis. Saat kueri yang telah ditentukan sebelumnya dijalankan, setiap penyedia yang mengembalikan instans fungsi juga mengembalikan nilai HRESULT. Nilai HRESULT penyedia dikumpulkan, dan nilai yang dikembalikan oleh metode Execute mencerminkan hasil agregat ini. Hasil dikumpulkan sebagai berikut:

  • Jika semua penyedia mengembalikan S_OK, Jalankan mengembalikan S_OK.
  • Jika setidaknya satu penyedia mengembalikan E_PENDING, dan semua penyedia lain mengembalikan S_OK atau E_PENDING, Jalankan mengembalikan E_PENDING.
  • Jika semua penyedia mengembalikan nilai kesalahan (yaitu, nilai selain S_OK atau E_PENDING), Execute mengembalikan nilai kesalahan yang dikembalikan oleh penyedia jaringan yang terakhir dikueri. Selain itu, jika rutinitas panggilan balik IFunctionDiscoveryNotification klien diberikan ke IFunctionDiscovery::CreateInstanceCollectionQuery, pemberitahuan OnError dikirim untuk setiap penyedia. Setiap pemberitahuan OnError berisi HRESULT yang dikembalikan oleh penyedia.
  • Jika setidaknya satu penyedia mengembalikan nilai kesalahan, dan semua penyedia lain mengembalikan S_OK, Jalankan mengembalikan S_OK. Pemberitahuan OnError dikirim seperti yang dijelaskan di atas.
  • Jika setidaknya satu penyedia mengembalikan nilai kesalahan, dan setidaknya satu penyedia mengembalikan E_PENDING, Jalankan mengembalikan E_PENDING. Pemberitahuan OnError dikirim seperti yang dijelaskan di atas.

Keterangan

Metode ini harus dipanggil oleh program klien untuk mengambil data dari objek kueri. Ketika dipanggil, metode ini melakukan hal berikut:

  1. Mengambil instans fungsi.
  2. Memulai mekanisme pemberitahuan pembaruan jika alamat rutinitas panggilan balik IFunctionDiscoveryNotification program klien disediakan untuk IFunctionDiscovery::CreateInstanceQuery.
Penyedia jaringan Penemuan Fungsi hanya mengembalikan instans fungsi melalui antarmuka IFunctionDiscoveryNotification . Mereka tidak mengembalikan instans fungsi secara langsung ketika metode ini dipanggil. Sebaliknya, Jalankan hanya memulai operasi pengambilan yang sepenuhnya asinkron dan mengembalikan E_PENDING untuk menunjukkan bahwa hasilnya akan dikembalikan secara asinkron. Pemberitahuan harus digunakan untuk mengambil instans fungsi dari penyedia jaringan Penemuan Fungsi.

Jika Jalankan dipanggil dua kali pada objek kueri yang sama, kueri pertama dihentikan sebelum kueri kedua dijalankan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header functiondiscoveryapi.h
DLL FunDisc.dll

Lihat juga

Kueri Penemuan Fungsi

IFunctionInstanceQuery