Stosowanie poprawek wybranych regionów pliku
Podczas stosowania poprawek plików o zmiennej zawartości może być konieczne zachowanie wybranych regionów pliku docelowego, aby zapobiec utracie krytycznych informacji. Na przykład niektóre aplikacje wstawiają informacje o użytkowniku do pliku wykonywalnego. Ponieważ zawartość pliku docelowego może zależeć od komputera, na którym jest zainstalowana aplikacja, trudno jest ustalić, czy dany plik jest prawidłowym celem poprawki. Informacje o użytkowniku zapisane w pliku docelowym można również zastąpić poprawką.
Podczas generowania pliku właściwości tworzenia poprawek (PCP) z Msimsp.exe i PATCHWIZ.DLLmożna określić, że informacje w niektórych regionach pliku docelowego będą ignorowane podczas stosowania poprawek. Można również określić, że informacje w innych obszarach pliku docelowego mają być przechowywane i kopiowane do przesuniętej lokalizacji w zaktualizowanym pliku. Określasz regiony pliku docelowego, które mają być ignorowane i które regiony mają być zachowywane podczas tworzenia TargetFiles OptionalData, ExternalFilesi FamilyFileRanges tabel.
Użyj kolumny RetainOffsets w tabeli TargetFiles OptionalData oraz kolumn RetainOffsets i RetainLengths w tabeli FamilyFileRanges, aby skopiować określony zakres informacji z pliku docelowego do zakresu przesunięcia w zaktualizowanym pliku. Informacje w tym zakresie są zachowywane. Określ długość zakresu przy użyciu kolumn RetainLengths tabeli FamilyFileRanges. Długość zachowanego zakresu jest taka sama w plikach docelowych i zaktualizowanych. Określ przesunięcie zakresu w pliku docelowym przy użyciu kolumny RetainOffsets tabeli TargetFiles OptionalData. Określ przesunięcie zakresu w zaktualizowanym pliku, używając kolumny RetainOffsets w tabeli FamilyFileRanges. Zakres zachowywanego pliku docelowego jest zatem równy wartości RetainOffsets w tabeli TargetFiles OptionalData plus RetainLengths. Te informacje są kopiowane do pliku aktualizacji w zakresie podanym przez wartość RetainOffsets w tabelach FamilyFileRanges i RetainLengths. Można określić wiele zakresów, ale kolejność długości musi być zgodna z kolejnością przesunięć.
Użyj tabeli TargetFiles OptionalData, aby zignorować zakres pliku docelowego. Informacje w tym zakresie pliku docelowego mogą być nadal zastępowane przez poprawkę. Określ przesunięcie zakresu w kolumnie IgnoreOffsets i jego długość w kolumnie IgnoreLengths. Można określić wiele zakresów, ale kolejność długości musi być zgodna z kolejnością przesunięć.
Wartości w kolumnach długości i przesunięcia mogą być dziesiętne lub szesnastkowe. PATCHWIZ.DLL traktuje wartość jako szesnastkową, jeśli jest poprzedzona "0x". Kolumny są kolumnami ciągów, więc PATCHWIZ.DLL konwertuje wartości na ULONGs. Kolumna length określa długość w bajtach.