Aplicación de revisiones en las regiones seleccionadas de un archivo
Al aplicar revisiones en los archivos que tienen contenido variable, puede ser necesario conservar las regiones seleccionadas del archivo de destino para evitar la pérdida de información crítica. Por ejemplo, algunas aplicaciones marcan la información de usuario en el archivo ejecutable. Dado que el contenido del archivo de destino puede depender del equipo en el que está instalada la aplicación, resulta difícil determinar si un archivo determinado es un destino válido para la revisión. Una revisión también puede sobrescribir la información de usuario escrita en el archivo de destino.
Al generar un archivo de propiedades de creación de revisiones (PCP) con Msimsp.exe y PATCHWIZ.DLL, puede especificar que la información de determinadas regiones del archivo de destino se omita durante la aplicación de revisiones. También puede especificar que la información de otras regiones del archivo de destino se conserve y copie en una ubicación de desplazamiento en el archivo actualizado. Especifique qué regiones del archivo de destino se omitirán y qué regiones se conservarán al crear las tablas TargetFiles OptionalData, ExternalFiles y FamilyFileRanges.
Use la columna RetainOffsets de la tabla TargetFiles OptionalData y las columnas RetainOffsets y RetainLengths de la tabla FamilyFileRanges para copiar un intervalo de información del archivo de destino a un intervalo de desplazamiento en el archivo actualizado. La información de este intervalo se conserva. Especifique la longitud del intervalo mediante las columnas RetainLengths de la tabla FamilyFileRanges. La longitud del intervalo conservado es la misma en los archivos de destino y en los actualizados. Especifique el desplazamiento del intervalo en el archivo de destino mediante la columna RetainOffsets de la tabla TargetFiles OptionalData. Especifique el desplazamiento del intervalo en el archivo actualizado mediante la columna RetainOffsets de la tabla FamilyFileRanges. Por lo tanto, el intervalo del archivo de destino conservado es el valor de RetainOffsets en la tabla TargetFiles OptionalData más RetainLengths. Esta información se copia en el archivo de actualización del intervalo que proporciona el valor de RetainOffsets en las tablas FamilyFileRanges más RetainLengths. Puede especificar varios intervalos, pero el orden de las longitudes debe coincidir con el orden de los desplazamientos.
Use la tabla TargetFiles OptionalData para omitir un intervalo del archivo de destino. La revisión todavía puede sobrescribir la información de este intervalo del archivo de destino. Especifique el desplazamiento del intervalo en la columna IgnoreOffsets y su longitud en la columna IgnoreLengths. Puede especificar varios intervalos, pero el orden de las longitudes debe coincidir con el orden de los desplazamientos.
Los valores de las longitudes y las columnas de desplazamiento pueden ser decimales o hexadecimales. PATCHWIZ.DLL trata el valor como hexadecimal si tiene el prefijo "0x". Las columnas son de cadena, por lo que PATCHWIZ.DLL convierte los valores en ULONG. La columna length especifica la longitud en bytes.