Fungsi MsiEnumPatchesExA (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 MsiEnumPatchesExA(
  [in, optional]      LPCSTR            szProductCode,
  [in, optional]      LPCSTR            szUserSid,
  [in]                DWORD             dwContext,
  [in]                DWORD             dwFilter,
  [in]                DWORD             dwIndex,
  [out, optional]     CHAR [39]         szPatchCode,
  [out, optional]     CHAR [39]         szTargetProductCode,
  [out, optional]     MSIINSTALLCONTEXT *pdwTargetProductContext,
  [out, optional]     LPSTR             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.

Jenis SID Makna
NULL
Menentukan pengguna yang saat ini masuk.
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
Enumerasi di semua pengguna dalam sistem.
 
Catatan String SID khusus "S-1-5-18" (Sistem) tidak dapat digunakan untuk menghitung produk atau patch yang diinstal sebagai per mesin. Mengatur nilai SID ke "S-1-5-18" mengembalikan ERROR_INVALID_PARAMETER. Ketika dwContext diatur ke MSIINSTALLCONTEXT_MACHINE saja, szUserSid harus NULL.
 

[in] dwContext

Membatasi enumerasi ke satu atau kombinasi konteks. Parameter ini bisa berupa salah satu atau kombinasi dari nilai berikut.

Konteks Makna
MSIINSTALLCONTEXT_USERMANAGED
Enumerasi yang diperluas ke semua penginstalan yang dikelola per pengguna untuk pengguna yang ditentukan szUserSid . SID tidak valid tidak mengembalikan item.
MSIINSTALLCONTEXT_USERUNMANAGED
Dalam konteks ini, hanya patch yang diinstal dengan Pemasang Windows versi 3.0 yang dijumlahkan untuk pengguna yang bukan pengguna saat ini. Untuk pengguna saat ini, fungsi menghitung semua patch yang diinstal dan baru. SID yang tidak valid untuk szUserSid tidak mengembalikan item.
MSIINSTALLCONTEXT_MACHINE
Enumerasi yang diperluas ke semua penginstalan per komputer. Ketika dwContext diatur ke MSIINSTALLCONTEXT_MACHINE saja, parameter szUserSid harus NULL.

[in] dwFilter

Filter untuk enumerasi. Parameter ini bisa berupa satu atau kombinasi parameter berikut.

Filter Makna
MSIPATCHSTATE_APPLIED
1
Enumerasi mencakup patch yang telah diterapkan. Enumerasi tidak termasuk patch pengganti atau usang.
MSIPATCHSTATE_SUPERSEDED
2
Enumerasi mencakup patch yang ditandai sebagai digantikan.
MSIPATCHSTATE_OBSOLETED
4
Enumerasi mencakup patch yang ditandai sebagai usang.
MSIPATCHSTATE_REGISTERED
8
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.
 
MSIPATCHSTATE_ALL
15
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.

Nilai kembali

Fungsi MsiEnumPatchesEx mengembalikan salah satu nilai berikut.

Menampilkan kode Deskripsi
ERROR_ACCESS_DENIED
Fungsi gagal mencoba mengakses sumber daya dengan hak istimewa yang tidak memadai.
ERROR_BAD_CONFIGURATION
Data konfigurasi rusak.
ERROR_INVALID_PARAMETER
Parameter yang tidak valid diteruskan ke fungsi.
ERROR_NO_MORE_ITEMS
Tidak ada lagi patch untuk menghitung.
ERROR_SUCCESS
Patch berhasil dijumlahkan.
ERROR_UNKNOWN_PRODUCT
Produk yang ditentukan szProduct tidak diinstal pada komputer dalam konteks yang ditentukan.
ERROR_MORE_DATA
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

Persyaratan Nilai
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 Penginstal Windows.
Target Platform Windows
Header msi.h
Pustaka Msi.lib
DLL Msi.dll

Lihat juga

Konteks Penginstalan

MsiSourceListAddSourceEx

Tidak Didukung di Windows Installer 2.0 dan yang lebih lama

ProductCode