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.

Jenis konteks Makna
MSIINSTALLCONTEXT_USERMANAGED
Patch dipertimbangkan untuk semua penginstalan produk yang dikelola per pengguna untuk pengguna yang ditentukan oleh szUserSid. SzUserSid null dengan konteks ini berarti pengguna saat ini.
MSIINSTALLCONTEXT_USERUNMANAGED
Patch dipertimbangkan untuk semua penginstalan per pengguna yang tidak dikelola untuk pengguna yang ditentukan oleh szUserSid. SzUserSid null dengan konteks ini berarti pengguna saat ini.
MSIINSTALLCONTEXT_MACHINE
Patch dipertimbangkan untuk penginstalan per mesin. Ketika dwContext diatur ke MSIINSTALLCONTEXT_MACHINE parameter szUserSid harus null.

[in] cPatchInfo

Jumlah patch dalam array.

[in] pPatchInfo

Penunjuk ke array struktur MSIPATCHSEQUENCEINFO .

Menampilkan nilai

Fungsi MsiDeterminePatchSequence mengembalikan nilai berikut.

Nilai Makna
ERROR_FUNCTION_FAILED
Fungsi gagal dengan cara yang tidak tercakup dalam kode kesalahan lainnya.
ERROR_INVALID_PARAMETER
Argumen tidak valid.
ERROR_PATCH_NO_SEQUENCE
Tidak ada urutan yang valid yang dapat ditemukan untuk kumpulan patch.
ERROR_INSTALL_PACKAGE_OPEN_FAILED
Paket penginstalan yang direferensikan oleh jalur tidak dapat dibuka.
ERROR_SUCCESS
Patch berhasil diurutkan.
ERROR_FILE_NOT_FOUND
File .msi tidak ditemukan.
ERROR_PATH_NOT_FOUND
Jalur ke file .msi tidak ditemukan.
ERROR_INVALID_PATCH_XML
Data patch XML tidak valid.
ERROR_INSTALL_PACKAGE_INVALID
Paket penginstalan tidak valid.
ERROR_ACCESS_DENIED
Pengguna yang bukan administrator mencoba memanggil fungsi dengan konteks pengguna yang berbeda.
ERROR_BAD_CONFIGURATION
Data konfigurasi untuk patch atau produk terdaftar tidak valid.
ERROR_UNKNOWN_PRODUCT
GUID ProductCode yang ditentukan tidak terdaftar.
ERROR_FUNCTION_NOT_CALLED
Pemasang Windows versi 3.0 diperlukan untuk menentukan urutan patch terbaik. Fungsi ini dipanggil dengan szProductCode belum diinstal dengan Pemasang Windows versi 3.0.
ERROR_CALL_NOT_IMPLEMENTED
Kesalahan ini dapat dikembalikan jika fungsi dipanggil dari tindakan kustom atau jika MSXML 3.0 tidak diinstal.
ERROR_UNKNOWN_PATCH
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

MSIPATCHSEQUENCEINFO

MsiDetermineApplicablePatches

Tidak Didukung di Windows Installer 2.0 dan yang lebih lama

ProductCode