Share via


선택한 파일 영역 패치

가변 콘텐츠가 있는 파일을 패치할 때 중요한 정보가 손실되지 않도록 대상 파일의 선택한 영역을 유지해야 할 수 있습니다. 예를 들어 일부 애플리케이션은 사용자 정보를 실행 파일로 스탬프합니다. 대상 파일의 내용은 애플리케이션이 설치된 컴퓨터에 따라 달라질 수 있으므로 특정 파일이 패치의 유효한 대상인지 여부를 확인하기가 어려워집니다. 대상 파일에 기록된 사용자 정보를 패치가 덮어쓸 수도 있습니다.

Msimsp.exePATCHWIZ.DLL을 사용하여 PCP(패치 만들기 속성) 파일을 생성할 때 패치하는 동안 대상 파일의 특정 영역에 있는 정보가 무시되도록 지정할 수 있습니다. 대상 파일의 다른 지역에 있는 정보를 보존하고 업데이트된 파일의 오프셋 위치에 복사하도록 지정할 수도 있습니다. TargetFiles OptionalData, ExternalFilesFamilyFileRanges 테이블을 작성할 때 대상 파일에서 무시할 지역과 유지할 지역을 지정합니다.

TargetFiles OptionalData 테이블의 RetainOffsets 열과 FamilyFileRanges 테이블의 RetainOffsets 및 RetainLengths 열을 사용하여 대상 파일의 정보 범위를 업데이트된 파일의 오프셋 범위로 복사합니다. 이 범위의 정보는 유지됩니다. FamilyFileRanges 테이블의 RetainLengths 열을 사용하여 범위의 길이를 지정합니다. 보존된 범위의 길이는 대상 및 업데이트된 파일에서 동일합니다. TargetFiles OptionalData 테이블의 RetainOffsets 열을 사용하여 대상 파일의 범위 오프셋을 지정합니다. FamilyFileRanges 테이블의 RetainOffsets 열을 사용하여 업데이트된 파일에서 범위의 오프셋을 지정합니다. 따라서 보존된 대상 파일의 범위는 TargetFiles OptionalData 테이블의 RetainOffsets 값과 RetainLengths입니다. 이 정보는 FamilyFileRanges 테이블의 RetainOffsets 값과 RetainLengths에 의해 지정된 범위의 업데이트 파일에 복사됩니다. 여러 범위를 지정할 수 있지만 길이 순서는 오프셋 순서와 일치해야 합니다.

TargetFiles OptionalData 테이블을 사용하여 대상 파일의 범위를 무시합니다. 대상 파일의 이 범위에 있는 정보는 패치를 통해 계속 덮어쓸 수 있습니다. IgnoreOffsets 열의 범위 오프셋과 IgnoreLengths 열의 길이를 지정합니다. 여러 범위를 지정할 수 있지만 길이 순서는 오프셋 순서와 일치해야 합니다.

길이 및 오프셋 열의 값은 10진수 또는 16진수일 수 있습니다. PATCHWIZ.DLL은 “0x”가 접두사인 경우 값을 16진수로 처리합니다. 열은 문자열 열이므로 PATCHWIZ.DLL은 값을 ULONG로 변환합니다. 길이 열은 길이를 바이트 단위로 지정합니다.