Кто-то любит пирожки, а кто-то - нет.

читать дальше
По мотивам Дериного капутера, на память мне и, быть может, кому ещё.
Внешние проявления проблемы помершего драйвера:
1. Нет интернета. То есть в браузере сразу же открывается страничка, что не могу показать.
2. В свойствах интернет-соединения, в сведениях, не назначено никаких адресов. Нет IP, нет адреса сервера и шлюза, нет DNS и всё такое. Это ввиду того, что их надо получать от DHCP-сервера по тому же протоколу, которому не ня.
3. В Диспетчере устройств, если потребовать от него показать скрытые устройства, в списке "Драйверы несамонастраиваемых устройств" (или как-то так) у пункта "Драйвер протокола TCP/IP" будет жёлтый треугольник. И в свойствах какая-то ошибка.
4. В событиях системы это отразится как какая-то проблема с сервисом TCP/IP - например, 7000 "Не удалось запустить службу TCP/IP. Не найден файл". Причём, эта зараза не пишет, какой файл оно не нашло, так что простой заменой/добавлением не отделаться .з. Если кто знает, как это узнать, напишите, пожалуйста.
5. Служба оная будет в состоянии "Остановлена". Запустить её не удастся. Все завязанные на ней службы также будут не запущены.
6. ipconfig на любые запросы бдет ругаться, что "Данный запрос не поддерживается".
Что не ня:
1. sfc /scannow, как мне кажется, работать не будет. Или это только у Деры так... В общем, мне оно ругнулось, что какая-то служба не запущена. Как я подозреваю, именно из-за этого протокола .з.
2. netsh с просьбой перенастроить инет-службы ("netsh int ip reset") и винсок (аналогичная команда) не помогает.
3. WinSockFix тоже не помогает.
4. avz4 тоже.
Варианты решения:
1. "Восстановление системы". Если оно не испорчено вирусом или чем-то ещё, это самый простой путь.
2. Восстановление с установочного диска поверх. Но требуется диск с именно этой версией ОС.
3. Переустановка TCP/IP. С винХР оно является неудаляемой частью ОС, так что просто так это не сделать.
Но это можно :3
а) Идём в папку WINDOWS/Inf и ищем там nettcpip.inf
б) Исправляем в разделе [MS_TCPIP.PrimaryInstall] пункт Characteristics с 0xA0 на 0x80. То бишь, снимая флаг NCF_NOT_USER_REMOVABLE. Сохраняем. В х64 версиях ОС, возможно, потребуется переместить этот файл куда-то и подписать этот драйвер своей самодельной подписью, не забыв сохранить оригинальный cat-файл. Всё-таки х64-системы очень сильно не любят дрова без подписи. Или же запуститься в режиме(F8) без проверки подписей.
в) Идём в свойства любого интернет-подключения во вкладку со списком протоколов.
г) "Добавить" - "Протокол" - "С диска" - указываем папку с правленым inf-файлом, выбираем "TCP/IP протокол" (он будет без зелёной метки), соглашаемся, что он неподписанный, ня.
д) Мы снова в свойствах подключения. Выбираем TCP/IP протокол в списке. Теперь кнопочка "Удалить" доступна. Жмём её =)
е) Со всеми пугалками соглашаемся и удаляем его совсем.
ж) Удаляем нафиг из реестра ветки:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2
Перезагружаемся.
з) После перезагрузки исправляем файл обратно (0xA0 пишем вместо 0x80). Надо, чтоб файл стал таким же, как и до исправления. Соблюдайте пробелы и регистр.
и) Опять в свойства, опять "Добавить", "Протокол", папка, если всё сделали правильно, то "Протокол TCP/IP" будет теперь с зелёной меткой. Выбираем, соглашаемся, ставим.
к) Перезагружаемся. Вроде, теперь всё должно быть хорошо.
4. Если есть система такая же где-то на другом компе, то по inf-файлу этому проверяем наличие всех указанных в нём файлов и ключей реестра. Если чего не хватает - создаём согласно inf-файлу или копируем из другой ОС. Копирование касается, в основном, файлов или отсутствющих больших разделов реестра. Ещё, кстати, файлы можно взять с установочного диска, только что их ещё понадобится распаковать. но это тоже отдельная тема. Или из интернета, но с опаской - та ли версия там и мало ли какой вирус встроили. Если нашли отсутствющий файл и вернули - всё должно заработать .з. Кстати, ключи реестра проверять вручную смысла мало - с этим справится и ресет netsh'ом. А вот файлы проверить стоит =)
Возможно, есть и иные способы починить оную бяку.
UPD: 5 или 6 декабря 2012 года у кого-то обновился Аваст и посчитал опасным файл tcpip.sys. Возможно, обозвал руткитом и предложил удалить. Или втихую удалил. Если снова предложит этот файл удалять — не надо соглашаться. Делается всё, думаю, так же при починке, только надо найти на заведомо рабочем компе с той же ОС файл system32/drivers/tcpip.sys. Или просто сделать восстановление системы, если оно предусмотрительно включено.