Menambal Wilayah Yang Dipilih dari File

Saat menambal file yang memiliki konten variabel, mungkin perlu untuk mempertahankan wilayah file target yang dipilih untuk mencegah hilangnya informasi penting. Misalnya, beberapa aplikasi memberi stempel informasi pengguna ke dalam file yang dapat dieksekusi. Karena konten file target mungkin bergantung pada komputer tempat aplikasi diinstal, menjadi sulit untuk menentukan apakah file tertentu adalah target yang valid untuk patch. Informasi pengguna yang ditulis dalam file target juga dapat ditimpa oleh patch.

Saat Anda membuat file properti pembuatan patch (PCP) dengan Msimsp.exe dan PATCHWIZ.DLL, Anda dapat menentukan bahwa informasi di wilayah tertentu dari file target diabaikan selama patching. Anda juga dapat menentukan bahwa informasi di wilayah lain dari file target dipertahankan dan disalin ke lokasi offset dalam file yang diperbarui. Anda menentukan wilayah mana dari file target yang akan diabaikan dan wilayah mana yang akan dipertahankan saat menulis tabel TargetFiles OptionalData, ExternalFiles, dan FamilyFileRanges .

Gunakan kolom RetainOffsets dari tabel TargetFiles OptionalData dan kolom RetainOffsets dan RetainLengths dari tabel FamilyFileRanges untuk menyalin berbagai informasi dari file target ke rentang offset dalam file yang diperbarui. Informasi dalam rentang ini dipertahankan. Tentukan panjang rentang menggunakan kolom RetainLengths dari tabel FamilyFileRanges. Panjang rentang yang dipertahankan sama dalam file target dan yang diperbarui. Tentukan offset rentang dalam file target menggunakan kolom RetainOffsets dari tabel TargetFiles OptionalData. Tentukan offset rentang dalam file yang diperbarui menggunakan kolom RetainOffsets dari tabel FamilyFileRanges. Oleh karena itu, rentang file target yang dipertahankan adalah nilai RetainOffsets dalam tabel TargetFiles OptionalData ditambah RetainLengths. Informasi ini akan disalin ke file pembaruan dalam rentang yang diberikan oleh nilai RetainOffsets dalam tabel FamilyFileRanges ditambah RetainLengths. Anda dapat menentukan beberapa rentang tetapi urutan panjangnya harus sesuai dengan urutan offset.

Gunakan tabel TargetFiles OptionalData untuk mengabaikan rentang file target. Informasi dalam rentang file target ini masih dapat ditimpa oleh patch. Tentukan offset rentang di kolom IgnoreOffsets dan panjangnya di kolom IgnoreLengths. Anda dapat menentukan beberapa rentang tetapi urutan panjangnya harus sesuai dengan urutan offset.

Nilai dalam kolom panjang dan offset dapat berupa desimal atau heksadesimal. PATCHWIZ.DLL memperlakukan nilai sebagai heksadesimal jika diawali dengan "0x". Kolom adalah kolom string, jadi PATCHWIZ.DLL mengonversi nilai menjadi ULONG. Kolom panjang menentukan panjang dalam byte.