IFunctionInstanceCollectionQuery::Metode execute (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::CreateInstanceCollectionQuery.

Sintaks

HRESULT Execute(
  [out] IFunctionInstanceCollection **ppIFunctionInstanceCollection
);

Parameter

[out] ppIFunctionInstanceCollection

Penunjuk ke penunjuk antarmuka IFunctionInstanceCollection yang menerima koleksi instans fungsi yang diminta.

Menampilkan nilai

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

Menampilkan kode Deskripsi
S_OK
Metode berhasil diselesaikan. Hasil dikembalikan secara sinkron di ppIFunctonInstanceCollecton.
E_OUTOFMEMORY
Metode tidak dapat mengalokasikan memori yang diperlukan untuk melakukan operasi ini.
E_PENDING
Beberapa hasil akan dikembalikan oleh pemberitahuan asinkron. Lihat keterangan untuk detailnya.
 

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.
Saat Execute mengembalikan S_OK, ppIFunctionInstanceCollection berisi hasil kueri. Jika antarmuka IFunctionDiscoveryNotification disediakan untuk metode CreateInstanceCollectionQuery dari IFunctionDiscovery, maka perubahan pada hasil akan dikomunikasikan menggunakan antarmuka tersebut.

Ketika Execute mengembalikan E_PENDING, kumpulan hasil akan dikembalikan secara asinkron melalui antarmuka IFunctionDiscoveryNotification yang disediakan untuk metode CreateInstanceCollectionQuery dari IFunctionDiscovery. ppIFunctionInstanceCollection mungkin NULL atau mungkin berisi tataan hasil parsial. Enumerasi selesai setelah metode OnEventIFunctionDiscoveryNotification dipanggil dengan FD_EVENTID_SEARCHCOMPLETE. Setelah peristiwa FD_EVENTID_SEARCHCOMPLETE diterima, pemberitahuan tambahan akan diperbarui untuk hasilnya.

Keterangan

Metode ini harus dipanggil oleh program klien sebelum data apa pun dapat diambil dari objek kueri. Ketika dipanggil, metode ini melakukan hal berikut:

  1. Mengambil objek pengumpulan instans fungsi.
  2. Mengkueri penyedia kategori yang diteruskan ke IFunctionDiscovery::CreateInstanceCollectionQuery.
  3. Mengambil penyedia kategori.
  4. Mengkueri penyedia kategori menggunakan data subkategori untuk menghasilkan koleksi menggunakan batasan kueri.
  5. Memulai mekanisme pemberitahuan pembaruan jika alamat rutinitas panggilan balik IFunctionDiscoveryNotification program klien disediakan untuk IFunctionDiscovery::CreateInstanceCollectionQuery.
  6. Cache data pengumpulan dan pengembalian.
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.

Persyaratan

   
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

IFunctionInstanceCollectionQuery