Korrigera valda regioner i en fil
När du korrigerar filer med variabelt innehåll kan det vara nödvändigt att behålla valda regioner i målfilen för att förhindra att viktig information går förlorad. Vissa program stämplar till exempel användarinformation i den körbara filen. Eftersom innehållet i målfilen kan bero på vilken dator programmet är installerat på blir det svårt att avgöra om en viss fil är ett giltigt mål för korrigeringen. Användarinformation som skrivits i målfilen kan också skrivas över av en korrigering.
När du genererar en PCP-fil (patch creation properties) med Msimsp.exe och PATCHWIZ.DLLkan du ange att informationen i vissa regioner i målfilen ignoreras under korrigeringen. Du kan också ange att information i andra regioner i målfilen ska behållas och kopieras till en förskjutningsplats i den uppdaterade filen. Du anger vilka regioner i målfilen som ska ignoreras och vilka regioner som ska behållas när du redigerar TargetFiles OptionalData, ExternalFilesoch FamilyFileRanges tabeller.
Använd kolumnen RetainOffsets i tabellen TargetFiles OptionalData och kolumnerna RetainOffsets och RetainLengths i tabellen FamilyFileRanges för att kopiera ett informationsintervall från målfilen till ett förskjutningsintervall i den uppdaterade filen. Informationen i det här intervallet behålls. Ange längden på intervallet med hjälp av kolumnerna RetainLengths i tabellen FamilyFileRanges. Längden på det bevarade intervallet är densamma i målfilerna och de uppdaterade filerna. Ange förskjutningen av intervallet i målfilen med hjälp av kolumnen RetainOffsets i tabellen TargetFiles OptionalData. Ange förskjutningen av intervallet i den uppdaterade filen med hjälp av kolumnen RetainOffsets i tabellen FamilyFileRanges. Intervallet för den kvarhållna målfilen är därför värdet för RetainOffsets i tabellen TargetFiles OptionalData plus RetainLengths. Den här informationen kopieras till uppdateringsfilen i intervallet som anges av värdet för RetainOffsets i FamilyFileRanges-tabellerna plus RetainLengths. Du kan ange flera intervall, men längdens ordning måste matcha ordningen på förskjutningarna.
Använd tabellen TargetFiles OptionalData för att ignorera ett intervall av målfilen. Information i det här intervallet av målfilen kan fortfarande skrivas över av korrigeringen. Ange förskjutningen av intervallet i kolumnen IgnoreOffsets och dess längd i kolumnen IgnoreLengths. Du kan ange flera intervall, men längdens ordning måste matcha ordningen på förskjutningarna.
Värdena i kolumnerna längder och förskjutningar kan vara decimaler eller hexadecimala. PATCHWIZ.DLL behandlar värdet som hexadecimalt om det föregås av "0x". Kolumnerna är strängkolumner, så PATCHWIZ.DLL konverterar värdena till ULONG:er. Längdkolumnen anger längden i byte.