Fungsi MsiDeterminePatchSequenceA (msi.h)
Fungsi MsiDeterminePatchSequence mengambil sekumpulan file patch, file XML, dan blob XML dan menentukan urutan aplikasi terbaik untuk patch ke produk yang diinstal tertentu. Fungsi ini memperuntukkan patch yang telah diterapkan ke produk dan akun untuk patch usang dan diganti.
Sintaks
UINT MsiDeterminePatchSequenceA(
[in] LPCSTR szProductCode,
[in, optional] LPCSTR szUserSid,
[in] MSIINSTALLCONTEXT dwContext,
[in] DWORD cPatchInfo,
[in] PMSIPATCHSEQUENCEINFOA pPatchInfo
);
Parameter
[in] szProductCode
Produk yang menjadi target untuk serangkaian patch. Nilainya harus guid ProductCode untuk produk.
[in, optional] szUserSid
String yang dihentikan null yang menentukan pengidentifikasi keamanan (SID) pengguna. Parameter ini membatasi konteks enumerasi untuk akun pengguna ini. Parameter ini tidak boleh berupa string SID khusus "S-1-1-0" (semua orang) atau "S-1-5-18" (sistem lokal). Untuk konteks komputer dwContext diatur ke MSIINSTALLCONTEXT_MACHINE dan szUserSid harus NULL. Untuk konteks pengguna saat ini szUserSid dapat null dan dwContext dapat diatur ke MSIINSTALLCONTEXT_USERMANAGED atau MSIINSTALLCONTEXT_USERUNMANAGED.
[in] dwContext
Membatasi enumerasi ke konteks per pengguna yang tidak dikelola, dikelola per pengguna, atau per komputer. Parameter ini bisa menjadi salah satu nilai berikut.
[in] cPatchInfo
Jumlah patch dalam array.
[in] pPatchInfo
Penunjuk ke array struktur MSIPATCHSEQUENCEINFO .
Menampilkan nilai
Fungsi MsiDeterminePatchSequence mengembalikan nilai berikut.
Nilai | Makna |
---|---|
|
Fungsi gagal dengan cara yang tidak tercakup dalam kode kesalahan lainnya. |
|
Argumen tidak valid. |
|
Tidak ada urutan yang valid yang dapat ditemukan untuk kumpulan patch. |
|
Paket penginstalan yang direferensikan oleh jalur tidak dapat dibuka. |
|
Patch berhasil diurutkan. |
|
File .msi tidak ditemukan. |
|
Jalur ke file .msi tidak ditemukan. |
|
Data patch XML tidak valid. |
|
Paket penginstalan tidak valid. |
|
Pengguna yang bukan administrator mencoba memanggil fungsi dengan konteks pengguna yang berbeda. |
|
Data konfigurasi untuk patch atau produk terdaftar tidak valid. |
|
GUID ProductCode yang ditentukan tidak terdaftar. |
|
Pemasang Windows versi 3.0 diperlukan untuk menentukan urutan patch terbaik. Fungsi ini dipanggil dengan szProductCode belum diinstal dengan Pemasang Windows versi 3.0. |
|
Kesalahan ini dapat dikembalikan jika fungsi dipanggil dari tindakan kustom atau jika MSXML 3.0 tidak diinstal. |
|
Patch yang ditentukan tidak diketahui. |
Keterangan
Pengguna yang tidak memiliki hak istimewa administrator hanya dapat memanggil fungsi ini dalam konteks mereka sendiri atau mesin. Pengguna yang merupakan administrator dapat memanggilnya untuk pengguna lain.
Jika fungsi ini dipanggil dari tindakan kustom, fungsi tersebut gagal dan mengembalikan ERROR_CALL_NOT_IMPLEMENTED. Fungsi ini memerlukan MSXML versi 3.0 untuk memproses XML dan mengembalikan ERROR_CALL_NOT_IMPLEMENTED jika MSXML 3.0 tidak diinstal.
Fungsi MsiDeterminePatchSequence menetapkan anggota uStatus dan dwOrder dari setiap struktur MSIPATCHSEQUENCEINFO yang ditunjukkan oleh pPatchInfo. Setiap struktur berisi informasi tentang patch tertentu.
Jika fungsi berhasil, struktur MSIPATCHSEQUENCEINFO dari setiap patch yang dapat diterapkan ke produk kembali dengan uStatusERROR_SUCCESS dan dwOrder lebih besar dari atau sama dengan nol. Nilai dwOrder yang lebih besar dari atau sama dengan nol menunjukkan urutan aplikasi terbaik untuk patch yang dimulai dengan nol.
Jika fungsi berhasil, patch yang dikecualikan dari urutan patching terbaik mengembalikan struktur MSIPATCHSEQUENCEINFO dengan dwOrder yang sama dengan -1. Dalam kasus ini, bidang uStatusERROR_SUCCESS menunjukkan patch yang usang atau digantikan untuk produk. Bidang uStatusERROR_PATCH_TARGET_NOT_FOUND menunjukkan patch yang tidak dapat diterapkan ke produk.
Jika fungsi gagal, struktur MSIPATCHSEQUENCEINFO untuk setiap patch mengembalikan dwOrder yang sama dengan -1. Dalam hal ini, bidang uStatus dapat berisi kesalahan dengan informasi selengkapnya tentang patch individual. Misalnya, ERROR_PATCH_NO_SEQUENCE dikembalikan untuk patch yang memiliki informasi urutan melingkar.
Catatan
Header msi.h mendefinisikan MsiDeterminePatchSequence 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. 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk