Кто стоит по обе стороны от ndis.sys
Сетевая часть Windows устроена слоями. Внизу — драйвер конкретной сетевой карты или Wi-Fi-модуля, его пишет производитель чипа. Наверху — протоколы, по которым идёт интернет. Между ними работает ndis.sys: принимает пакеты от драйвера адаптера, отдаёт их выше и заодно управляет питанием адаптера, когда компьютер засыпает и просыпается. Если адаптеров несколько — встроенная сетевая карта, Wi-Fi, виртуальные адаптеры программ, — все они подключаются к ndis.sys одинаково, и по одному имени файла не видно, который из них подвёл.
Поэтому ошибка драйвера сетевой карты чаще всего и проявляется внутри ndis.sys: драйвер передал испорченные данные или обратился к уже освобождённой памяти, а обнаружилось это на следующем шаге. Сам код остановки при этом бывает разным — например, DRIVER_IRQL_NOT_LESS_OR_EQUAL или SYSTEM_THREAD_EXCEPTION_NOT_HANDLED. Есть у сетевой подсистемы и собственные коды — BUGCODE_NDIS_DRIVER (0x7C) и NDIS_INTERNAL_ERROR (0x4F). Смысл у всех один: сбой поймали на границе между драйвером адаптера и системой, а имя файла объединяет такие случаи по месту, а не по причине.
Ключевой вопрос разбора — система это или железо. Если синие экраны начались после установки драйвера, обновления Windows или программы со своим сетевым адаптером, картина программная. Если они появились без всяких изменений, после падения ноутбука, залития или переноса системного блока, в уме сразу стоит держать сам адаптер и оперативную память. Бывает и промежуточный вариант: драйвер исправен, но модуль после удара отвечает с ошибками, на которые драйвер не рассчитан. Поэтому программные проверки идут первыми, но не последними.
