Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   Внутренности Установщика WinXP (http://forum.oszone.net/showthread.php?t=106849)

Mr dUSHA 13-05-2008 01:16 801052

Внутренности Установщика WinXP
 
DEL.

Mr dUSHA 17-06-2008 14:14 828183

UPD

Mr dUSHA 23-06-2008 16:00 832978

1. Обновления в описаниях.

2. Вопрос к общественности: Кто-нибудь знает, в каких случаях и какими утилитами используется ключ установщика -plugplay ?

В оригинальном установщике, запущенном такой строкой setup.exe -plugplay не происходит запуска инсталлятора ОС функцией InstallWindowsNt.
Вместо этого запускается функция, устанавливающая драйвера устройств. Но вот кем и когда это используется?

Otvertochnik 24-06-2008 12:55 833537

Насколько я не в курсе - setup во время поиска устройств пишет "может потребоваться/случиться перезагрузка"
Что именно он имеет в виду не совсем понятно. То ли запуск устройсва породит кучку новых устройств и надо перезагрузиться, чтоб ничего не пропустить. То ли если будут проблемы при запуске драйвера устройства - рестарт сетапа с этого места, с пропуском неподходящего драйвера :dont-know

alexy 03-07-2008 10:04 841142

Наверное сюда. Устанавливаю английскую версию Windows XP SP3. Хочу всего лишь переименовать названия этапов, появляющихся над прогрэсс-баром в левом нижнем углу во время графического этапа установки. Всё это разбросано в файле syssetup.dll. Может есть у кого что-то вроде таблицы, какой русурс, какая строка и её перевод?

Mr dUSHA 03-07-2008 10:56 841178

Цитата:

Цитата alexy
Может есть у кого что-то вроде таблицы, какой русурс, какая строка и её перевод? »

Resource Hacker'ом нужные строки из русской версии этой длл в твою английскую перенеси.

alexy 03-07-2008 11:52 841211

Цитата:

Цитата Mr dUSHA
Resource Hacker'ом нужные строки »

Строки в студию! Я и сам могу воспользоваться редактором ресурсов. Но разбросаны эти строки по файлу. Сидеть тупо перед монитором и смотреть что пишется на экране у меня времени нет - работа, знаете ли. Поэтому и спросил, есть ли у кого что готовое. Достаточно просто перечисления номеров ресурсов. Остальное сам найду.

Mr dUSHA 03-07-2008 13:28 841297

Цитата:

Цитата alexy
Достаточно просто перечисления номеров ресурсов. Остальное сам найду. »

Строковые таблици 73 и 74. В них все нужные строки и лежат.

alexy 03-07-2008 15:03 841373

Цитата:

Цитата Mr dUSHA
Строковые таблици 73 и 74 »

Не только там...

batcom 06-07-2008 12:36 843727

Кто знает по какому алгоритму вычислют контрольную сумму установочным файлам (напр setupldr.exe)?? В PE заголовке есть поле CheckSum котое содержит загадочное число, возможно это CRC32 но не всего файла? тогда что не пропускать? потому-что программы умеющие вычислять CRC32 выдают другие данные

Mr dUSHA 06-07-2008 16:11 843885

Цитата:

Цитата batcom
Кто знает по какому алгоритму вычислют контрольную сумму установочным файлам »

Код:

DWORD MapFileAndCheckSum(
  PTSTR Filename,
  PDWORD HeaderSum,
  PDWORD CheckSum
);

Копирайт MSDN
;)

Mr dUSHA 06-07-2008 18:46 843976

Содержимое этого поста перенесено сюда:
http://forum.oszone.net/thread-110577.html

batcom 08-07-2008 17:17 845921

Mr dUSHA, Про использование API функции MapFileAndCheckSum, для этих целей стало известно в первую очередь, меня же интересует по какому алгоритму посчитана контрольная сумма, насколько я понял это не CRC32 не СRС16, наверняка не MD5 ;), ну и вот что-за там контрольная сумма, кстати MapFileAndCheckSum считает по такому-же алгоритму(в описании говорится что она считает CRC32 вроде), тоглда результат не сама контрольная сумма, или они считают сумму не всего файла, а каких-то участков, инфы нету че-то, я в программировании конечно ноль, но все-же интересно...

Mr dUSHA 09-07-2008 11:18 846633

Цитата:

Цитата batcom
или они считают сумму не всего файла, а каких-то участков, »

Он считает КС всего файла, за исключением того DWORDа, в котором в заголовке собственно сама КС и прописывается.

Oleg_II 03-08-2008 21:46 867149

Mr dUSHA,
Цитата:

Цитата Mr dUSHA
2. Вопрос к общественности: Кто-нибудь знает, в каких случаях и какими утилитами используется ключ установщика -plugplay ?
В оригинальном установщике, запущенном такой строкой setup.exe -plugplay не происходит запуска инсталлятора ОС функцией InstallWindowsNt.
Вместо этого запускается функция, устанавливающая драйвера устройств. Но вот кем и когда это используется?

Вобщем-то, тоже очень интересно. Хотелось бы получить что-то вроде сиспрепа для определения оборудования на новом компе (клонирование), но без перегрузки в самом конце - сделать ее позднее самостоятельно.

На MSFN.ORG был найдет такой рег-файл:
Код:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\Setup]
"SetupType"=dword:00000001
"SystemSetupInProgress"=dword:00000001
"CmdLine"=hex(7):73,00,65,00,74,00,75,00,70,00,2e,00,65,00,78,00,65,00,20,00,\
  2d,00,6e,00,65,00,77,00,73,00,65,00,74,00,75,00,70,00,20,00,2d,00,6d,00,69,\
  00,6e,00,69,00,00,00,00,00
"MiniSetupDoPnP"=dword:00000001
"MiniSetupInProgress"=dword:00000001

В ключе "CmdLine" там стоит "setup.exe -newsetup -mini" и при применении этого файла к обычной системе после перезагрузки начинается миниустановка как при использовании SysPrep (причем, самой утилиты на компе просто нет), только все параметры приходится вбивать вручную (не знаю как привязать сюда SysPrep.inf).

Я пытался заменить "setup.exe -newsetup -mini" на "setup.exe -plugplay", но после перезагрузки и лого Винды просто черный экран с указателем мышки на несколько секундр, потом перегрузка и при следующей загрузке сообщение, что система не установлена до конца, надо опять переставить. Т.е. что-то не работает (как хотелось бы...). Пробовал применять файл без двух последних ключей с мини-установкой. Тоже не работает...

Можно вопрос? А есть ли теоретическа возможность отключить насильственную перегрузку компа в конце этой процедуры сетапа (в моем случае для мини-установки)? Извиняюсь, если влез не туда :) Тогда просто проигнорируйте :)

Mr dUSHA 04-08-2008 16:44 867710

Цитата:

Цитата Oleg_II
В ключе "CmdLine" там стоит "setup.exe -newsetup -mini" и при применении этого файла к обычной системе после перезагрузки начинается миниустановка как при использовании SysPrep »

SysPrep просто прописывает эти параметры в реестр, а дальше миниустановку за него все делает сам стандартный установщик InstallWindowsNt из библиотеки Syssetup.dll. Именно его в таком случае setup.exe и запускает, а сам больше ничего не делает.

"setup.exe -plugplay" запускает только процедуру установки драйверов устройств. Эта процедура находится прямо в теле setup.exe.

Цитата:

А есть ли теоретическа возможность отключить насильственную перегрузку компа в конце этой процедуры сетапа
Можно написать свой setup.exe, который кроме вызова InstallWindowsNt будет реализовать и другой, нужный вам функционал до или после основного процеса установки. Так сделал я, и так например сделал BoaSoft для своего драйверного аддона. Суть в том, что перезагрузка происходит только когда завершается setup.exe.

Oleg_II 04-08-2008 18:22 867787

Mr dUSHA
Спасибо за ответ. Но написать самому не получится - не тот уровень... А вот если бы можно было хотя бы перегрузку отключить правкой какого-нибудь файлика, то можно было бы попробовать :) Причем, речь идет об уже установленной системе, там где не полная установка, а только минисетап запускается. В идеале бы только определение драйверов и устройсв запускать, а все остальное нафик...

Mr dUSHA 04-08-2008 18:55 867806

Цитата:

Цитата Oleg_II
А вот если бы можно было хотя бы перегрузку отключить правкой какого-нибудь файлика »

Этого не знаю. Не задавался такой целью.

Boa Soft 07-08-2008 15:52 870364

MS, как всегда, немного врет. Только что попробовал применить волшебный рег-файл к Home edishn.

Мини - установка запустилась и прошла полностью нормально. Хотя, MS пишет, что мини-утановка невозможна для хомяка. Поэтому и я не заморачивался при работе с образами по поводу мини-setup.

Так что, наверное в новой версии для заливки напишу свой фейк-сетап и буду использовать его.
sysprep не дает на хомке выставить ключик -mini, но внести рег-файл перед завершением работы запечатаного образа не проблема.

Oleg_II,
Цитата:

Цитата Oleg_II
В идеале бы только определение драйверов и устройсв запускать, а все остальное нафик... »

UpdatePnpDeviceDrivers();

Пути к драйверам должны уже быть внесены в реестр.

Код:

function IsNtOs:boolean;
var
 ver: TOSVERSIONINFO;
begin
 ver.dwOSVersionInfoSize := Sizeof(ver);
 GetVersionEx(ver);
 result:= ver.dwPlatformId=VER_PLATFORM_WIN32_NT;
end;


function AdjustDriverPrivileges:boolean;
var
 handle, ph: THandle;
 pid, n: DWORD;
 luid: TLargeInteger;
 priv: TTokenPrivileges;
 dummy: PTokenPrivileges;
 Err: DWORD;
begin
 if IsNtOs then begin
    result:=false;
    pid := GetCurrentProcessId;
    ph := OpenProcess(PROCESS_ALL_ACCESS, false, pid);
    if not OpenProcessToken(ph, TOKEN_ADJUST_PRIVILEGES, handle) then exit;
    if not  LookupPrivilegeValue(nil, 'SeLoadDriverPrivilege', luid) then exit;
    priv.PrivilegeCount := 1;
    priv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
    priv.Privileges[0].Luid := luid;
    dummy := nil;
    AdjustTokenPrivileges(handle, false, priv, 0, dummy^, n);
    Err := GetLastError;
    if Err <> ERROR_SUCCESS then exit;
 end;
 result:=true;
end;

function CleanupPfantom: boolean;
var
 hAllDevices: H_DEV;
 dwInfo: DWORD;
 Data: SP_DEVINFO_DATA;
 Status: DWORD;
 ProbNumer: DWORD;
 rmdParams:TSPRemoveDeviceParams;
begin
 result:=false;
 hAllDevices :=  SetupDiGetClassDevsEx(nil, nil, 0,
    DIGCF_ALLCLASSES, nil, nil, 0);
 if DWORD(hAllDevices) <> INVALID_HANDLE_VALUE then
  try
    FillChar(Data, SizeOf(SP_DEVINFO_DATA), 0);
    Data.cbSize := SizeOf(SP_DEVINFO_DATA);
    dwInfo := 0;
    if SetupDiEnumDeviceInfo(hAllDevices, dwInfo, Data) then
    begin
      while SetupDiEnumDeviceInfo(hAllDevices, dwInfo, Data) do
      begin
        if CM_Get_DevNode_Status(@Status, @ProbNumer, Data.DevInst, 0) = CR_NO_SUCH_DEVNODE then
          if Status = 0 then begin
              rmdParams.ClassInstallHeader.cbSize := sizeof(SP_CLASSINSTALL_HEADER);
              rmdParams.ClassInstallHeader.InstallFunction := DIF_REMOVE;
              rmdParams.Scope := DI_REMOVEDEVICE_GLOBAL;
              rmdParams.HwProfile := 0;
              SetupDiSetClassInstallParams(hAllDevices, @Data, @rmdParams.ClassInstallHeader, sizeof(TSPRemoveDeviceParams));
              SetupDiCallClassInstaller(DIF_REMOVE,hAllDevices,@Data);
              {CM_Uninstall_DevNode( Data.DevInst,0); }
              result:=true;
          end;
        Inc(dwInfo);
      end;
    end;
  finally
    if DWORD(hAllDevices) <> INVALID_HANDLE_VALUE then
    SetupDiDestroyDeviceInfoList(hAllDevices);
  end;
end;

function IsProblemPresent:boolean;
var
 hAllDevices: H_DEV;
 dwInfo: DWORD;
 Data: SP_DEVINFO_DATA;
 Status: DWORD;
 ProbNumer: DWORD;
begin
 result:=false;
 hAllDevices :=  SetupDiGetClassDevsEx(nil, nil, 0,
    DIGCF_PRESENT or DIGCF_ALLCLASSES, {hDev} nil, nil, 0);
 if DWORD(hAllDevices) <> INVALID_HANDLE_VALUE then
  try
    FillChar(Data, SizeOf(SP_DEVINFO_DATA), 0);
    Data.cbSize := SizeOf(SP_DEVINFO_DATA);
    dwInfo := 0;
    if SetupDiEnumDeviceInfo(hAllDevices, dwInfo, Data) then
    begin
      while SetupDiEnumDeviceInfo(hAllDevices, dwInfo, Data) do
      begin
        if CM_Get_DevNode_Status(@Status, @ProbNumer, Data.DevInst, 0) = CR_SUCCESS then
          if (Status and DN_HAS_PROBLEM)<>0 then begin
              result:=true;
              exit;
          end;
        Inc(dwInfo);
      end;
    end;
  finally
    if DWORD(hAllDevices) <> INVALID_HANDLE_VALUE then
    SetupDiDestroyDeviceInfoList(hAllDevices);
  end;
end;


function DeleteProblemDevice: boolean;
var
 hAllDevices: H_DEV;
 dwInfo: DWORD;
 Data: SP_DEVINFO_DATA;
 Status: DWORD;
 ProbNumer: DWORD;
 rmdParams:TSPRemoveDeviceParams;
begin
 result:=false;
 hAllDevices :=  SetupDiGetClassDevsEx(nil, nil, 0,
    DIGCF_PRESENT or DIGCF_ALLCLASSES, nil, nil, 0);
 if DWORD(hAllDevices) <> INVALID_HANDLE_VALUE then
  try
    FillChar(Data, SizeOf(SP_DEVINFO_DATA), 0);
    Data.cbSize := SizeOf(SP_DEVINFO_DATA);
    dwInfo := 0;
    if SetupDiEnumDeviceInfo(hAllDevices, dwInfo, Data) then
    begin
      while SetupDiEnumDeviceInfo(hAllDevices, dwInfo, Data) do
      begin
        if CM_Get_DevNode_Status(@Status, @ProbNumer, Data.DevInst, 0) = CR_SUCCESS then
          if (Status and DN_HAS_PROBLEM)<>0 then begin
              rmdParams.ClassInstallHeader.cbSize := sizeof(SP_CLASSINSTALL_HEADER);
              rmdParams.ClassInstallHeader.InstallFunction := DIF_REMOVE;
              rmdParams.Scope := DI_REMOVEDEVICE_GLOBAL;
              rmdParams.HwProfile := 0;
              SetupDiSetClassInstallParams(hAllDevices, @Data, @rmdParams.ClassInstallHeader, sizeof(TSPRemoveDeviceParams));
              SetupDiCallClassInstaller(DIF_REMOVE,hAllDevices,@Data);
              {CM_Uninstall_DevNode( Data.DevInst,0); }
              result:=true;
          end;
        Inc(dwInfo);
      end;
    end;
  finally
    if DWORD(hAllDevices) <> INVALID_HANDLE_VALUE then
    SetupDiDestroyDeviceInfoList(hAllDevices);
  end;
end;

function Enumerate:boolean;
var
 dwInfo: DWORD;
 Status: DWORD;
begin
 Status:= CM_Locate_DevNode(dwInfo ,nil, CM_LOCATE_DEVNODE_NORMAL);
 result:= CM_Reenumerate_DevNode(Status, CM_REENUMERATE_NORMAL) = CR_SUCCESS;
end;

function WaitEndPnp(WaitProc: TWaitMsgProc): boolean;
var
  WaitTime:integer;
begin
  WaitTime:=100;
  result:=false;
  if CMP_WaitNoPendingInstallEvents(0) = WAIT_OBJECT_0 then exit;
  if CMP_WaitNoPendingInstallEvents(0) = WAIT_FAILED  then exit;
  while  (CMP_WaitNoPendingInstallEvents(100) = WAIT_TIMEOUT) and
        (WaitTime>0)  do begin
    if @WaitProc<>nil then WaitProc;
    dec(WaitTime);
    result:=true;
  end;
end;


function UpdatePnpDrivers(WaitProc: TWaitMsgProc):boolean;
begin
  if AdjustDriverPrivileges then begin
    DeleteProblemDevice;
    Enumerate;
    sleep(1000);
    WaitEndPnp(WaitProc);
    result:= UpdatePnpDeviceDrivers = 0;
    WaitEndPnp(WaitProc);
  end else result:=false;
end;


Oleg_II 07-08-2008 19:21 870548

Boa Soft
Вот спинным мозгом чувствую, что это то, чего хотелось :) , а признаться стыдно, что не совсем понимаю, куда это применить... Не подскажете в общих чертах куда и как это применить?

Еще раз напомню, чего хотелолсь бы получить: у меня этот регфайл тоже работает, но хотелось бы чтобы автоопределение устройств начиналось автоматом и компьютер потом не перегружался. В идеале - только определение устройств и все! Все остальные процессы (установка сети, компонентов и прочее) желательно бы пропустить вообще.

Почему автоматом - столкнулся с тем, что на некоторых компах мышь и клавиатура при переносе имиджа не работают. Поковырял и вроде нашел способ поддержки мыши в образе в такой ситуации, но срабатывает он только если есть сиспреп и файл ответов или вообще без применения мини-установки через некоторое время после полной загрузки системы. Хотелось бы того же, что происходит при мини-установке для нормального определения драйверов (но тоже не полной - читайте дальше :)

Почему не перегружать... Хм... Тут немножко антинаучные мысли - сильно уменьшенная система запускается сразу в РАМ и там желательно чтобы подхватила все новые устройства как это делает BartPE, а такое возможно только при PNP установщика оси, насколько я понимаю... Соответственно, раз система загружается в РАМ, то перегрузки допускать нельзя - изменения все равно не сохранятся... Вобщем-то все и так работает, новые устройства находятся в самой системе, но есть проблемы с некоторыми контроллерами жестких дисков (САТА), не видит, гад... Т.е. надо как-то по другому их инициировать (хочется надеятся, что процедура мини-установки их найдет).

ЗЫ Про заливки. Сейчас на Руборде я ковыряю китайскую заливку (выложил там самую последнюю версию от одного известного сборщика и будет еще одна от серьезного форума, копаюсь и делюсь впечатлениями). Китайцы добились очень хороших успехов в этой области - их заливки встают практически на любое железо с правильным определением любых ХАЛов, драйверов контроллеров (включая и "проблемные" AHCI), не имеют проблем с мышами и клавиатурами, да и решения вообще интересные, можно сказать даже изящные - образ полной необрезанной системы (даже длл-кэш присутствует) вместе с МС Офисом и еще кучей софта занимает всего 650МВ ;) Если интересно, то загляните :)
Кстати, на этом форуме тоже есть топик по заливкам-клонированию? Было бы интересно почитать :)

Boa Soft 08-08-2008 00:06 870750

Oleg_II,

Оно самое. Я много много почепнул для себя у Кетайцев в области автодетекта хал для разных систем.

С мышами все просто - надо пользоватся суспреп с соответствующими параметрами. Тогда он добавит все мышино-клавные контроллеры в список критических устройств и далее проблем не будет.

То, что я запостил - это код процедуры удаления неопорзнанных и нустановленных устройств и запус энумерации и обновления драйверов. Код - TurboDelphi, но, можно применить для любой версии длелфы (окромя 1 - оно под 3.11 и 16 бит)

Я уже полгода на зад перевел все производство на заливку с образов. Экономит кучу времени. За все время попался 1 бук. на котором заливка тупо его вырубала. поддержку рейдов я не делал, ибо редкая вещь, и со стенда на рейд-массив не зальеш.

Oleg_II 08-08-2008 05:44 870843

Boa Soft
Ну, до Дельфи мне тоже пока далеко, но код аккуратно сохранил в свои закрома, может когда-то пригодится. Спасибо!

Про мышей - дык с сиспрепом и так работает, если есть файл ответов и мини-установка, даже добавлять в критические устройства вроде и не надо :) Вот если сиспрепа нет, допустим, применить тот файлик, то на моих Леново выскочит окошко о начале мини-установки и все! дальше не пойдет, потому что нужно там на кнопке с Ok нажать... Или если тоже без сиспрепа и без рег-файла просто при загрузке системы: еслит там был пароль, то так на окошке логина и встанет - ни пароль ввести, ни даже перезагрузку сделать - мышь и клава мертвы... если же пароля не было, то в систему-то войдет, но потом начнется обнаружение новых устройств и тоже надо будет либо клавой, либо мышью воспользоваться, а они-то мертвы! :(

Я нашел решение для загружаемой системы - предварительно применяю другой рег-файл и несколько файликов из DRIVER.CAB и SP3.CAB добавляю в нужне места. Но это работает только при прямой загрузке системы (без процесса мини-установки), да и то только через минуту после полной загрузки, а до этого просто тупо на экран смотрю...

Кстати, только сейчас подумал: может можно как-то хакнуть NEWDEV.DLL, чтобы определение новых устройств не спрашивало подтверждения, а устанавливало все устройства подряд автоматически? Тогда, правда, и файлы драйверов, наверно, надо будет в папку INF складывать, потому что выбора откуда драйвера брать уже не будет? Или он из другой папки тоже будет брать, если ее путь будет в реестре уаказан?

Не глянете NEWDEV.DLL? :)

Boa Soft 09-08-2008 14:13 871683

Цитата:

Цитата Oleg_II
Кстати, только сейчас подумал: может можно как-то хакнуть NEWDEV.DLL, чтобы определение новых устройств не спрашивало подтверждения, а устанавливало все устройства подряд автоматически? Тогда, правда, и файлы драйверов, наверно, надо будет в папку INF складывать, потому что выбора откуда драйвера брать уже не будет? Или он из другой папки тоже будет брать, если ее путь будет в реестре уаказан? »


Копать надо factory.exe. Она каим-то образом запрещает юзерский интерфейс при обновлении устройств. Об этом и в логах sysetup есть записи.

У меня тоже есть подобная проблема - у меня USB KVM, и, соответственно, подключая машины для ремонта приходится дожидатся определения мыши и клавиатуры. Но, если выскочит окно определения модуля подключения монитора, то ой. Курим бамбук и идем за PS/2 клавой. К сожалению, не удалось купить двустандартный KVM (PS2/USB).

Если на счет окон - могу кинуть код простенькой проги, которая тупо нажимает кноки далее и готово мастера оборудования. Но, это спасет только после логона.

Цитата:

Цитата Oleg_II
Я нашел решение для загружаемой системы - предварительно применяю другой рег-файл и несколько файликов из DRIVER.CAB и SP3.CAB добавляю в нужне места. Но это работает только при прямой загрузке системы (без процесса мини-установки), да и то только через минуту после полной загрузки, а до этого просто тупо на экран смотрю... »

Не можете проделится? А то при установки с диска на KVM свиче иногда потом не работает PS/2 мыш и клава.

Цитата:

Цитата Oleg_II
Вот если сиспрепа нет, допустим, применить тот файлик, то на моих Леново выскочит окошко о начале мини-установки и все! дальше не пойдет, потому что нужно там на кнопке с Ok нажать... »

Надо покопать файл ответов на предмет полной автоматизации сего дела.

Oleg_II 09-08-2008 14:44 871693

Boa Soft
Немножечко меня не поняли :) Если применить тот рег-файл, что на прошлой странице, то клон на другом компьютере начнет мини-установки даже без сиспрепа (ни его, ни файла ответов, ни даже папки сиспреп в корне не надо - начнется без этого). Но надо будет на вопросы отвечать, т.е. вводить информацию с клавиатуры и по кнопкам жмакать. Вот тут-то может поджидать засада - на некоторых компах не мышшь и клавиатура может бездействовать...

Если есть сиспреп и файл ответов, то все проиходит автоматом (если файл ответов правильно заполнен), здесь как раз проблем нет.

Но в любом случае мне это не подходит - с сиспрепом или без оного, но с мини-установкой все заканчивается автоматической перегрузкой в конце процесса мини-установки. А мне надо бы не перегружаться... Да и вообще бы не весь процесс мини-установки проходить, а чтобы работо только определение и установка драйверов и все! Потому что для моих целей перегружаться нельзя...

Если же дать самой системе находить новые устройства, то там проблема с подключением жестких дисков... По крайней мере у меня уже есть один неудачный опыт (ноутбук Леново).

Тут вроде забрезжил свет в тонеле - может быть удастся подключать контроллеры дисков после загрузки (тоже антинаучная практика, но в РЕ вроде работает, по крайней мере есть сообщения об успешных подключениях :)

Кстати, тут еще нашел у китайцев интересную инфу про определение PNP через реестр, но пока руки не дошли. Там же еще говорилось, что автоматом в тихую могут определятся только подписанные драйвера (даже при отключении обязательной проверки через реестр). Как с насущными проблемами разберусь, можно будет посмотреть.

Про рег-файл для подключения мыши, если система при первой загрузке на новом железе ее не видит. Я взял его из плагинов БартРЕ и, возможно, там есть что-то лишнее или наоборот, чего-то не хватает. Если система с автологином, то он у меня работает, но не сразу, а примерно в тот момент, когда система начинает находить новое оборудование. Очень может быть, что я не все файлы добавил в нужные папки или упустил что-то из установок в реестр. Я тут расковырял свежую китайскую заливку, у них такой проблемы вроде нет, сейчас выуживаю из нее установки :)

Вот собственно тот файл поддержки мыши:
Код:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\GENERIC_HID_DEVICE]
"ClassGUID"="{745a17a0-74d3-11d0-b6fe-00a0c90f57da}"
"Service"="HidUsb"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\HID#IrDevice&COL05]
"ClassGUID"="{4D36E96B-E325-11CE-BFC1-08002BE10318}"
"Service"="kbdhid"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\HID#IrDevice&COL06]
"ClassGUID"="{4D36E96B-E325-11CE-BFC1-08002BE10318}"
"Service"="kbdhid"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\HID#IrDevice&COL07]
"ClassGUID"="{4D36E96B-E325-11CE-BFC1-08002BE10318}"
"Service"="kbdhid"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\HID_DEVICE]
"ClassGUID"="{745a17a0-74d3-11d0-b6fe-00a0c90f57da}"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\HID_DEVICE_SYSTEM_GAME]
"ClassGUID"="{745a17a0-74d3-11d0-b6fe-00a0c90f57da}"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\HID_DEVICE_SYSTEM_KEYBOARD]
"ClassGUID"="{4D36E96B-E325-11CE-BFC1-08002BE10318}"
"Service"="kbdhid"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\HID_DEVICE_SYSTEM_MOUSE]
"ClassGUID"="{4D36E96F-E325-11CE-BFC1-08002BE10318}"
"Service"="mouhid"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\HID_DEVICE_UP:000C_U:0001]
"ClassGUID"="{745a17a0-74d3-11d0-b6fe-00a0c90f57da}"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\PCI#CC_0C0300]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="usbuhci"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\PCI#CC_0C0310]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="usbohci"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\PCI#CC_0C0320]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="usbehci"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\USB#Class_03]
"ClassGUID"="{745a17a0-74d3-11d0-b6fe-00a0c90f57da}"
"Service"="HidUsb"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\USB#CLASS_09]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="usbhub"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\USB#COMPOSITE]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="usbccgp"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\USB#ROOT_HUB]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="usbhub"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\USB#ROOT_HUB20]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"
"Service"="usbhub"

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Control\CriticalDeviceDatabase\USB#UNKNOWN]
"ClassGUID"="{36FC9E60-C465-11CF-8056-444553540000}"


[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Services\HidUsb]
"DisplayName"="Microsoft HID Class Driver"
"Group"="extended base"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,\
  72,00,69,00,76,00,65,00,72,00,73,00,5c,00,68,00,69,00,64,00,75,00,73,00,62,\
  00,2e,00,73,00,79,00,73,00,00,00
"ErrorControl"=dword:00000000
"Start"=dword:00000003
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Services\kbdhid]
"DisplayName"="Keyboard HID Driver"
"Group"="Keyboard Port"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,\
  72,00,69,00,76,00,65,00,72,00,73,00,5c,00,6b,00,62,00,64,00,68,00,69,00,64,\
  00,2e,00,73,00,79,00,73,00,00,00
"ErrorControl"=dword:00000000
"Start"=dword:00000001
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Services\kbdhid\Parameters]
"WorkNicely"=dword:00000000

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Services\mouhid]
"DisplayName"="Mouse HID Driver"
"Group"="Pointer Port"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,\
  72,00,69,00,76,00,65,00,72,00,73,00,5c,00,6d,00,6f,00,75,00,68,00,69,00,64,\
  00,2e,00,73,00,79,00,73,00,00,00
"ErrorControl"=dword:00000000
"Start"=dword:00000003
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Services\mouhid\Parameters]
"UseOnlyMice"=dword:00000000
"TreatAbsoluteAsRelative"=dword:00000000
"TreatAbsolutePointerAsAbsolute"=dword:00000000

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Services\usbccgp]
"DisplayName"="Microsoft USB Generic Parent Driver"
"Group"="Base"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,\
  72,00,69,00,76,00,65,00,72,00,73,00,5c,00,75,00,73,00,62,00,63,00,63,00,67,\
  00,70,00,2e,00,73,00,79,00,73,00,00,00
"ErrorControl"=dword:00000001
"Start"=dword:00000003
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Services\usbehci]
"DisplayName"="Microsoft USB 2.0 Enhanced Host Controller Miniport Driver"
"Group"="Base"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,\
  72,00,69,00,76,00,65,00,72,00,73,00,5c,00,75,00,73,00,62,00,65,00,68,00,63,\
  00,69,00,2e,00,73,00,79,00,73,00,00,00
"ErrorControl"=dword:00000001
"Start"=dword:00000003
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Services\usbhub]
"DisplayName"="Microsoft USB Standard Hub Driver"
"Group"="Base"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,\
  72,00,69,00,76,00,65,00,72,00,73,00,5c,00,75,00,73,00,62,00,68,00,75,00,62,\
  00,2e,00,73,00,79,00,73,00,00,00
"ErrorControl"=dword:00000001
"Start"=dword:00000003
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Services\usbohci]
"DisplayName"="Microsoft USB Open Host Controller Miniport Driver"
"Group"="Base"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,\
  72,00,69,00,76,00,65,00,72,00,73,00,5c,00,75,00,73,00,62,00,6f,00,68,00,63,\
  00,69,00,2e,00,73,00,79,00,73,00,00,00
"ErrorControl"=dword:00000001
"Start"=dword:00000003
"Type"=dword:00000001

; Check English DisplayName
[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Services\USBSTOR]
"DisplayName"="USB Storage Test"
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
  52,00,49,00,56,00,45,00,52,00,53,00,5c,00,55,00,53,00,42,00,53,00,54,00,4f,\
  00,52,00,2e,00,53,00,59,00,53,00,00,00
"Start"=dword:00000003
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\hdsystem\ControlSet001\Services\usbuhci]
"DisplayName"="Microsoft USB Universal Host Controller Miniport Driver"
"Group"="Base"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,\
  72,00,69,00,76,00,65,00,72,00,73,00,5c,00,75,00,73,00,62,00,75,00,68,00,63,\
  00,69,00,2e,00,73,00,79,00,73,00,00,00
"ErrorControl"=dword:00000001
"Start"=dword:00000003
"Type"=dword:00000001

Сдается мне, что я здесь еще не все нужные установки забил... Еще разбираюсь.

Mr dUSHA 09-08-2008 15:47 871713

Цитата:

Цитата Oleg_II
Если есть сиспреп и файл ответов, то все проиходит автоматом »

Ничто не мешает вам подсунуть установщику готовый файл ответов напрямую. Тоесть правильно его заполнить, назвать $winnt$.inf и забросить в system32.

Единственный момент, что установщик на этапе Т-0 обнуляет в файле ответов такие параметры:
AdminPassword
DomainAdminPassword
UserPassword
DefaultPassword
ProductKey
productid
StagingKeyUsed

Так что если взять этот файл из установленой системы, то нужно снова добавить в файл нужный ProductKey и AdminPassword (и возможно другие параметры, если вы их используете).

Oleg_II 09-08-2008 17:59 871762

Mr dUSHA
Пробовал $winnt$.inf, но то ли я что-то не так делаю, то ли для мини-установки там чего-то не хватает или лишнее, то ли еще что, но не получилось...

Впрочем, я вас совсем запутаю :) Вобщем-то проблем с использованием сиспрепа или того рег-файла нет, все, в принципе, работает. Но в конце мини-установки идет перезагрузка. Хотелось бы без нее :)

И еще прибавилось желание: хотелось бы чтобы Винды при обнаружении нового оборудования втихую его устанавливали, беря драйвера из папки INF, а если там нет нужных драйверов, то также втихую проходили мимо. Т.е. чтобы выскакивало окошко обнаружения нового устройства и не предлагалось найти или указать где драйвер искать.

Если вдруг наткнетесь в своих исследованиях на подобное, буду благодарен :)

Mr dUSHA 09-08-2008 20:14 871855

Цитата:

Цитата Oleg_II
Пробовал $winnt$.inf, но то ли я что-то не так делаю, то ли для мини-установки там чего-то не хватает или лишнее, то ли еще что, но не получилось... »

Сделайте такой файл ответов, который СусПрепом нормально переваривается, и сним установка идет нормально.
Потом запустите это все на виртуальной машине и вытяните из system32 сгенерированый файл $winnt$.inf.
Дело в том, что установщик добавляет еще несколько параметров в $winnt$.inf после старта установки.

Цитата:

Цитата Oleg_II
Но в конце мини-установки идет перезагрузка. Хотелось бы без нее»

Поведайте таки широкой общественности, зачем нужно отсутствие перезагрузки? Может придумаем какой-то более красивый вариант решения проблемы..

Oleg_II 09-08-2008 21:02 871896

Mr dUSHA
Да вобщем-то не секрет, я на прошлой странице уже объяснил - занимаюсь "несерьезными", можно сказать антинаучными экспериментами - запуск системы в РАМ на разных компах (почти так же как БартРЕ). Были некоторые проблемы с клавиатурой и мышью, они более-менее решены, сейчас столкнулся с проблемой того, что на некоторых компах не видит жестких дисков кроме своего (в РАМ). Хотелось попробовать определить диски в процессе мини-установки (почему-то кажется, что там больше вероятность их подцепить с ходу).

Вобщем-то, поскольку эксперименты не совсем "правильные" (но уж очень хочется :) , то я и не прошу найти решение, а просто прошу - если вдруг попадется :)

Ну, а вторая часть - "тихая" установка драйверов во время входа в систему без мини-сетапа - просто хотелось уменьшить количество телодвижений (подтвержать, что надо установить, подтверждать, что пусть само найдет, подверждать после установки или если скажет, что драйвер не найден...). У китайцев был вариант с переименовыванием NEWDEV.DLL и ссылкой на скрипт обратного переименования. Т.е. во время логина система ничего не определяет, а пользуется тем, что уже установлено, но в любой момент можно кликнуть на шорткате и определение новых устройств начнется. Тоже какой-никакой выход, но кривоватый и совсем уж не выход...

Еще вопрос по Вашему SETUPAPI_5512.txt (извиняюсь, я просто любитель, много не понимаю еще): правильно ли я понял, что с помощью приведенного патча можно будет добиться того, что в WINNT.SIF задается параметрами:
Код:

DriverSigningPolicy=Ignore
NonDriverSigningPolicy=Ignore

Т.е. в файле ответов можно будет этого уже не задавать, а работать будет?
И еще: есть в настройках "Поиск драйвера в Интернет", я его отключаю и сразу на один пункт при установке драйверов становится меньше. Отключаю я это рег-твиком, а может быть можно и хаком какого-нибудь установочного файла?
Вот твик, я его в HIVESFT.INF добавляю:
Код:

HKLM,"Software\Policies\Microsoft\Windows\DriverSearching","DontSearchWindowsUpdate",0x00010001,1

Mr dUSHA 09-08-2008 21:36 871922

Цитата:

Цитата Oleg_II
правильно ли я понял, что с помощью приведенного патча можно будет добиться того, что в WINNT.SIF задается параметрами: »

Именно так. После патча эти параметры можно будет уже не задавать в WINNT.SIF вообще, или задавать любые значения, но, все ровно, по обоим параметрам будет применяться решение "Ignore".
Особенно полезно это если файл ответов отсутствует вообще, и задавать параметры неоткуда.

Цитата:

то я и не прошу найти решение, а просто прошу - если вдруг попадется
Перезагрузка после установки, как и запуск самой установки производится Winlogon-ом.
Так что путём заглядывания в душу Winlogon-у оно и попалось... :)

Пока в виде тестирования можно попробовать отключить перезагрузку после установки патчем Winlogon.exe (версия файла 5.1.2600.5512).

0003077C: 8B C2
0003077D: FF 08
0003077E: 55 00


Но имейте ввиду, что отключить перезагрузку и теоретически нормально работать можно только после миниустановки.
После обычной установки на Т-0 сработает оптимизатор реестра, и после этого все изменения в реестре уже не сохранятся после дальнейшей ручной перезагрузки, если вы, отключив перезагрузку, будете запускать еще какие-либо программы.
Хотя в рамках эксперимента запуска ХР в памяти это не критично.

Oleg_II 10-08-2008 10:29 872099

Mr dUSHA
Цитата:

Можно пропатчить setupapi.dll.
Для версии 5.1.2600.5512 это будет:

0003C85D: 01 00

с таким патчем если ключ DontSearchWindowsUpdate в реестре будет отсутствовать, то интернетапдейт проверяться не будет.
С первого раза не получилось что-то...

Что делал:
Открыл файл SETUPAPI.DLL, пошел по адресу 0003C85D, там было 01, поменял на 00 и сохранилася. Еще раз открыл файл и убедился, что по этому адресу у меня теперь 00. Поменял чек-сумму с помощью ModifyPe и добавил в дистрибутив (файл, который был до этого, соответственно предварительно удалил). Установка прошла без проблем. Пробовал на одном из устройств, которое не до конца установилось (желтый знак вопроса) сделать Update Driver - в первом появляющемся окне все равно есть предложение сходить за драйверами на Виндоуз Апдейт... В My Computer > Hardware > Windows Update все осталось по умолчанию (Ask me to search Windows Update every time I connect a new device), в реестре ключа DontSearchWindowsUpdate нет...

Может что-то не так делаю?

ЗЫ Забыл добавить - Windows XP SP3 Professional Volume Licence (English).

Oleg_II 10-08-2008 11:11 872111

Mr dUSHA
Что-то плохо сегодня идет... Вы не могли бы написать для Driver Signing по каким адресам надо что менять, а то что-то пока у меня тямы не хватает это из файла выудить?

Mr dUSHA 10-08-2008 12:37 872161

Цитата:

Цитата Oleg_II
Что-то плохо сегодня идет... Вы не могли бы написать для Driver Signing по каким адресам надо что менять, а то что-то пока у меня тямы не хватает это из файла выудить? »

SYSSETUP.DLL Ver. 5.1.2600.5512

00033E06: 0F E9
00033E07: 84 4A
00033E08: 49 01
00033E09: 01 00
00033E0B: 00 90


Цитата:

Цитата Oleg_II
Что делал:
Открыл файл SETUPAPI.DLL, пошел по адресу 0003C85D....................

Может что-то не так делаю? »

Все правильно делаете, только патчить надо еще и newdev.dll в двух местах, поэтому я и удалил из поста информацию о SETUPAPI.

Oleg_II 18-08-2008 13:06 877734

Mr dUSHA
С большим опозданием, но рапортую - после манипуляций подписи драйверов действительно не проверяются :) Правда, я еще и WFP (проверку файлов) полностью отключаю, но это, вроде, другое дело.

С Winlogon-ом пока не проверял, некоторые изменения в планах, слишком много обрезал, миниустановка просто даже не начинается. Это моя проблема, еще буду пробовать...

А по поводу отключения поиска дров на Windows Update пока не получилось?

Еще вопрос, я тут нарвался на такую инфу:
Цитата:

OOBE
----------
http://www.msfn.org/board/Say-goodby...BE-t16414.html
OOBE (Out of the box experience) is the setup wizard that appears on a normal (not unattended) setup.
Enter Username, connect to network etc.
---------------------------------------------------------
???
First Question is: if OOBE is already disabled in my files?
"it's not needed for SP3 anyway" ?
-------------------------------------------------------------------------------
The changes made in the syssetup.dll are:

SetupOobeInitDebugLog
SetupOobeInitPreServices
SetupOobeCleanup

OobeInProgress

%SystemRoot%\System32\oobe\oobebaln.exe /s
%SystemRoot%\System32\oobe\msoobe.exe /f /retail

all to hex 20 (space)

The above are unicode values so be careful not to overwrite the 00's between the characters.

Or did i forget something gosh?

I made a patcher with CodeFusion for my afore mentioned changes in the syssetup.dll. It just looks for the string so it should work with other versions of the dll too.
To update the internal checksum of the dll download ModifyPE

Run the following commands from cmd:

expand syssetup.dl_ syssetup.dll
PatchSysSetup.exe
modifype.exe syssetup.dll -c
makecab syssetup.dll syssetup.dl_

It should patch 337 bytes.
Есть смысл патчить? Я пробовал, ошибок в логе установке нет. Но, с другой стороны, я уже в WINNT.SIF отключаю это ООБИ, т.е. с патчем или без я его все равно не вижу. Не догадался как-то сразу в файле ответов убрать этот пункт... Придется еще раз проверять :)

Mr dUSHA 18-08-2008 15:38 877848

Цитата:

Цитата Oleg_II
А по поводу отключения поиска дров на Windows Update пока не получилось? »

Да получилось еще тогда. Просто я не выкладывал.
Из дома выложу, на домашнем компьютере все записано.

Oleg_II 23-08-2008 21:13 882192

Если вдруг кому-то нужно. Отлючение проверки подписи драйверов для SYSSETUP.DLL v5.1.2600.2180 (Windows XP SP2 English):
Цитата:

33956 0F E9
33957 84 4A
33958 49 01
33959 01 00
3395B 00 90
Нашел по аналогии с тем, что предложил Mr dUSHA для SP3.


Информация от JDOE (его сайт вроде в дауне, по крайней мере, мне зайти не удалось):

SFC_OS.DLL - отключение Windows File Protection (WFP).
SYSSETUP.DLL - включение возможности редактирования SYSSETUP.INF.

Версия файлов все таже для SP2 - v5.1.2600.2180:
Цитата:

SFC_OS.DLL
---------------
ECE4 83 3B
ECE5 F8 C0
ECE6 9D EB
ECE7 75 32
ECE8 08 90

SYSSETUP.DLL
------------------
33679 73 72

Отключение DEP сразу во время установки через редактирование файла SETUPDD.SYS v5.1.2600.2180, нашел здесь же на форуме для SP3 (те же значения работают и на предидущей версии), только сейчас автора с ходу не назову, сорри:
Цитата:

SETUPDD.SYS
-----------
BB33 38 5C
Не забываем исправить чек-суммы после применения патчей!


Отключение встроенного файрвола в процессе установки для SP2 и SP3 (где-то нашел документ от Мелкософта), файл NETFW.INF:
Цитата:

[version]
Signature = "$Windows NT$"
DriverVer =07/01/2001,5.1.2600.5512

[DefaultInstall]
AddReg=ICF.AddReg.DomainProfile
AddReg=ICF.AddReg.StandardProfile

[ICF.AddReg.DomainProfile]
HKLM,"SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile","DoNot AllowExceptions",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile","Enabl eFirewall",0x00010001,0

[ICF.AddReg.StandardProfile]
HKLM,"SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile","DoN otAllowExceptions",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile","Ena bleFirewall",0x00010001,0

Избавление от папок System Volume Information на дисках/разделах (также требуется выключение служб Восстановление Системы, Индексирование и Distributed Link Tracking Client, может еще каких, но эти вроде главные), два варианта:
1. Замена файла MOUNTMGR.SYS на файл из XP SP0 (информация от eXPerience).
2. Патч NTOSKRNL.EXE с помощью утилиты SVI Eliminator (есть на просторах инета).


Еще есть пара патчиков для Хоум Эдишн (установка дистрибутива Хоум как Про без всяких взломов и включение вкладки Безопасность в Хоум), а также небольшие хитрости для SYSOC.INF, SYSSETUP.INF TXTSETUP.SIF (подключение дополнительного файла хивов, который подключается последним, поэтому через него можно отредактировать только что собранный начальный реестр, включая некоторые установки WINNT.SIF, добавление файла с твиками, которые применятся в момент установки компонентов - это, наверно, уже известно, отключение минимальных требований к памяти и месту на диске, классический вид установки, отключение дублирования некоторых файлов по разным папкам и т.д.). Если это уместно здесь, то тоже могу описать.

Все примочки можно применить в момент установки. Если еще что-то найду (а вроде еще есть, надо только время на эксперименты), то поделюсь :)

ЗЫ Вроде нашел как заранее поменять в одном из файлов дефолтные установки для свойств папки (показывать системные файлы, показывать расширения для известных файлов, классический вид и т.д.), которые задаются твиками реестра. Буду пробовать :)

ЗыЗы Проблемы с мышами и клавиатурами во время клонирования решены! Сорри за оффтом, трудно было сдержать свой восторг по этому поводу :)

Mr dUSHA 23-08-2008 23:14 882269

Oleg_II, давно обещаное:
С таким патчем если ключ DontSearchWindowsUpdate в реестре будет отсутствовать, то "Поиск драйвера в Интернет" показываться не будет:

Для версий файлов 5.1.2600.5512:

setupapi.dll:
0003C85D: 01 00

newdev.dll
0000D061: 40 90

Dilinjer 25-08-2008 15:45 883316

Знает ли ктонить как пропатчить SFC_OS.DLL 5.1.2600.2180 чтоб было отключение инициализации SFC и проверки всех файлов на этапе Т-8 установки Windows как в SFC_OS.DLL 5.1.2600.5512 ?

Boa Soft 25-08-2008 18:18 883481

Как показала проверка, предложенный патч для setupapi для висты имеет побочные действия.

Драйвера на звук устанавливаются, а звука нет. После возвращения назад непатченой версии все становится нормально - звук появляется.

Так что, все не так просто.

Mr dUSHA 25-08-2008 19:02 883522

Цитата:

Цитата Dilinjer
Знает ли ктонить как пропатчить SFC_OS.DLL 5.1.2600.2180 чтоб было отключение инициализации SFC и проверки всех файлов на этапе Т-8 »

0000E8AB: 74 EB
0000ECE7: 75 EB

Это оба патча для 2180, которые описаны в SFC_OC_5512.txt.
Но не забывайте, что гдето в твиках на Т13-Т12 руками вам нужно внести в реестр SFCDisable = 0xFFFFFF9D, иначе не сработает.

Mr dUSHA 25-08-2008 22:11 883722

Цитата:

Цитата Boa Soft
Драйвера на звук устанавливаются, а звука нет. После возвращения назад непатченой версии все становится нормально - звук появляется. »

Проверил. Действительно есть такое.
Аудиоподсистема при запуске проверяет подписи некоторых системных файлов. Так что возвращение не патченой библиотеки в уже установленую систему возвращает звук.

Сейчас копаю в сторону, как отучить Висту от этих глупостей.
Как обходной путь - возвращать скриптом (или еще как-то) оригинальную библиотеку на место после установки драйверов, поскольку патч нужен лишь для автоматизации установки Висты.

vserd 26-08-2008 17:59 884324

Mr dUSHA,
Может встречал, как называется функция которая определяет путь к файлам установки?

в установленной системе он записан в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\SourcePath
на T40 его еще нет.

Mr dUSHA 27-08-2008 13:55 884971

vserd,
В библиотеке Syssetup.dll есть внутреняя вункция SpSetupProcessSourcePath.
Она какраз и занимается поиском дистрибутива. Вызывается она в момент разбора параметров из $winnt$.inf на Т-39.
Из $winnt$.inf она берет значение параметра "sourcepath", и преобразовывает его в букву диска и записывает в параметр "dospath".
(Конечно буква диска будет, если установка идет с CD-ROM-а или винчестера, а если сетьевая установка, то будет видимо ссылка на RIS-овую шару с дистрибутивом).

А сам параметр "sourcepath", насколько я понимаю, еще на текстовом этапе в $winnt$.inf вписывает SETUPDD.SYS

Сейчас смотрю функцию более детально, как ее можно использовать, либо переписать заново на С++.

А если буква диска с дистрибутивом нужна не на Т-40 (до вызова этого парсера), а на Т-12 например, то без зазрения совести ее можно прочитать напрямую с $winnt$.inf с параметра "dospath". :)

vserd 27-08-2008 15:10 885041

Mr dUSHA,
SpSetupProcessSourcePath или pSetupSetSystemSourcePath???
SpSetupProcessSourcePath не экспортируется...

Sourcepath из $winnt$.inf в нормальный вид я преобразовываю нормально.
Но если установка идет через winnt/winnt32 или с hdd тогда часть файлов копируется в $win_nt$.~ls и $win_nt$.~bt на системный раздел (С:), в $winnt$.inf записывается OriSrc = "A:\_WINDOWS\PROF\I386"
который собственно и показывает где находится дистрибутив.
Но в процессе установки, он правильно преобразуется в букву CDROM и пишется в реестр.

sourcepath имеет вид:
sourcepath = "\device\harddisk0\partition1\$win_nt$.~ls"
и показывает что установка идет с HDD, но нужные мне файлы на CD, вот и хочу использовать стандартные средства винды, а не городить свой эмулятор.
Тем более что описания этого хозяйства нет...
И там хитрый такой вариант есть. Установка по сети OriTyp = "4" (RIS ???), в котором можно использовать переменные. Вот его пока не могу проверить..
А инфы по OriTyp и OriSrc я не нашел.


Цитата:

Цитата Mr dUSHA
А если буква диска с дистрибутивом нужна не на Т-40 (до вызова этого парсера), а на Т-12 например, то без зазрения совести ее можно прочитать напрямую с $winnt$.inf с параметра "dospath". »

Это слишком поздно. :)) Интересует все что на T40 можно использовать.

За одно, если встретится API которое объединяет $UNIQUE$.UDB c $winnt$.inf маякни?

Mr dUSHA 27-08-2008 17:17 885146

Цитата:

Цитата vserd
SpSetupProcessSourcePath не экспортируется... »

Совершенно верно. Но ничто не мешает ее вызвать напрямую по адресу.
Для конкретного билда библиотеки зарание узнаем VirtualOffset этой функции, далее после загрузки библиотеки с помощью LoadLibrary складываем VirtualOffset с дескриптором (который по сути является базовым адресом загруженой библиотеки) и вызываем функцию как обычно.

Функция имеет формат:
Код:

BOOL __stdcall SpSetupProcessSourcePath(LPCWSTR lpString1, LPCWSTR lpString2)

IN  lpString1 - указатель на строку "sourcepath".
OUT  lpString2 - указатель на строку-приемник, куда будет помещена строка "dospath".

возвращаемое функцией значение:
TRUE - преобразование завершено успешно.
FALSE - ошибка.

Цитата:

Цитата vserd
За одно, если встретится API которое объединяет $UNIQUE$.UDB c $winnt$.inf маякни? »

Это делает внутреняя функция InitializeUniqueness

Обе эти функции отрабатывают на Т-39 и вызываются тоже внутреней функцией SpSetupProcessParameters.

Цитата:

Цитата vserd
Тем более что описания этого хозяйства нет.. »

Там в установщике еще мноооого всего вкусного и полезного запрятано... :)
Но полезные функции в болшинстве своем не экспортируются, что впрочем не мешает их вызывать по адресу напрямую (но только для этого нужно конролировать версию библиотеки).

Vizit0r 27-08-2008 17:56 885180

раз тут за такие умные вещи разговор идет, тогда и я примажусь :)
подскажите, из-за чего в setuplog.txt где-то на T40 идет фраза
Код:

08/07/2008 15:36:44.437,d:\xpsp\base\ntsetup\syssetup\syssetup.c,6683,,Setup: Could not open the cdrom for hack, ec=0xc0000034
? Установка идет с флешки.

Полный лог до этого момента

Код:

Time,File,Line,Tag,Message
08/07/2008 15:36:42.437,d:\xpsp\base\ntsetup\syssetup\syssetup.c,6539,BEGIN_SECTION,Installing Windows NT
08/07/2008 15:36:44.437,d:\xpsp\base\ntsetup\syssetup\wizard.c,1568,,SETUP: Calculating registery size
08/07/2008 15:36:44.437,d:\xpsp\base\ntsetup\syssetup\wizard.c,1599,,SETUP: Calculated time for Win9x migration = 120 seconds
08/07/2008 15:36:44.437,d:\xpsp\base\ntsetup\syssetup\syssetup.c,6570,BEGIN_SECTION,Initialization
08/07/2008 15:36:44.437,d:\xpsp\base\ntsetup\syssetup\syssetup.c,6683,,Setup: Could not open the cdrom for hack, ec=0xc0000034


vserd 27-08-2008 18:33 885209

Mr dUSHA,
Цитата:

Цитата Mr dUSHA
Совершенно верно. Но ничто не мешает ее вызвать напрямую по адресу.
Для конкретного билда библиотеки зарание узнаем VirtualOffset этой функции, далее после загрузки библиотеки с помощью LoadLibrary складываем VirtualOffset с дескриптором (который по сути является базовым адресом загруженой библиотеки) и вызываем функцию как обычно. »

Для своей программы да или для внутреннего самостоятельного использования. А для аддона увы, не приемлимо :(((

Цитата:

Цитата Mr dUSHA
Это делает внутреняя функция InitializeUniqueness »

гады :))) нет чтобы в экспорт выкинуть, так бы жизнь облегчили :))))

Mr dUSHA 27-08-2008 23:53 885448

Цитата:

Цитата vserd
гады :))) нет чтобы в экспорт выкинуть, так бы жизнь облегчили :)))) »

Как вариант, можно по добавлять в таблицу экспорта нужные функции, и вложить такую подправленную syssetup.dll в аддон.

syssetup ведь скорей всего обновляться через Windows Update, а новая версия ИМХО появится только в SP4, если конечно сам SP4 вообще выпустят... Я конечно вполне могу ошибаться, но что-то не помню, чтоб syssetup.dll обновлялась когда либо, кроме как через сервиспаки.

Так что можно реализовать простенькую функцийку контроля версий (могу даже выкинуть в шапку исходник) и составить таблицу VirtualOffset-ов нужных нам функций, скажем, для версий 2180 и 5512 библиотеки, и далее вызывать их напрямую даже в хитром аддоне.

А способ получения адреса функции путем складывания дескриптора библиотеки с VirtualOffset-ом технически ничем не отличается от функции GetProcAddress. Отличие только в том, что GetProcAddress берет VirtualOffset-ы из таблицы экспорта библиотеки, а мы - из своей базы для конкретной версии библиотеки.

Mr dUSHA 28-08-2008 02:44 885549

Для интеграции $UNIQUE$.UDB в $winnt$.inf есть такая функция:
Код:

int __stdcall IntegrateUniquenessInfo(PCWSTR FileName, PCWSTR Index)

PCWSTR FileName - полное имя с путем файла $UNIQUE$.UDB

PCWSTR Index - индекс (код), который указывается в стандартной реализации
в параметре /udf:код [,файл_UDB] для winnt32.exe

Возвращаемое значение - не ноль, если интеграция без ошибок,
либо ноль, если произошла ошибка при интеграции.


Но одна тонкость:
Сначала нужно вызвать функцию void __stdcall UnattendInitialize(void)
для того, чтоб она инициализировала внутренюю строковую переменную _AnswerFile, в которую заносится полный путь к $winnt$.inf.

Mr dUSHA 28-08-2008 12:48 885755

Цитата:

Цитата Vizit0r
подскажите, из-за чего в setuplog.txt где-то на T40 идет фраза
Could not open the cdrom for hack, ec=0xc0000034»

Просто проверяет на наличие CD-ROM-а. Если CD-ROM не найден, то записывает вот такое сообщение в журнал.
Более никаких других действий связаных с этим сообщением я не наблюдаю.

Vizit0r 28-08-2008 19:13 886012

ясно, спасибо

Dilinjer 31-08-2008 18:45 887903

Вложений: 1
Цитата:

Цитата Mr dUSHA
Цитата Dilinjer:Знает ли ктонить как пропатчить SFC_OS.DLL 5.1.2600.2180 чтоб было отключение инициализации SFC и проверки всех файлов на этапе Т-8 »
0000E8AB: 74 EB
0000ECE7: 75 EB
Это оба патча для 2180, которые описаны в SFC_OC_5512.txt.
Но не забывайте, что гдето в твиках на Т13-Т12 руками вам нужно внести в реестр SFCDisable = 0xFFFFFF9D, иначе не сработает. »

Патч работает :applause: (с Т9 установщик сразу переходит на Т2 ) но появляется другая проблемма:
В %SystemDrive%\$WIN_NT$.~LS остаются(неудаляются) временные файлы.... Причем количество неудаленных файлов при каждой установке ХРюши разное :idontnow:

Mr dUSHA, может подскажете в чем проблемма?

ЗЫ: Установку форточек произвожу из-под WinPE загруженной с USB-HDD такой строчкой bat'ника:
winnt32.exe /unattend:%AnswerFile% /s:%SetupFiles%\I386 /syspart:!DestDisk! /tempdrive:!TempDisk! /noreboot

Mr dUSHA 31-08-2008 19:18 887918

Цитата:

Цитата Dilinjer
Патч работает (с Т9 установщик сразу переходит на Т2 ) но появляется другая проблемма: »

Гм... но ошибка ИМХО на прямую не связана с патчем.
Исходя из вашего лога setuperr.log, где по нескольким файлам выводится предупреждение
читать дальше »

Цитата:

Программе установки не удалось удалить временный файл или каталог C:\$WIN_NT$.~LS\I386\msdtcprx.dl_ с жесткого диска из-за следующей ошибки:
DeleteFile(C:\$WIN_NT$.~LS\I386\msdtcprx.dl_): возвращена ошибка 32 (20).

можно сделать вывод, что файлы просто заняты в этот момент каким-либо другим процессом, поскольку "ошибка 32 (20)" - это ни что иное, как описаное в Error.h
#define ERROR_SHARING_VIOLATION 32

Можно сделать вывод, что без патча за те несколько минут, за которые SFC проверяет файлы на Т-8, другой процес успевает освободить эти файлы, после чего на Т-0 происходит зачистка всего мусора, и эти файлы удаляются тоже.

Dilinjer 31-08-2008 19:32 887925

Mr dUSHA, а можно както на T9 узнать какие процессы болтаются в памяти ? Может в winnt.sif в секции [SetupParams]
прописать какуюнить тулзу создающю лог выполняемых процессов ? Посоветуйте плиззз ченить !!!!

Mr dUSHA 31-08-2008 21:51 888026

Цитата:

Цитата Dilinjer
Посоветуйте плиззз ченить !!!! »

А на Т-13, Т-12 не устанавливается ли какой-либо софт, копающийся в файлах на винчестере, например антивирусы?

Dilinjer 02-09-2008 13:00 889193

Mr dUSHA, разобрался в чем проблемма... В CMDLINES.TXT было:
"HIDEC.EXE RUNONCEEX.CMD"
В RUNONCEEX.CMD происходило копирование из sourcepath дистрибутива в %SystemRoot%\I386 .
CMDLINES.TXT не дожидался завершения выполнения RUNONCEEX.CMD вследсвие чего имел вышеописываемую проблему....
Чтоб решить проблему пришлось в CMDLINES.TXT прописать так: "HIDEC.EXE /W RUNONCEEX.CMD" , хотя во всех доках указано что команды вызываемые из CMDLINES.TXT выполняются последовательно т.е. ждут своего завершения :confused:
Задача была скопировать дистрибутив в локальную папку и при первом логоне заменить падченную sfc_os.dll на оригинальную а также в реестре прописать локльную папку с дистрибутивом чтоб в случае подмены оригинальных файлов ХРюши SFC не требовал установочного CD'диска а воостанавливал файлы из локальной папки с дистрибутивом... Но как окозалось(сейчас только обнаружил) уже на T40 в sourcepath имеем неполный дистрибутив (на текстовом этапе часть системных файлов распакована с перемещением в %SystemRoot%)
Как вариант, вижу только из-под WinPE c USB-HDD скопировать дистрибутив на системный раздел и оттуда запускать winnt32.exe и при первом логоне указывать в реестре местоположение скопированного дистрибутива.....

Manuka1973 02-09-2008 14:39 889272

я не уверин в ту ли тему я задаю этот вопрос ....!? Помогите кто знает..... я хочу собрать себе сборку Windoes XP какой программой можно собрать , кроме нлайта!!!!?????

Shanser 02-09-2008 15:12 889304

Цитата:

Цитата Manuka1973
я не уверин в ту ли тему я задаю этот вопрос ....!? Помогите кто знает..... я хочу собрать себе сборку Windoes XP какой программой можно собрать , кроме нлайта!!!!????? »

Ну например для СП3 можно использовать UpdatePack-XPSP3-Rus версия 8.8.19 + Gui-интегратор пакета обновлений и адонов + смотрите раздел Наборы обновлений для Windows XP/2003/Vista

Mr dUSHA 02-09-2008 15:33 889324

Цитата:

Цитата Dilinjer
"HIDEC.EXE RUNONCEEX.CMD" »

Это я видел в вашем логе. Просто в логе отсутствуют временные метки, поэтому тяжело понять, когда оно запускалось.

Цитата:

Цитата Dilinjer
пришлось в CMDLINES.TXT прописать так: "HIDEC.EXE /W RUNONCEEX.CMD" , хотя во всех доках указано что команды вызываемые из CMDLINES.TXT выполняются последовательно т.е. ждут своего завершения »

Вы не правильно понимаете логику.
HIDEC.EXE сама по себе тупая, и команд из CMD-файла не выполняет. Она только запускает интерпретатор CMD.EXE в скрытом окне, и передает ему на выполнение ваш CMD-файл. Когда интерпретатор только запустился и начал работать (а работы у него много в данном случае), сама HIDEC.EXE завершается, и соответственно идет выполнение следующей комманды из CMDLINES.TXT.
С параметром /W вы заставляете HIDEC ждать завершения работы интерпретатора CMD.EXE, а SYSSETUP ожидает завершения HIDEC, так что при таком раскладе все у вас работает корректно.

Dilinjer 02-09-2008 16:45 889383

Mr dUSHA, а можно както извлечь из sfcfiles.dll в текстовый файл список файлов(папок) для которых работает WFP ? Проста для моей задачи хочеца не тупо копировать весь дистрибутив на системный раздел а только те файлы для которых сработает WFP......

ЗЫ: Эх... Былобы супер еслиб в список защищаемых файлов возможно былобы добавить и свои.....

Mr dUSHA 02-09-2008 17:27 889409

Цитата:

Цитата Dilinjer
ЗЫ: Эх... Былобы супер еслиб в список защищаемых файлов возможно былобы добавить и свои..... »

Для этого вам нужны будут цифровые подписи для ваших файлов, поскольку защита работает в два уровня:
Первая часть защиты проводит мониторинг изменения файлов из списка sfcfiles.dll;
Вторая часть защиты отловленый измененный защищаемый файл проверяет на наличие цифровой подписи (в каталогах безопастности, установленых в системе), и если подпись отсутствует, то файл восстанавливается из дистрибутива. Но файл, лежащий в дистрибутиве, проверяется также. И если дистрибутивный файл также изменен, то вы видите сообщение, что "восстановить измененный файл до начальной версии не удалось...".

Во вложении список файлов для ХР SP3
(но он сформирован уже с привязкой к моей SystemRoot=c:\winnt\)

Dilinjer 02-09-2008 18:02 889423

Mr dUSHA, спасибо за список защищаемых файлов но меня больше интересует КАК этот список самому сформировать ?
ЗЫ: Я просто все еще юзаю WinXP_SP2 поэтому Ваш листинг файлов возможно для меня неподойдет..... :(

Mr dUSHA 04-09-2008 00:38 890463


Dilinjer,
Цитата:

Цитата Dilinjer
КАК этот список самому сформировать ? »

Позже выложу маленькую програмулю, которая формируют список для текущей системы.

Кроме того, патчер Boa Soft-а умеет формировать список вообще всех файлов, которые включены в SfcFiles.dll (а там их 5 наборов).

Читайте эти две темы, там информации достаточно для понимания сути механизмов:
Служебные - Патч SfcFiles.dll
Служебные - [addon] sfc patch

А то здесь уже оффтоп начинается...

Boa Soft 04-09-2008 15:11 890874

Цитата:

Цитата Mr dUSHA
Позже выложу маленькую програмулю, которая формируют список для текущей системы. »

Это - самое простое, апишка достаточно хорошо описана в интернете, а вот получить список всех файлов было сложнее. Но, там есть недокументированная функция, отдающая адреса всех таблиц файлов.

Mr dUSHA 04-09-2008 18:38 891050

Цитата:

Цитата Boa Soft
Но, там есть недокументированная функция, отдающая адреса всех таблиц файлов. »

Ага. Я видел, и ее саму, и как оно у тебя реализовано.
Для меня как-то мало от этого практической пользы... Но зато та функция отдает непосредственно текстовые строки из библиотеки, а не преобразованные к путям конкретной установленной системы :)

Там другая интересность и полезность есть:
SfcInitProt кроме других параметров принимает указатель на список игнорирования, в который заносятся файлы, исключаемые из проверки в текущем сеансе проверки файлов.
Syssetup заносит в этот список MSST-драйвера, добавленные на текстовом этапе по Ф6, которые использовались для установки системы, и на Т-10 эти файлы исключаются из проверки.
Может это тоже расковырять, и придумать ему полезное применение?

Boa Soft 05-09-2008 02:08 891340

Цитата:

Цитата Mr dUSHA
Т-10 эти файлы исключаются из проверки.
Может это тоже расковырять, и придумать ему полезное применение? »

Получаем весь список файлов и выводим их из проверки. и патчить ничего не надо.

Dilinjer 05-09-2008 19:09 891856

Извините если не фтему.... Очередной раз собрал дистрибутив XPюши с падченым SFC_OC.DLL . На стендовой машине установил форточки... В сборке при первом логоне падченая библиотека должна заменяться на оригинальную но в логе выполнения bat'ника имеем: отказано в доступе, т.е. падченная библиотека назаменилась на оригинальную так как файл заблокирован, хотя раньше все было ОК.

Подскажите можно ли както из bat'ника не используя сторонних утилит при логоне заменить падченную SFC_OC.DLL на оригинальную ?

ЗЫ: Замену с помощью WinPE, Safe Mode, и т.п. не предлагать.....

Mr dUSHA 06-09-2008 15:19 892378

Цитата:

Цитата Dilinjer
Подскажите можно ли както из bat'ника не используя сторонних утилит при логоне заменить падченную SFC_OC.DLL на оригинальную ? »

Патченую не удалять, а переименовать в что-то типа old.dll, а потом уже скопировать оригинальную на место.

Либо еще во время установки, на Т-12 например, засунуть все, что нужно переименовывать/удалять, в ветку реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
напрямую, либо с помощь функции MoveFileEx с параметром MOVEFILE_DELAY_UNTIL_REBOOT (но это конечно уже не из батника... :) )

Dilinjer 07-09-2008 17:38 893069

Цитата:

Цитата Mr dUSHA
Либо еще во время установки, на Т-12 например, засунуть все, что нужно переименовывать/удалять, в ветку реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations »

- Классная идея!!! Но как обычно, есть ложка дегтя в бочке меда :( В bat'нике , который выполняется на T-12, я добавил след. строку:
Код:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" /v PendingFileRenameOperations /t REG_MULTI_SZ /d \??\%SystemRoot%\system32\sfc_os.dll /f
- Чтоб данный финт по удалению файла сработал надо в конце данных параметра PendingFileRenameOperations в двоичном виде добавить 00 00 .
Возможно ли это реализовать через REG ADD ??? ИМХО, очень нужная фича.....

Пришлось все сделать через ж.... В батнике, выполняемом на T-12 добавил: REGEDIT /S DelFile.REG
Содержимое DelFile.REG:
читать дальше »
Код:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager]
"PendingFileRenameOperations"=hex(7):5c,00,3f,00,3f,00,5c,00,43,00,3a,00,5c,00,\
  57,00,49,00,4e,00,44,00,4f,00,57,00,53,00,5c,00,73,00,79,00,73,00,74,00,65,\
  00,6d,00,33,00,32,00,5c,00,73,00,66,00,63,00,5f,00,6f,00,73,00,2e,00,64,00,\
  6c,00,6c,00,00,00,00,00,00,00 - как сие добавить через REG  ADD?


Mr dUSHA 07-09-2008 20:18 893187

Цитата:

Цитата Dilinjer
Пришлось все сделать через ж.... В батнике, выполняемом.... »

А так делать не корректно, поскольку система уже могла поставить какие-то файлы в очередь на отложенное переименование, а вы этим REG-файлом перезаписываете возможно существующее значение параметра, и таким образом после перезагрузки могут всплыть подводные грабли...

Я слепил по быстрому, на коленках утилиту для отложенного удаления или переименования файлов.
Она сама ставит файлы в очередь на отложенное удаление или переименование через ветку реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

Причем утилиту можно вызывать из батника много раз, и при этом в PendingFileRenameOperations будут просто добавляться заданные файлы в конец очереди.

Юзать так:
для удаления:
ADel.exe %systemroot%\system32\mydll.dll

для переименования:
ADel.exe %systemroot%\system32\mydll_1.dll %systemroot%\system32\mydll_2.dll

Dilinjer 07-09-2008 21:06 893239

Цитата:

Цитата Mr dUSHA
А так делать не корректно »

- это был всего лишь пример, ясно что надо анализировать в реестре значение параметра PendingFileRenameOperations

Цитата:

Цитата Mr dUSHA
Я слепил по быстрому, на коленках утилиту »

да вроть таких утилит с лихвой, и у мелкомягких что-то подобное есть.... Просто хотелось сие реализовать без сторонних утилит, но видимо это нетот случай :(

Комсомолец 09-09-2008 11:09 894405

Цитата:

Цитата Boa Soft
У меня тоже есть подобная проблема - у меня USB KVM, и, соответственно, подключая машины для ремонта приходится дожидатся определения мыши и клавиатуры. Но, если выскочит окно определения модуля подключения монитора, то ой. Курим бамбук и идем за PS/2 клавой. »

Вот это вообще жесть. Образ разворачиваю на рабочем месте, а выдаём машины на новом мониторе. И часто очень ходим за клавой PS\2. Сейчас поставили там ее, чтобы не ходить.

Real Root 11-09-2008 15:51 896443

Не подскажите, что sysprep вносит в реестр, чтоб не было проблем с мышами и клавами.
Иногда бывает так, что клава PS2, и нужно ждать установку звучек, видях и проч. фигни. А иногда вылазиет модуль подключения монитора или SM контроллер шины - и все, хрен что сделаешь.
Вобщем как хотябы решить проблему с PS2устройствами.

И еще вопрос, вы где сами тусуетесь по заливкам? Я так понимаю, что в этой теме только отголоски той самой дискуссии. На ру0борде есть тема перенос ситемы на другую мать - но она мертвая и интересных идей я там давно не видел.

Mr dUSHA 11-09-2008 18:33 896575

Цитата:

Цитата Real Root
Не подскажите, что sysprep вносит в реестр, чтоб не было проблем с мышами и клавами. »

Если кратко, то в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase
он прописывает критические устройства. Более подробно возможно BoaSoft скажет...
Я занимаюсь только чистыми автоустановками, и в заливки не вникал пока....

Oleg_II 11-09-2008 19:36 896616

Real Root
Обижаете :) В теме по переносу на другую мать есть ссылки на тему по клонированию, да и в теме по заливкам тоже перекрестные ссылки и все на последние находки из китайских заливок - там есть про мыши и клавиши. Для меня эти проблемы уже решены ;)

Вкратце - в ветки реестра вносятся предуставновки для этих устройств, их ограниченное количество вариантов именно для клав и мышей и все уже вытянуты (хочется надеятся).

Я сейчас сравниваю реестры нескольких китайских заливок и Windows Fundamentals for Leagacy PC (очень интересная штука, между прочим), скоро еще раз выложу результаты. Но в плане клав и мышей там точно ничего кардинального уже не будет (с последним вариантом рег-файла), добавятся другие вещи ;)

Real Root 11-09-2008 23:04 896800

Ну чтож, будем ждать всемогущего (BoaSoft) пусть прояснит, что там вноситься в CryticalDevices. А я пока на борду схожу, посмтрю тему по клонированию.

Dilinjer 12-09-2008 09:56 897031

Oleg_II, а как реализвать отключение минимальных требований к памяти и месту на диске ?

Oleg_II 12-09-2008 20:35 897500

Dilinjer
Редактируем TXTSETUP.SIF:

1. Для отключения минимальных требований к памяти в секции SetupData меняем значение для RequiredMemory на 10485760.

2. Для отключения минимальных требований к месту на диске в секции DiskSpaceRequirements все значения кроме следующих 4-х меняем на "0":
40PFDocSpace = 1744
50PFDocSpace = 25336
51PFDocSpace = 25336
PFDocSpace = 81112

Вообще, это твик из nLite ;)

Комсомолец 24-09-2008 04:33 907233

Кстати, эту проблему еще иногда решаем просто перезагрузкой.

gabasov 29-12-2008 03:31 992720

Цитата:

Цитата Mr dUSHA
чтоб не было проблем с мышами и клавами »

Скорее всего, проблем не избежать. Дело в том, что сперва устанавливается устройство USB-controller, а уже потом USB-клавиатуры и мыши

Mr dUSHA 16-04-2009 14:29 1095761

Обновления:

Добавлен набор патчей для WinXP SP2 x64 и Win2003 SP2 x86.
Все патчи собраны в единый архив Patches_5.2.3790.3959_for_x86_and_x64.7z

Shido 16-04-2009 14:46 1095792

Вложений: 1
Mr dUSHA, означает ли это что компоненты из Win2003 SP2 x86 полностью эквивалентны 32 битным файлам включённым в WinXP SP2 x64? В любом случае спасибо потащил на тесты.

Цитата:

Цитата Mr dUSHA
Отключение защиты файла Syssetup.inf от изменений для возможности тонкой настройки процесса установки ОС »

Это позволит править все защищённые Inf для x64 (в теории) типа LAYOUT.INF или только Syssetup.inf?

Можно напомнить о эквиваленьте патча SfcFiles.dll от Boa Soft для x64?

Добавлено
Сделай плиз патч для syssetup.dll версии 5.2.3790.4226 (во вложении), это для следующей версии моего пакета.

Ещё вопрос нет у тебя случайно какой нибудь маленькой утилиты которая на основе твойх текстовых файликов (так чтоб информация о патчинге нескольких версий хранилась в одном файле) патчила бы файлы в соответсвии с текущей предложеной версией. Волнует совместимость с x64 т.к. в патчинге не разбираюсь.

Dilinjer 16-04-2009 16:08 1095888

Кто бы еще подсказал консольные тулзы опр. версию DLL и патчющие файл по указанию в передаваемых прараметрах смещения и данных, чтоб была возможность наваять батник, а не в ручную все патчи вносить каждый раз при отработке UPDATEPACK'а ?

Mr dUSHA 16-04-2009 16:39 1095925

Цитата:

Цитата Shido
делай плиз патч для syssetup.dll версии 5.2.3790.4226 (во вложении), это для следующей версии моего пакета. »

Готово.
Во вложениях шапки темы, в файле:
Patches_5.2.3790.4226_for_x86_and_x64.7z

Цитата:

Цитата Shido
означает ли это что компоненты из Win2003 SP2 x86 полностью эквивалентны 32 битным файлам включённым в WinXP SP2 x64?»

Да. Именно так. Вся 32-битная половина WinXP SP2 x64 - это файлы от Win2003 SP2 x86.
Такчто 32-битные патчи универсальны.

Цитата:

Цитата Shido
Это позволит править все защищённые Inf для x64 (в теории) типа LAYOUT.INF или только Syssetup.inf? »

А кто его знает... Попробуйте, и скажите мне. Я еще не обзавелся дистрибутивом х64 для тестов.

Цитата:

Цитата Shido
Ещё вопрос нет у тебя случайно какой нибудь маленькой утилиты которая на основе твойх текстовых файликов (так чтоб информация о патчинге нескольких версий хранилась в одном файле) патчила бы файлы в соответсвии с текущей предложеной версией. Волнует совместимость с x64 т.к. в патчинге не разбираюсь. »

Нет. Не делал такого еще.
Сделаю потом на досуге.

BXA 20-04-2009 09:58 1098740

Shido, Mr dUSHA,

Добавил ещё один патченный файл http://forum.oszone.net/thread-109835.html
ThemeUI.dll для x64

Комсомолец 23-04-2009 19:07 1102329

Mr dUSHA, патченный файлик для 6.0.3790.3959 (ru_win_srv_2003_r2_enterprise_with_sp2_vl_X13-46484) не имеется? Текущий никак не подходит(( Пpикpепил на всякий случай.

Mr dUSHA 24-04-2009 00:55 1102561

Цитата:

Цитата Комсомолец
патченный файлик для 6.0.3790.3959 (ru_win_srv_2003_r2_enterprise_with_sp2_vl_X13-46484) не имеется? Текущий никак не подходит »

Спасибо за багрепорт! ;)
Для библиотеки UXTHEME действительно другие оффсеты для патчей.
Завтра обновлю архивы и текстовые документы по патчах. Сделаю отдельный архив с библиотеками для Win2003 SP2 x86 RU.

Во вложении патченая UXTHEME для той таки Win2003 SP2 x86 RU, оригинал которой вы прислали.



UPD 24.04.2009:
Вложение удалил.
Теперь эта патченая библиотека находится в составе набора Patches_5.2.3790.3959_for_Win2K3_x86.7z в шапке темы.

Комсомолец 24-04-2009 01:01 1102566

Mr dUSHA, большое спасибо. Пошел тестиpовать. :)

всё работает! ))

Mr dUSHA 24-04-2009 17:37 1103184

Обновлены наборы:

Patches_5.2.3790.3959_for_WinXP_x64.7z, Patches_5.2.3790.4226_for_WinXP_x64_Hotfix.7z - набор патченых файлов для ОС WinXP SP2 x64 ENG

Patches_5.2.3790.3959_for_Win2K3_x86.7z - набор патченых файлов для ОС Win2003 Server SP2 x86 RUS

Также Fake-Setup Advanced теперь поддерживает Win2003 Server SP2 x86, и с помощью его можно также самостоятельно делать патченые библиотеки для этой платформы.

CXREF 27-05-2009 08:08 1128471

Патчи, оффсеты и т.д. Все хорошо. Но одно интересует. Например хочу добавить свой файл в дистрибутив чтоб он стал его частью (родным). Это файл тем, чтоб наравне с Luna(а то и вовсе Luna убрать). Запаковать его в CAB, прописать в соответсвующих файлах и т.п. Так вот помнится такая подделка пресеклась еще на этапе копирования файлов необходимых для установки(текстовом этапе установки). Можно ли убрать проверку в этом случае?
Можно выйти из положения, зделав этот файл не файлом тем Windows, путем придания ему другого(любого) расширения, тогда файл копируется в папку с темами, а потом(на следующих этапах установки) найти способ поменять расширение на .theme. Но такой вариант не стоит заморочек, лучше просто поместить темы в папку $OEM$ c соответствующим путем.

GreyAngel 28-05-2009 11:29 1129341

CXREF, почитайте статейку по вашему вопросу http://www.oszone.net/2806/

MKN 29-05-2009 10:16 1130102

Интересует только
Цитата:

Отключение запуска системы SFC(WFP) для принудительного сканирования всех защищенных системных файлов на Т-8 графического этапа установки (экономия времени на установку ОС - 5-10 минут).
Достаточно ли заменить в дистрибутиве только патченную syssetup.dll из Patches_5.2.3790.4226_for_WinXP_x64_Hotfix.7z ? Или необходимо сделать что то ещё ?

И нужно ли syssetup.dll обрабатывать ModifyPE перед упаковкой в CAB ?

ps Проделал эту операцию - CRC всё равно иная, чем у оригинала...

Oleg_II 11-06-2009 07:33 1140707

Mr dUSHA
Патч для OOBE у меня как-то не совсем работает - после его применения и если редактировать SYSSETUP.INF, многие службы в только что установленной системе не запускаются автоматом, хотя это для них прописано. Если OOBE не удалять, то все в порядке. После обработки SYSSETUP.DLL патчем от Gosh-а этого эффекта нет (инфо).

Это имеет место на Хоум версии (черт его знает, может из-за того, что там систему нужно активировать и она как-то замечает, что модуль активации отсутствует?).

ЗЫ Вообще-то, не проблема, я просто еще один патч добавляю. Главное, я просто балдею от патча с установкой неподписанных драйверов - РУЛЕЗ!!! :)

BillGates_XP 11-06-2009 12:58 1140896

Mr dUSHA на графические установке будет разрешение 800х640 как сделаю на 1024х768

Mr dUSHA 11-06-2009 21:24 1141252

Цитата:

Цитата Oleg_II
Патч для OOBE у меня как-то не совсем работает - после его применения и если редактировать SYSSETUP.INF, многие службы в только что установленной системе не запускаются автоматом, хотя это для них прописано. Если OOBE не удалять, то все в порядке. »

Мало информации. Какая версия SYSSETUP.DLL? Лог патчера в студию.

Цитата:

Цитата Oleg_II
Это имеет место на Хоум версии »

Удаление на хоум-версии не тестировалось.

Oleg_II 11-06-2009 22:09 1141284

Mr dUSHA
SYSSETUP.DLL v5.1.2600.5512 - файл из оригинального дистрибутива.

Лог патчера? Не совсем понял где его взять... Вначале я пользовался SETUP.EXE (FAKE SETUP), потом перешел на обработку вручную по приведенной в ALL_XP_PATCHES.txt информации (использовал простенький XVI32, но раз другие патчи работают, значит ошибки быть не могло).
Цитата:

Удаление на хоум-версии не тестировалось.
Дык я ж без претензий :) Просто чувствую, что что-то не так, добавляю в дистрибутив единственный файл SYSSETUP.DLL обработанный nLite - работает, делаю патч этого файла по Gosh - работает, добавляю пропатченный по приведенной текстовке файл - все вроде и работает, но многие службы не запущены, хотя и стоят в автоматическом режиме...

Еще раз заостряю внимание, что происходит это при удалении OOBE (комментирую строку с OOBE.INF в SYSSETUP.INF), сейчас не помню 100%, но вроде если не удалять, то службы запущены (но если нельзя удалять, то патч уже не так нужен - можно тоже самое через WINNT.SIF сделать).

SOLON7 11-06-2009 23:33 1141320

Цитата:

Цитата Oleg_II
о многие службы не запущены, хотя и стоят в автоматическом режиме... »

Попробуйте активировать винду, или пропатчить на предмет активации. Просто Система постоянно требует активации. А OOBE и есть программа активации. А то что службы не запускаются говорит о том что windows не доустановилла компонент OOBE.

Странно что вы до сих пор сидите на HOME версии, она же обрезанная !!

Выгрузите ветьвь реестра HKEY_LOCAL_MACHINE\SYSTEM\Setup в тему.
Но скрорее всего патч не будет работать так как, запуск OOBE осуществляется не из syssetup.dll, или по крайней мере не из того кода который патчится Fake setupom.
Лучше не забиваейте себе голову и переходи на корпоратиную лицензию. Там с этим проблем нет !!

Mr dUSHA 12-06-2009 03:21 1141434

Цитата:

Цитата Oleg_II
Вначале я пользовался SETUP.EXE (FAKE SETUP), потом перешел на обработку вручную по приведенной в ALL_XP_PATCHES.txt информации »

Вы видимо что-то путаете. Ни в текстовке ALL_XP_PATCHES.txt , ни в любом другом файле из шапки нет вообще упоминания о патче ООВЕ. ;)
Я его туда не добавлял просто потому, что лень было :)

А в Фейк-сетап этот патч добавлен только начиная с версии 9.05.27.
Сейчас актуальная версия 9.06.11. Используйте ее для патча файла с ключем --pss-oobe

Если хотите руками, то для вашей 5512 это такой патч:
Код:

000574FF: 74 90
00057500: 07 90

Цитата:

Цитата SOLON7
запуск OOBE осуществляется не из syssetup.dll, или по крайней мере не из того кода который патчится Fake setupom. »

Другого кода нет. Если забивка строк пробелами помагает, то он просто что-то не то делает, или не то патчит.

Oleg_II 12-06-2009 05:50 1141452

Mr dUSHA
Упс... Ну надо же так опозориться... :) Действительно, я применил все патчи из ALL_XP_PATCHES.txt кроме патча для UXTHEME.dll (темы отключаю), а там этого патча и не было... Поэтом и не работало. Хотя, я не помню сейчас точно, была ли проблема при использовании Фейк-сетапа - удалял ли я тогда ООВЕ при установке (утилита мне понравилась, но вернулся просто к добалению подготовленных файлов в дистрибутив)...

Черт его знает, но пробелы помогают - все работает. Надо попрбовать и приведенный патч :)

SOLON7
Дык проблем нету - версий навалом! :) И все, ессесно, активировано. Просто раз уж я с обрезаниями эксперементирую, то почему бы сразу официальную обрезанную версию не использовать? Тем более, что бинарный код там один в один (заменяешь SETUPREG.HIV в Home версии на тот же файл от Pro и получаешь после установки XP Pro ;) можно и ручами пропатчить - там всего один ключик отличается, подключаешь этот файл в реестр, изменяешь и вуаля!). Есть подозрение, что и при замене еще нескольких файлов вообще корпоративка получится. Впрочем, это не самоцель :)
Разницы в HKEY_LOCAL_MACHINE\SYSTEM\Setup скорее всего и нету. Там разница в нескольких других ключах (идентификация продукта, лицензия количество используемых процессоров и начальное состояние нескольких служб для поддержки динамических дисков, парочка больше косметических мест - таб SECURITY и опция отключение SIMPLE FILE SHARING из гуи, остальное - это уже то, что добавлено в Pro "в нагрузку" в отличие от Home).

Mr dUSHA 12-06-2009 11:30 1141549

Цитата:

Цитата Oleg_II
Надо попрбовать и приведенный патч »

Вот он то какраз вам и нужен.
Из ALL_XP_PATCHES.txt ничего не поможет вам отключить ООВЕ.

Функция, которая частично и в нужном месте отключается приведенным выше патчем, какраз и добавляет в реестр те строки на запуск ООВЕ, которые вы пробелами заполняете.

Цитата:

Цитата Oleg_II
Разницы в HKEY_LOCAL_MACHINE\SYSTEM\Setup скорее всего и нету. »

Не "скорей всего" а вообще нету никакой. syssetup.dll один и тот же для обеих версий, и тип ситемы (Pro/Home) там не проверяется.

Oleg_II 12-06-2009 22:31 1141967

Mr dUSHA
Работает :)

Compiller 09-09-2009 10:35 1214622

Прочитал тему вроде не видел - предложение в setupapi.dll сделать патч чтобы кнопкой по умолчанию было "Да" при установке неподпсанных драйверов - тогда можно хотя бы ввод нажимать или пробел, а не щёлкать мышью или Tab или стрелками.
Тут ещё кто-то спрашивал про замену файла чисто батником
MOVE %SYSTEMROOT%\SYSTEM32\SFC_OS.DLL %TEMP%\SFC_OS.DLL.OLD
MOVE %SYSTEMROOT%\SYSTEM32\SFCFILES.DLL %TEMP%\SFCFILES.DLL.OLD
COPY /Y SFC_OS.DLL %SYSTEMROOT%\SYSTEM32\DLLCACHE
COPY /Y SFCFILES.DLL %SYSTEMROOT%\SYSTEM32\DLLCACHE
COPY /Y SFC_OS.DLL %SYSTEMROOT%\SYSTEM32
COPY /Y SFCFILES.DLL %SYSTEMROOT%\SYSTEM32
Ну а удалить файлы с двойным расширением можно после перезагрузки.

Mr dUSHA 11-09-2009 23:01 1216904

Цитата:

Цитата Compiller
Прочитал тему вроде не видел - предложение в setupapi.dll сделать патч чтобы кнопкой по умолчанию было "Да" при установке неподписанных драйверов - тогда можно хотя бы ввод нажимать или пробел, а не щёлкать мышью или Tab или стрелками. »

Зачем все так сложно то? :) Проще патчами из шапки отключить проверку подписей, чем еще потом что-то нажимать при установке неподписанных драйверов.

semiono 23-12-2009 01:56 1302152

Ура! Мне помогло! Я уже думал никогда от этого окна не избавиться -
Welcome to the Hardware Setup Wizard ГгY :)

Патчил setupapi.dll v5.1.2600.5512

0001CD29: 74 EB
0001D509: 74 EB
00021B7F: 74 90
00021B80: 0A 90
00021B8E: 75 EB
000456C7: 74 EB

и так же syssetup.dll v5.1.2600.5512

00033E00: 39 85
00033E01: 5D DB
00033E02: 08 90
00033B29: 73 EB
0005AB31: 6A EB
0005AB32: 46 0D

Причём во втором уже даже ресурсы были патченые, оба файла после обработки nLite 1.4.9.1.
И modifype file -c до и после применялось. Все адреса реальные, что странно даже после ResHacker.
Отлично! Установил nLite - всё работает! Значит ResHacker не задевает секцию кода по адресам,
чего я опасался :)

semiono 10-03-2010 02:27 1364951

Отличная тема! Минуты три искал её! Надо бы это в раздел статей вынести!?
Сейчас займусь WinXP 64-bit SP1, посмотрю что актуально и работает там.
Если патчи устарели обновите пожалуйста!?
Я ещё один загрузочный патч где-то вычитал, тоже помогло!
SETUPLDR.BIN:
2060: 74 EB 03 1A
иначе NTLDR missing or corrupt из-за проверки CRC

Mr dUSHA 12-03-2010 13:23 1366917

Цитата:

Цитата semiono
Я ещё один загрузочный патч где-то вычитал, тоже помогло!
SETUPLDR.BIN:
2060: 74 EB 03 1A
иначе NTLDR missing or corrupt из-за проверки CRC »

http://forum.oszone.net/thread-110577.html

semiono 31-03-2010 00:48 1381140

А что делать с HHCtrl.ocx и whhctrl.ocx, при установке выдаёт предупреждение "некоректного копирования",
делал modifype HHCtrl.ocx -C не помогло! Или это надо в SIF подредактировать, я не вкурсе?

Кстати, нужно ли было делать modifype syssetup.dll -C после изменения ресурсов, или он итак не проверяется уже?
И вообще если я делаю сам патчи uxtheme.dll, setuapi.dll, sfc_os.dll нужна ли эта коррекция?

Amigos 31-03-2010 07:19 1381246

Цитата:

Цитата semiono
modifype syssetup.dll -C после изменения ресурсов »

нет, безполезно, эта коррекция делается самим модификатором ресурсов

semiono 05-04-2010 16:40 1385493

Цитата:

Цитата semiono
А что делать с HHCtrl.ocx »

? :(

semiono 07-04-2010 02:30 1386730

Изменил logonui.exe, taskmgr.exe, shutdown.exe, все (x64) опять началось, крики о том,
что файл неправильно скопирован! :(

syssetup.dll + setupapi.dll + sfc_os.dll у меня при этом пропатченные по мануалу:
Patches_5.2.3790.3959_for_WinXP_x64.7z

Что делать, хоть намекните! Я уж точно покрайней мере taskmgr.exe ковырял в x86,
и это даже без патчей работало. А файл textsetup.sif нельзя подредактировать, что-то вроде на эту тему было?
Хотя по всему похоже на sfc_os.dll некорректный... ?
Я дурак удалил nLite файлы, но logonui.exe всётаки остался, я сравнил хеш - точно такой же,
как из оригинального дистра, а в чём тогда трабла?

logonui.exe v6.0.3790.3959
Вообщем у меня SP2 (x64), с чем сражаюсь в данный момент.

Amigos 07-04-2010 07:37 1386787

Цитата:

Цитата semiono
А файл textsetup.sif нельзя подредактировать »

почему?
Цитата:

Цитата semiono
что-то вроде на эту тему было? »

вы с layout.inf не путаете?

Mr dUSHA 07-04-2010 11:40 1386915

Цитата:

Цитата semiono
Изменил logonui.exe, taskmgr.exe, shutdown.exe, все (x64) опять началось, крики о том,
что файл неправильно скопирован! »

Если самостоятельно редактировали их шеснадцатиричным редактором, то после этого необходимо еще их через modifype -C прогнать, поскольку установщик ОСи после копирования каждого файла из дистрибутива на винт пересчитывает его реальную КС и сверяет с той, что записана в РЕ-заголовке. И если записанная и реальная КС не совпадают, то он и выдает такие крики, думая что файл просто некорректно скопирован из поврежденного дистрибутива.

semiono 07-04-2010 14:48 1387103

Да тут дело ясное - "поскольку установщик ОСи после копирования каждого файла из дистрибутива на винт пересчитывает его реальную КС", я просто засуетился в панике, сейчас начинаю вспоминать кое что...
Во-первых я всётаки не редактировал в hex, а взял готовые либы из 7z, постоянно забываю об этом,
так как у меня ранньше версия SP1 с адресами не совпадала, но сейчас я добыл SP2 и надо будет
самому попробовать хакнуть... (хотя сомнений не должно быть, что SP2 файлы вдруг у меня будут иными)
Но я вроде бы главное вспомнил, помоему я раньше напрочь убивал проверку в sfc_os.dll какими-то пару байтами,
но я не знаю здесь именно тот хак в мануале или может быть менее агрессивный, надо будет вспомнить и сравнить.
Mr dUSHA, спсибо что откликнулся, просто когда люди не пишут на форуме у меня
начинается паника, что никого вокруг нету и дело стало неизвестно на сколько. Вообщем нервы. )))
(x64 и без того столько времени отожрал, после того как с x86 уже давно всё стало ясно)
:)

Mr dUSHA 07-04-2010 19:07 1387314

Цитата:

Цитата semiono
x64 и без того столько времени отожрал, после того как с x86 уже давно всё стало ясно »

С x64 все абсолютно аналогично.
Единственный важный момент, что в x64-дистрибутиве содержатся по две копии большинства системных библиотек, одна из которых нормальная 64-битная, и имеет обычное имя типа syssetup.dl_, а вторая копия - 32-битная, имя дистрибутивного файла несколько отличается (я на память не скажу, как они именуются там примерно..., но в именах присутствуют буквы wow...).
В нормальной установке и работе ОСи используются 64-битные модули, и именно их нужно патчить, но за компанию можно и их 32-битных собратьев.

Только не запутайтесь в 64-битной ОСи с именами системных папок, поскольку 64-битная ОСь для запущеных в ней 32-битных программ вместо стандартной системной System32 (в которой лежат 64-битные модули) не заметно для вас подсовывает папку SysWOW64 с 32-битными близнецами модулей.

Цитата:

Цитата semiono
Но я вроде бы главное вспомнил, помоему я раньше напрочь убивал проверку в sfc_os.dll какими-то пару байтами, »

Вам это нужно:

Цитата:

Цитата Mr dUSHA
sfc_os.dll
- Разрешение возможности использования ключа реестра HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,SfcDisable со значением 0xFFFFFF9D для возможности полного отключения SFC.

syssetup.dll
- Отключение запуска системы SFC(WFP) для принудительного сканирования всех защищенных системных файлов на Т-8 графического этапа установки (экономия времени на установку ОС - 5-10 минут).»

В прилагаемых к архивам с патчеными файлами ТХТ-шках все кратко описано.

semiono 11-04-2010 05:05 1389838

Я проверил setupapi.dll v5.2.3790.4511 из хотфикс архива, на "5.2.3790.3959" nLite сборке, работает!
Всё остальное тоже проверенно! :)
Не забывайте юзать маленький свитчер modifype syssetup.dll -c.
И не забывайте паковать setupapi.dll как makecab wsetupapi.dll, там где это надо.

Mr dUSHA 17-03-2011 18:55 1637239

Цитата:

Цитата Гений
что используется целых 3 фикса »

Все 3 фикса для разных целей, и уж никак не для того, чтоб ошибки в журнал не выводились. Посидите, подумайте и разберитесь в их предназначении.

Цитата:

Цитата Гений
вместо того, чтобы использовать всего 1 фикс для setupapi.dll (вот этот»

Это не фикс, а нечто в стиле "я крутой кулхацкер, щас че-нить пропатчу, первое что под руку попадется! в логике кода разбираться не буду принципиально, а только чтоб ошибки не выводились!".
Не берите идей у нЛайта, а думайте своей головой.
Делая такое для какого-то там никому ненужного ДЕЛ-аддона, вы убиваете на корну механизмы ОСи предназначенные, не только для проверки цифровых подписей, а для проверки целостности файлов.
Повреждения файлов могут быть вызваны не только теми же ДЕЛ-аддонами, а еще и проблемами с винчестером или модулями памяти. Таким образом тотальное отключение всего подряд превращает нормальную ОСь. вовремя сообщающую пользователю об обнаруженных ошибках в натуральную г****-сборку, тихо глючащую на ровном месте.

Цитата:

Цитата Гений
Получается всё то же + дополнительно нет отзванивания в setupapi.log строчек вида: »

Всего того же никак не получается даже приблизительно.

Цитата:

Цитата Гений
нельзя ли для патчера Fake-Setup-Advanced добавить обработку syssetup.dll и setupapi.dll версии 5.1.2600.2180 (угу, SP2; угу, для динозавров)? »

Нет. Поддержка SP2 была давно удалена из принципиальных соображений. Я не верю в бредовые сказки, типа: "SP2 быстрее и стабильнее SP3..." и т.д.

Цитата:

Цитата Гений
Вот набор (адреса) оригинальных патчей »

Спасибо. Адреса у меня в архивах и так есть, поскольку я эти патчи и придумал.

Mr dUSHA 18-03-2011 00:03 1637541

Цитата:

Цитата Гений
Мож сначала проверишь, а потом будешь сыпать голословными утверждениями? Или укажи то, чего не дает приведенный мной фикс из того, что есть в оригинальных 3-х фиксах. »

Не дает системе писать в лог реальную ситуацию, например то, что драйвера не подписаны.
Не дает показывать окно о неподписаности драйвера, если политика 1, и соответственно блокировать установку, если политика 2.
Мой подход - неразрушающая модификация и корректировка только конкретно того, что нужно, без последствий на других связаных механизмах системы. В твоем случае отключается комплексно всё.

Цитата:

Цитата Гений
А касаемо твоего скилла: я здесь уже не раз видел комменты, гласящие о том, что твои фиксы не работают так, как надо »

Здесь – это где? Случайно не в ветке ДЕЛ-аддонов?

Цитата:

Цитата Гений
тупо организует прыжок через функцию pSetupWriteLogEntry (кто-то говорил выше: "и уж никак не для того, чтоб ошибки в журнал не выводились") и присваивание 1 в определенный адрес из-за ненулевого кода »

Вот и проверь теперь, зачем этот флаг.

Цитата:

Цитата Гений
А как же встроенный в syssetup.dll фикс отключения защиты файла syssetup.inf? Это ведь сделано тобой именно для аддонов удаления. »

Сделано раньше и не для него, а для себя. Я очень давно использую правленый syssetup.inf, и таких косяков, как в аддонах удаления, никогда не наблюдал. Проблема именно в самих ДЕЛ-аддонах, а не в некорректности патча. Там какие-то непонятные нестыковки, исследовать которые мне абсолютно не интересно.

Цитата:

Цитата Гений
Кстати, этот фикс, конечно, позволяет отрубить проверку этого файла на T-39 (гы, путем отмены проверки целой кучи каталогов, - это интересно смотрится в свете твоих слов выше) »

Смотри внимательней. В том месте происходит проверка списка ИНФ-файлов. Список состоит аж из одного сабжевого syssetup.inf.

Цитата:

Цитата Гений
но фишка в том, что правленый syssetup.inf вызывает на работающей ОС выскакивание окошка WFP при запуске любого (хотя мож только установки дров) инсталлятора с любого устройства, использующего этот файл как промежуточный для своей установки; »

Реальный подробный пример в студию!

Цитата:

Цитата Гений
(Во всяком случае на время установки ОС, потом можно и вернуть оригинальную dll, - во-всяком случае, все фиксы той же syssetup.dll нужны только на время установки ОС, потом логичнее было бы вернуть оригинальный файл в систему, чего нигде не делается почему-то). »

Это ты просто на ДЕЛ-аддонах зациклился. Если FSA используется по прямому назначению, как установщик, то этого файла на диске и не модифицирует, а делает патчи в памяти, которые действуют до конца ГУИ-этапа. Такчто восстанавливать ничего не требуется.

neorom 17-12-2011 20:54 1817016

Mr dUSHA прошу выклады патч для файла sxs.dll версия 5.1.2600.5699 (xpsp_sp3_qfe.081023-1324) з WINDOWS XP SP3 платформа x86 (або готовый файл sxs.dll) чшоб можна було редактировати файл COMCTL32.DLL с папок I386\ASMS\6000\MSFT\WINDOWS\COMMON\CONTROLS и I386\ASMS\60\MSFT\WINDOWS\COMMON\CONTROLS

Amigos 17-12-2011 22:18 1817064

Цитата:

выклады патч для файла sxs.dll версия 5.1.2600.5699 (xpsp_sp3_qfe.081023-1324) з WINDOWS XP SP3 платформа x86 (або готовый файл sxs.dll) чшоб можна було редактировати файл COMCTL32.DLL с папок I386\ASMS\6000\MSFT\WINDOWS\COMMON\CONTROLS и I386\ASMS\60\MSFT\WINDOWS\COMMON\CONTROLS
Служебные - [addon] Fake-Setup Advanced

neorom 18-12-2011 01:06 1817156

Цитата:

Цитата Amigos
Служебные - [addon] Fake-Setup Advanced »

Не могу пропаштить.


Время: 23:12.

Время: 23:12.
© OSzone.net 2001-