УЧЕБНИК ПО АВТОУСТАНОВКЕ WINDOWS

       

Файл Txtsetup.sif


(с) Gosh http://gosh.msfn.org/txtsetup.htm

авторский перевод + мелкие дополнения - Volk1234

Txtsetup.sif - это, как следует из названия файла, Text setup system information file - файл установки текстового режима. После текстового режима этот файл не нужен системе, поэтому он не копируется из дистрибутива, не защищен цифровой подписью и не включен в состав файлов, защищаемых SFC. В связи с этим, Txtsetup.sif идеально подходит для целей автоустановки, добавления- удаления компонентов и записей реестра.

Добавление\удаление записей

Удалить строку из Txtsetup.sif проще простого - любой текстовый редактор это может. Также, можно закомментировать строку точкой с запятой (что лучше, если вы не знаете что делаете). А вот добавить строку сложнее, требуется знать синтаксис.

Синтаксис записи в секции копирования Txtsetup.sif:

filename_on_source= diskid, , , , , , , subdir, upgradecode, newinstallcode, spare, spare, newfilename, flag, unknown

Рассмотрим пример:

locsecw.chm = 1, , , , , , , 21, 0, 0, localsec.chm

[locsecw.chm] - файл дистрибутива (понятно, что он находится в i386)

[1] - соответствует секции [SourceDisksNames.x86] в Txtsetup.sif. В данном случае параметр [1] означает,

что файл из оригинальной (RTM) сборки. Значение [100], например, означает принадлежность файла к SP1, SP2.

Отвечает на вопрос ОТКУДА?

[,,,,,,,] - пустые параметры отделенные знаками запятой специфика winnt систем. Точные значения неизвестны.

[21] - указывает папку назначения, секция [WinntDirectories], в данном случае %Windir%\Help

Отвечает на вопрос КУДА?



[0] - upgradecode - режим копирования файла. Предназначен для корректного обновления с более старых ОС.

значения:

0 - Копировать всегда

1 - Копировать только в том случае, если файл присутствует в папке назначения

2 - Не копировать, если файл присутствует в папке назначения

3 - Не копировать файл

[0] - newinstalcode - указывает на "чистую" установку. Необязателен. Если не указан, используется значение по умолчанию = 3, а файл не копируется.


[localsec.chm] - новое имя, переименование происходит при копировании.

Интересное отступление: в первоначальном имени присутствует буква w. Gosh предполагает, что w - это сокращение от workstation, а p - Personal. Так планировалось называть версии XP, аналогично Professional и Home:

cmconW.chm = 1, , , , , , , 21, 0, 0, cmconcepts.chm - xp pro txtsetup.sif

cmconP.chm = 1, , , , , , , 21, 0, 0, cmconcepts.chm - xp home txtsetup.sif

[flag] - флаг копирования (подробнее смотрите Руководство по работе с INF-файлами).

[unknown] - пока не могу сказать, что это, но в родном файле используется для драйверов и системных файлов, принимая значения от 2 до 180.

Теперь рассмотрим другой пример:

autofmt.exe = 1, , , , , , _x, 2, 0, 0, , 1, 2 

[_x] означает, что файл дистрибутива не сжат. Если [_x] отсутствует, программа установки предполагает, что файл сжат. Каждый файл XP перечислен в Layout.inf, вместе с размером в байтах. Размер в байтах, очевидно, зависит от того, сжат файл или нет. Если Txtsetup.sif укажет программе установки, что файл не сжат, то установщик будет сравнивать размер файла с Layout.inf, чтобы удостовериться что размер не был изменен. Если размер файла не соответствует тому, что указан в Layout.inf, установка XP может быть прервана ошибкой.

Важно! Если устанавливается сторонняя программа, размера и имени которой нет в Layout.inf, необходимость использования параметра [_x] отпадает.

Важно! Txtsetup.sif не сообщает программе установки местоположение файлов. Его единственная функция - скопировать нужный файл в нужную папку. Txtsetup.sif запускается после того, как Dosnet.inf скопирует дистрибутив в C:\$WIN_NT$. ~ LS. Txtsetup.sif предполагает, что исходные файлы постоянно находятся в этой папке. При установке с CD\DVD все проще, потому что файлы сразу переписываются в %windir%. В таком варианте Dosnet.inf скорее выполняет второстепенные функции по указанию путей копирования.

Фактически, Txtsetup.sif отвечает за копирование файлов, обеспечение удаления старых папок при апгрейде, создании кустов реестра, первоначальной загрузкой критических драйверов. 

Пример Txtsetup.sif для аддона CCleaner

[SourceDisksFiles]

Cleaner.inf = 100,,,,,,,20,0,0

CCleaner.cab = 100,,,,,,_x,,3,3

1. Как видим, использован параметр [100], то есть указание на SP2 (что не очень принципиально).

2. INF-файл копируется в папку %Windir%\inf [20] для возможности деинсталяции аддона.

3. CAB-файл в папку Windows не копируется [,3,3] и не сжат [_x](?). Файлы из CAB-архива просто устанавливаются с помощью одноименного INF-файла.

 К содержанию


Содержание раздела