Bagikan melalui


Fungsi MsiDeterminePatchSequenceW (msi.h)

Fungsi MsiDeterminePatchSequence mengambil serangkaian file patch, file XML, dan blob XML dan menentukan urutan aplikasi terbaik untuk patch ke produk yang diinstal tertentu. Fungsi ini menyurati patch yang telah diterapkan ke produk dan akun untuk patch usang dan digantikan.

Sintaksis

UINT MsiDeterminePatchSequenceW(
  [in]           LPCWSTR                szProductCode,
  [in, optional] LPCWSTR                szUserSid,
  [in]           MSIINSTALLCONTEXT      dwContext,
  [in]           DWORD                  cPatchInfo,
  [in]           PMSIPATCHSEQUENCEINFOW pPatchInfo
);

Parameter

[in] szProductCode

Produk yang merupakan target untuk set patch. Nilainya harus ProductCode GUID 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 Arti
MSIINSTALLCONTEXT_USERMANAGED
Patch dipertimbangkan untuk semua penginstalan produk yang dikelola per pengguna untuk pengguna yang ditentukan oleh szUserSid. Null szUserSid 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. Null szUserSid 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.

Mengembalikan nilai

Fungsi MsiDeterminePatchSequence mengembalikan nilai berikut.

Nilai Arti
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
ProductCode GUID yang ditentukan tidak terdaftar.
ERROR_FUNCTION_NOT_CALLED
Penginstal Windows versi 3.0 diperlukan untuk menentukan urutan patch terbaik. Fungsi ini dipanggil dengan szProductCode belum diinstal dengan Windows Installer 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.

Komentar

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 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 mengatur uStatus dan dwOrder anggota setiap MSIPATCHSEQUENCEINFO struktur yang ditunjukkan oleh pPatchInfo. Setiap struktur berisi informasi tentang patch tertentu.

Jika fungsi berhasil, struktur MSIPATCHSEQUENCEINFO dari setiap patch yang dapat diterapkan ke produk mengembalikan dengan ERROR_SUCCESS uStatus dan dwOrder lebih besar dari atau sama dengan nol. Nilai dwOrder 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 sama dengan -1. Dalam kasus ini, bidang uStatus ERROR_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 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.

Nota

Header msi.h mendefinisikan MsiDeterminePatchSequence sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosektor 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

Syarat 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 pada 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.
Platform Target 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