Fungsi MsiSourceListEnumSourcesA (msi.h)

Fungsi MsiSourceListEnumSources menghitung sumber dalam daftar sumber patch atau produk tertentu.

Sintaks

UINT MsiSourceListEnumSourcesA(
  [in]                LPCSTR            szProductCodeOrPatchCode,
  [in, optional]      LPCSTR            szUserSid,
  [in]                MSIINSTALLCONTEXT dwContext,
  [in]                DWORD             dwOptions,
  [in]                DWORD             dwIndex,
  [in, optional]      LPSTR             szSource,
  [in, out, optional] LPDWORD           pcchSource
);

Parameter

[in] szProductCodeOrPatchCode

ProductCode atau patch GUID produk atau patch. Gunakan string yang dihentikan null. Jika string lebih panjang dari 39 karakter, fungsi gagal dan mengembalikan ERROR_INVALID_PARAMETER. Parameter ini tidak boleh NULL.

[in, optional] szUserSid

String SID yang menentukan akun pengguna yang berisi produk atau patch. SID tidak divalidasi atau diselesaikan. SID yang salah dapat mengembalikan ERROR_UNKNOWN_PRODUCT atau ERROR_UNKNOWN_PATCH. Saat mereferensikan konteks komputer, szUserSID harus NULL dan dwContext harus MSIINSTALLCONTEXT_MACHINE.

Jenis SID Makna
NULL
NULL menunjukkan pengguna saat ini yang masuk. Saat mereferensikan akun pengguna saat ini, szUserSID dapat berupa NULL dan dwContext dapat MSIINSTALLCONTEXT_USERMANAGED atau MSIINSTALLCONTEXT_USERUNMANAGED.
Pengidentifikasi keamanan pengguna
Enumerasi untuk pengguna tertentu dalam sistem. Contoh SID pengguna adalah "S-1-3-64-2415071341-1358098788-3127455600-2561".
s-1-1-0
String SID khusus s-1-1-0 (semua orang) menentukan enumerasi di semua pengguna dalam sistem.
 
Catatan String SID khusus s-1-5-18 (sistem) tidak dapat digunakan untuk menghitung produk atau patch yang dipasang sebagai per mesin. Mengatur nilai SID ke s-1-5-18 mengembalikan ERROR_INVALID_PARAMETER.
 

[in] dwContext

Konteks produk atau instans patch. Parameter ini dapat berisi salah satu nilai berikut.

Jenis konteks Makna
MSIINSTALLCONTEXT_USERMANAGED
Instans produk atau patch ada dalam konteks yang dikelola per pengguna.
MSIINSTALLCONTEXT_USERUNMANAGED
Instans produk atau patch ada dalam konteks per pengguna yang tidak dikelola.
MSIINSTALLCONTEXT_MACHINE
Produk atau instans patch ada dalam konteks per komputer.

[in] dwOptions

Nilai dwOptions menentukan interpretasi nilai szProductCodeOrPatchCode dan jenis sumber yang akan dihapus. Parameter ini harus merupakan kombinasi dari salah satu konstanta MSISOURCETYPE_* berikut dan salah satu konstanta MSICODE_* berikut.

Bendera Makna
MSISOURCETYPE_NETWORK
Sumbernya adalah jenis jaringan.
MSISOURCETYPE_URL
Sumbernya adalah jenis URL.
MSICODE_PRODUCT
szProductCodeOrPatchCode adalah kode produk.
MSICODE_PATCH
szProductCodeOrPatchCode adalah kode patch.

[in] dwIndex

Indeks sumber yang akan diambil. Parameter ini harus 0 (nol) untuk panggilan pertama ke fungsi MsiSourceListEnumSources , lalu dinaikkan untuk panggilan berikutnya hingga fungsi mengembalikan ERROR_NO_MORE_ITEMS. Indeks harus dinaikkan hanya jika panggilan sebelumnya dikembalikan ERROR_SUCCESS.

[in, optional] szSource

Penunjuk ke buffer yang menerima jalur ke sumber yang sedang dijumlahkan. Buffer ini harus cukup besar untuk memuat nilai yang diterima. Jika buffer terlalu kecil, fungsi mengembalikan ERROR_MORE_DATA dan mengatur *pcchSource ke jumlah TCHAR dalam nilai, tidak termasuk karakter NULL yang mengakhiri.

Jika szSource diatur ke NULL dan pcchSource diatur ke pointer yang valid, fungsi mengembalikan ERROR_SUCCESS dan mengatur *pcchSource ke jumlah TCHAR dalam nilai, tidak termasuk karakter NULL yang mengakhiri. Fungsi kemudian dapat dipanggil lagi untuk mengambil nilai, dengan buffer szSource cukup besar untuk berisi *pcchSource + 1 karakter.

Jika szSource dan pcchSource diatur ke NULL, fungsi mengembalikan ERROR_SUCCESS jika nilai ada, tanpa mengambil nilai.

[in, out, optional] pcchSource

Penunjuk ke variabel yang menentukan jumlah TCHAR dalam buffer szSource . Ketika fungsi kembali, parameter ini diatur ke ukuran nilai yang diminta apakah fungsi menyalin nilai ke dalam buffer yang ditentukan atau tidak. Ukuran dikembalikan sebagai jumlah TCHAR dalam nilai yang diminta, tidak termasuk karakter null yang mengakhiri.

Parameter ini dapat diatur ke NULL hanya jika szSource juga NULL, jika tidak, fungsi mengembalikan ERROR_INVALID_PARAMETER.

Nilai kembali

Fungsi MsiSourceListEnumSources mengembalikan nilai berikut.

Nilai Makna
ERROR_ACCESS_DENIED
Pengguna tidak memiliki kemampuan untuk membaca daftar sumber yang ditentukan. Ini tidak menunjukkan apakah produk atau patch ditemukan.
ERROR_BAD_CONFIGURATION
Data konfigurasi rusak.
ERROR_INVALID_PARAMETER
Parameter yang tidak valid diteruskan ke fungsi.
ERROR_MORE_DATA
Buffer yang disediakan tidak cukup untuk memuat data yang diminta.
ERROR_NO_MORE_ITEMS
Tidak ada lagi sumber dalam daftar yang ditentukan untuk dijumlahkan.
ERROR_SUCCESS
Sumber berhasil dijumlahkan.
ERROR_UNKNOWN_PATCH
Patch yang ditentukan tidak diinstal pada komputer dalam konteks yang ditentukan.
ERROR_UNKNOWN_PRODUCT
Produk yang ditentukan tidak diinstal pada komputer dalam konteks yang ditentukan.
ERROR_FUNCTION_FAILED
Kegagalan internal yang tidak terduga.

Keterangan

Saat melakukan beberapa panggilan ke MsiSourceListEnumSources untuk menghitung semua sumber untuk satu instans produk, setiap panggilan harus dilakukan dari utas yang sama.

Administrator dapat menghitung penginstalan per pengguna yang tidak dikelola dan dikelola untuk diri mereka sendiri, penginstalan per mesin, dan penginstalan terkelola per pengguna untuk pengguna mana pun. Administrator tidak dapat menghitung penginstalan per pengguna yang tidak dikelola untuk pengguna lain. Non-administrator hanya dapat menghitung penginstalan per pengguna mereka sendiri yang tidak dikelola dan dikelola serta penginstalan per komputer.

Catatan

Header msi.h mendefinisikan MsiSourceListEnumSources sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

   
Klien minimum yang didukung Windows Installer 5.0 di Windows Server 2012, Windows 8, Windows Server 2008 R2 atau Windows 7. Windows Installer 4.0 atau Windows Installer 4.5 di Windows Server 2008 atau Windows Vista. Windows Installer 3.0 atau yang lebih baru pada Windows Server 2003 atau Windows XP. Lihat Persyaratan Run-Time Penginstal Windows untuk informasi tentang paket layanan Windows minimum yang diperlukan oleh versi Pemasang Windows.
Target Platform Windows
Header msi.h
Pustaka Msi.lib
DLL Msi.dll

Lihat juga

Konteks Penginstalan

Tidak Didukung di Windows Installer 2.0 dan yang lebih lama

ProductCode