А при чем тут IRQL_NOT_LESS_OR_EQUAL? Этот крах наступает обычно из-за глючных драйверов, а если у тебя таковых нет - то и сбоя системы возникнуть не должно.
Optical_Race, я полагаю, этот сбой может произойти при попытке возобновить процесс, чей рабочий набор выгружен в файл подкачки. Если у диспетчера потоков "проскользнёт" ошибка страницы. А симптомы (гашение экрана, отказ клавиатуры) явно намекали на то, что выполнить запрошенную операцию системе далось непросто.
Ситуации вроде той, что ты описал, не должны происходить при нормальной работе в любых обстоятельствах. Синий экран - это следствие либо ошибки в ядре Windows, либо ошибки в драйверах, антивирусе, либо отказа оборудования.
Я изучал исходники ReactOS (операционная система с открытым кодом, стремящаяся повторить архитектуру винды), в том числе - код, отвечающий за остановку потоков. Знаешь, как останавливается поток или процесс?
Во-первых, понятия остановки процесса в ядре винды нет. Есть только остановка потока, поэтому для остановки процесса необходимо остановить поочередно все потоки, которые в нем работают.
Остановка потока происходит путем вызова Kernel-mode APC. Это похоже на аппаратное прерывание. Поток приостанавливает исполнение кода, заложенного в него программистом, и исполняет некую процедуру, а потом возвращается к исполнению основного кода. Так вот, а процедура эта, в случае остановки потока, содержит вызов функции ожидания события (события возобновления потока). Так вот все нехитро все сделано.
В одном из постов в моем блоге было описание возможных проблем, которые может вызвать остановка потока во время исполнения им кода режима ядра Windows. Среди этих проблем действительно может быть крах системы, но это уже зависит от внимательности авторов драйверов, авторов ядра винды, и от везения. Ведь не обязательно, что запрос на останов поступит как раз тогда, когда он может привести к нарушению работы системы.