Fungsi MsiEnumPatchesExW (msi.h)
Fungsi MsiEnumPatchesEx menghitung semua patch dalam konteks tertentu atau di semua konteks. Patch yang sudah diterapkan pada produk dijumlahkan. Patch yang telah terdaftar tetapi belum diterapkan pada produk juga dijumlahkan.
Sintaks
UINT MsiEnumPatchesExW(
[in, optional] LPCWSTR szProductCode,
[in, optional] LPCWSTR szUserSid,
[in] DWORD dwContext,
[in] DWORD dwFilter,
[in] DWORD dwIndex,
[out, optional] WCHAR [39] szPatchCode,
[out, optional] WCHAR [39] szTargetProductCode,
[out, optional] MSIINSTALLCONTEXT *pdwTargetProductContext,
[out, optional] LPWSTR szTargetUserSid,
[in, out, optional] LPDWORD pcchTargetUserSid
);
Parameter
[in, optional] szProductCode
String yang dihentikan null yang menentukan GUID ProductCode dari produk yang patchnya dijumlahkan. Jika non-NULL, enumerasi patch dibatasi untuk instans produk ini di bawah pengguna dan konteks yang ditentukan oleh szUserSid dan dwContext. Jika NULL, patch untuk semua produk dalam konteks yang ditentukan dijumlahkan.
[in, optional] szUserSid
String yang dihentikan null yang menentukan pengidentifikasi keamanan (SID) yang membatasi konteks enumerasi. String SID khusus "S-1-1-0" (Semua Orang) menentukan enumerasi di semua pengguna dalam sistem. Nilai SID selain "S-1-1-0" dianggap sebagai SID pengguna dan membatasi enumerasi untuk pengguna tersebut. Saat menghitung untuk pengguna selain pengguna saat ini, patch apa pun yang diterapkan dalam konteks per pengguna yang tidak dikelola menggunakan versi yang kurang dari Penginstal Windows versi 3.0, tidak dijumlahkan. Parameter ini dapat diatur ke NULL untuk menentukan pengguna saat ini.
[in] dwContext
Membatasi enumerasi ke satu atau kombinasi konteks. Parameter ini bisa berupa salah satu atau kombinasi dari nilai berikut.
[in] dwFilter
Filter untuk enumerasi. Parameter ini bisa berupa satu atau kombinasi parameter berikut.
Filter | Makna |
---|---|
|
Enumerasi mencakup patch yang telah diterapkan. Enumerasi tidak termasuk patch pengganti atau usang. |
|
Enumerasi mencakup patch yang ditandai sebagai digantikan. |
|
Enumerasi mencakup patch yang ditandai sebagai usang. |
|
Enumerasi mencakup patch yang terdaftar tetapi belum diterapkan. Fungsi MsiSourceListAddSourceEx dapat mendaftarkan patch baru.
Catatan Patch yang terdaftar untuk pengguna selain pengguna saat ini dan diterapkan dalam konteks per pengguna yang tidak dikelola tidak dijumlahkan.
|
|
Enumerasi mencakup semua patch yang diterapkan, usang, digantikan, dan terdaftar. |
[in] dwIndex
Indeks patch yang akan diambil. Parameter ini harus nol untuk panggilan pertama ke fungsi MsiEnumPatchesEx lalu dinaikkan untuk panggilan berikutnya. Parameter dwIndex harus dinaikkan hanya jika panggilan sebelumnya dikembalikan ERROR_SUCCESS.
[out, optional] szPatchCode
Buffer output untuk berisi GUID patch yang sedang dijumlahkan. Buffer harus cukup besar untuk menahan GUID. Parameter ini bisa NULL.
[out, optional] szTargetProductCode
Buffer output untuk berisi GUID ProductCode produk yang menerima patch ini. Buffer harus cukup besar untuk menahan GUID. Parameter ini bisa NULL.
[out, optional] pdwTargetProductContext
Mengembalikan konteks patch yang sedang dijumlahkan. Nilai output dapat MSIINSTALLCONTEXT_USERMANAGED, MSIINSTALLCONTEXT_USERUNMANAGED, atau MSIINSTALLCONTEXT_MACHINE. Parameter ini bisa NULL.
[out, optional] szTargetUserSid
Buffer output yang menerima string SID akun tempat instans patch ini berada. Buffer ini mengembalikan string kosong untuk konteks per komputer.
Buffer ini harus cukup besar untuk berisi SID. Jika buffer terlalu kecil, fungsi mengembalikan ERROR_MORE_DATA dan mengatur *pcchTargetUserSid ke jumlah TCHAR dalam nilai, tidak termasuk karakter NULL yang mengakhiri.
Jika szTargetUserSid diatur ke NULL dan pcchTargetUserSid diatur ke pointer yang valid, fungsi mengembalikan ERROR_SUCCESS dan mengatur *pcchTargetUserSid ke jumlah TCHAR dalam nilai, tidak termasuk karakter NULL yang mengakhiri. Fungsi kemudian dapat dipanggil lagi untuk mengambil nilai , dengan buffer szTargetUserSid cukup besar untuk berisi *pcchTargetUserSid + 1 karakter.
Jika szTargetUserSid dan pcchTargetUserSid keduanya diatur ke NULL, fungsi akan mengembalikan ERROR_SUCCESS jika nilainya ada, tanpa mengambil nilainya.
[in, out, optional] pcchTargetUserSid
Penunjuk ke variabel yang menentukan jumlah TCHAR dalam buffer szTargetUserSid . 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 szTargetUserSid juga NULL, jika tidak, fungsi akan mengembalikan ERROR_INVALID_PARAMETER.
Mengembalikan nilai
Fungsi MsiEnumPatchesEx mengembalikan salah satu nilai berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Fungsi gagal mencoba mengakses sumber daya dengan hak istimewa yang tidak memadai. |
|
Data konfigurasi rusak. |
|
Parameter yang tidak valid diteruskan ke fungsi. |
|
Tidak ada lagi patch untuk dijumlahkan. |
|
Patch berhasil dijumlahkan. |
|
Produk yang ditentukan szProduct tidak diinstal pada komputer dalam konteks yang ditentukan. |
|
Ini dikembalikan ketika pcchTargetUserSid menunjuk ke ukuran buffer kurang dari yang diperlukan untuk menyalin SID. Dalam hal ini, pengguna dapat memperbaiki buffer dan memanggil MsiEnumPatchesEx lagi untuk nilai indeks yang sama. |
Keterangan
Non-administrator hanya dapat menghitung patch dalam visibilitasnya. Administrator dapat menghitung patch untuk konteks pengguna lain.
Catatan
Header msi.h mendefinisikan MsiEnumPatchesEx sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor 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. 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 |