Из Руссиновича: "Когда дальнейшее выполнение потока невозможно, например из-за его завершения или перехода в ждущее состояние, ядро напрямую обращается к диспетчеру, чтобы вызвать немедленное переключение контекста. Однако иногда ядро обнаруживает, что перераспределение процессорного времени (rescheduling) должно произойти при выполнении глубоко вложенных команд. В этой ситуации идеальный выход — запросить диспетчеризацию, но саму операцию отложить до выполнения ядром текущих действий. Такую задержку удобно организовать с помощью программного прерывания DPC (deferred procedure call)." Мне интересно как ядро: "произойти при выполнении глубоко вложенных команд" это определяет?
Если я не ошибаюсь, то ядро само не прерывает твой поток когда тот обрабатывает прерывание, у него сильно высокий IRQL, так вот если нужно произвести какие-то сильно долгие операции в таком потоке, то чтобы не тормозить ядро, можно вызвать DPC рутину, которая будет работать с меньшим IRQL, что позволит ядру прерывать ее выполнение(и тем самым исключить возможность "зависаний", даже кратковременных). Слова "иногда обнаруживает", наверное как раз и означает, что в коде обработки прерывания стоит вызов IoRequestDpc(или аналогичной).
Не знаю какой перевод у Inside Windows 2000, но на себе испытал уродство перевода Inside Windows Server 2003, XP, 2000
<font color="gray][ EvilsInterrupt</font><!--color--><font color="gray]: Видать и ты, как и Four-F склоняешься к "хорошему" переводу Оригинала. ]</font><!--color--> Я бы пааапрааасил! Я всего-то и сказал насчет одной единственной фразы, что возможно она неточно переведена, причём, сказал не видя оригинала. Насчёт точности перевода всей книги не скажу, но сам материал излагается очень грамотно и не на туалетной бумаге, между прочим.
Four-F )) Сорри, ну никак не хотел тебя обидеть, имел свойство быть ситуативно наглым, что выразился не правильно. Приношу тебе, мои скромные извининения!!! All Книга толковая, но иногда приходится одно и тоже место, понескольку раз читать. Для меня эталоном является Э.Таненбаум "Современные Операционные системы" 2 изд. Блин, в нем хоть не сразу, но иногда он находит такие слова, которые наиболее точно определяют то или иное понятие!
Inside Windows 2000 в некотором смысле писана изоповым языком. Берите исходники w2k и nt4 и сразу все станет понятно.