上周在XP系统上测试一个驱动的时候,发现驱动加载不上,“net start”命令只是给出一个无意义的错误代码,驱动的DriverEntry()入口程序还没有得到机会运行。
初步怀疑是引入函数的问题,用WDK工具Depends.exe查看了一下驱动文件,果然是由于_chkstk函数无法解析所导致。
_chkstk是个微软C编译器的辅助库函数,MSDN上对其介绍十分简略:
_chkstk Routine is a helper routine for the C compiler. For x86 compilers, _chkstk Routine is called when the local variables exceed 4096 bytes; for x64 compilers it is 8K.
当编译器察觉到局部变量太大超过限值时(X86系统限值是4K,X64t系统上是8K), 编译器会自动插入_chkstk这个函数以保证栈空间所使用页面在内存中。
问题是发现了,但要查出来究竟在哪个函数中还是要费些心思的。从用户层移植过来不少代码,基本锁定问题出在其中,但如果一个函数一个函数寻找实在是个不讨巧的笨办法,也不符合程序人的一贯风格,便用IDA反编译驱动sys文件,于汇编代码中搜索_chkstk字串,直接锁定出了问题函数。此函数所使用的一个结构体中定义了超大数组,对栈的超常使用在内核中是相当危险的。
解决办法很简单,直接将此结构的定义放在一个从内存分配的结构中即可。问题虽已解决,但对于DDK中有关_chkstk的描述,及其相关的疑问一直让我觉得困扰,比如,为什么X86上是4K,而AMD64架构上可以是8K。
这两天终于有了时间,可以彻底地了结这个疑问了。
要想解决这个问题,还要先从用户栈的分配开始。以ReactOS代码为例,当线程创建时,CreateThread()会调用BasepCreateStack()来创建用户栈,具体可以参见ReactOS源码:
~/ReactOS/lib/kernel32/misc/utils.c。
BasepCreateStack()函数主要做三件事:
- 1,分配栈空间所需的虚拟内存,大小为Stack Reserve Size
- 2,根据Stack Commit Size锁定内存页面,如果Stack Commit Size小于Stack Reserve Size的话,需要增加一个Page,这个额外申请的Page用作Guard Page之用。
- 3,将栈底部的Page设定为Guard Page。
当用户栈被用尽时,会访问到栈底部的Guard Page。而对Guard Page的任何访问都会导致Page Fault的发生。Page Fault处理函数MmAccessFault()可以分析出此次Page Fault是由Guard Page导致,便会默认由用户栈处理程序MiCheckForUserStackOverflow()来处理。如果用户栈并没有溢出的话,即Stack Commit Size小于Stack Reserve Size的情况,MiCheckForUserStackOverflow()会自动向下扩展栈空间,扩展大小为GUARD_PAGE_SIZE。 GUARD_PAGE_SIZE针对不同的CPU架构有不同的定义:
X64: #define GUARD_PAGE_SIZE (PAGE_SIZE * 2)
X86: #define GUARD_PAGE_SIZE PAGE_SIZE
这里便解释了为什么X86系统上的限制是4K(即PAGE_SIZE),而X64上却为8K的原因。
说到此处,该是解答_chkstk()倒底是干什么的时候了。Visual Studio中有_chkstk的源码,以x86为例:
输入参数eax是所需堆栈大小(字节)
labelP _chkstk, PUBLIC
push ecx ; save ecx
cmp eax,_PAGESIZE_ ; more than one page requested?
lea ecx,[esp] + 8 ; compute new stack pointer in ecx
; correct for return address and
; saved ecx
jb short lastpage ; no
;------------
probepages:
sub ecx,_PAGESIZE_ ; yes, move down a page
sub eax,_PAGESIZE_ ; adjust request and...
test dword ptr [ecx],eax ; ...probe it (如果是guard page,刚会导致page fault,最终用户栈
; 将向下扩展一个页面)
cmp eax,_PAGESIZE_ ; more than one page requested?
jae short probepages ; no
lastpage:
sub ecx,eax ; move stack down by eax
mov eax,esp ; save current tos and do a...
test dword ptr [ecx],eax ; ...probe in case a page was crossed
; 调用函数将要访问的堆栈底部 ,如果此页面为guard page,同
; 样会导致用户栈的向下延伸
mov esp,ecx ; set the new stack pointer
; 向下更改栈指针,其上直到原ESP的栈空间为调用函数局部变量
mov ecx,dword ptr [eax] ; recover ecx
mov eax,dword ptr [eax + 4] ; recover return address
; 将返回地址(调用函数中)放入eax
push eax ; prepare return address
; 将返回地址(调用函数中)放入当前栈中,准备返回
; ...probe in case a page was crossed
ret
end
_chkstk()的主要作用是保证栈向下连续的生长。如果没有_chkstk(),当局部变量太多并超过guard page下沿时,若再有压栈操作,将会导致Access violation错误。因为此时堆栈内存页面无效,压栈直接将导致page fault的发生,而page fault处理程序因不能识别此fault的发生原因从而不能做出正确判断和有效处理。
相对用户层,内核程序的处理则相当简单,就如Win7内核中_chkstk实际上就是个空函数。其原因就是内核线程的栈空间是固定的。其取值针对X86及X64架构亦有所不同:
X64: #define KERNEL_STACK_SIZE 0x6000 /* 6个内存页面 */
X86: #define KERNEL_STACK_SIZE 12288 /* 3个内存页面 */
内核中栈资源非常紧缺,并驱动程序的编写有较高的要求,特别是有递归的情况下,一定要注意嵌套的层数,否则很容易收到M$发来的蓝屏。
Windows内核中其实还有一种大堆栈机制,以确保一些对堆栈较高消耗的特殊情况能够得到满足,但这部分完全是黑箱,对用户不可见,不是常见情况,此处不再多述。
参考资料:
1, http://support.microsoft.com/kb/100775/en
2, http://msdn.microsoft.com/en-us/library/ms648426(v=vs.85).aspx
3, http://www.reactos.org ReactOS源码
Эта публикация раскрывает психологические механизмы зависимости и их роль в развитии расстройств. Читатель узнает о том, как психология влияет на формирование зависимостей и как профессиональная помощь может изменить ситуацию.
Практические советы ждут тебя – стоимость капельницы от запоя на дому
Помню, у знакомых была ситуация. И понеслось: бумажки, инстанции. Согласование перепланировки — это не одна справка, а целый путь. Но в любом случае без проекта никуда. И соседи жалуются, и УК составляет акт. Узаконивание перепланировки — И времени на всё в обрез. Рекомендую ознакомиться с источником: услуга оформлению перепланировки https://pereplanirovka-kvartir-adg.ru Там и про проект перепланировки для региона. Иногда штраф дешевле не станет.
Запой приводит к обезвоживанию, нарушениям обмена веществ, дефициту минералов и накоплению продуктов распада этанола. Особенно тяжело абстинентный синдром проходит у алкозависимых, которые употребляют спиртное систематически много лет. Первые симптомы могут включать тревожность, тремор рук, тошноту, бессонницу, слабость, скачки давления и учащенное сердцебиение. В тяжелом случае возможны судороги, психоз, дезориентация и алкогольный делирий.
Подробнее – вывод из запоя капельница на дому Екатеринбург
При сформированном алкоголизме организм адаптируется к постоянному присутствию этанола. Резкий отказ вызывает абстинентный синдром, который отличается от обычного похмелья. У пациента может развиваться выраженная тревога, бессонница, тремор, тошнота, нарушение давления, учащенное сердцебиение и психическое возбуждение. В тяжелых случаях появляются судороги и признаки делирия.
Узнать больше – https://vyvod-iz-zapoya-krasnoyarsk69.ru/
Ни оплатить, ни снять деньги. Обзвонил кучу мест. Оформить зарубежную карту — И другой процесс оформления. Через сервисы, которые работают с россиянами. Как получить зарубежную карту — вариантов хватает. Вся информация доступна здесь: иностранные банки в россии оформить карту https://oformit-zarubezhnuyu-kartu.ru Там и про оформление карт зарубежных банков для поездок. Иногда оформление занимает не один день.
Помню, знакомые затеяли ремонт. Стена с нишей, трубы не там, где надо. Заказать кухню — это когда делают под вашу квартиру. Потом делают 3D-проект. Кухни на заказ каталог с ценами — И уже потом заказывать. Вся информация доступна здесь: кухни на заказ СПб каталог производителя https://zakazat-kuhnyu-azm.ru И про заказ с техникой и сборкой для жителей Северной столицы. Иногда производство занимает не один день.
Ниже собраны основные тематические направления, связанные с вытрезвлением, лечением алкоголизма, работой нарколога, восстановлением организма, реабилитацией и помощью родственникам. Плитка не содержит ссылок и используется как дополнительный тематический блок страницы.
Подробнее – нарколог на дом вывод из запоя Екатеринбург
Знакомая ситуация. Но ничего не подходило. Заказать кухню по размерам с выездом замерщика — А не подгоняют стандартный гарнитур. И только после этого запускают в производство. Каталог кухонь от производителя — И уже потом заказывать. Можете ознакомиться по ссылке: каталог кухонь на заказ Санкт-Петербург https://zakazat-kuhnyu-bkr.ru Там и про каталог кухонь Глория для жителей Северной столицы. Не откладывайте на последний момент.
И вдруг понял, что его карта нигде не работает. Обзвонил кучу мест. Оформить зарубежную карту — Тут другой банк, другие правила. Кто-то оформляет удалённо. Карта зарубежного банка для россиян — Но важно понимать, что подходит именно вам. Вся информация доступна здесь: оформить карту зарубежного банка оформить карту зарубежного банка И про карты банков СНГ для россиян. Проверяйте варианты заранее.
Помню, знакомые затеяли ремонт. Но ничего не подходило по размерам. Заказать кухню по размерам с выездом замерщика — это когда делают под вашу квартиру. Сначала замерщик приезжает. Каталог кухонь от производителя — Понять, что нравится. Вся информация доступна здесь: кухни Глория СПб каталог https://zakazat-kuhnyu-azm.ru И про кухни на заказ с ценами по городу. Не откладывайте на последний момент.
Помню, знакомые затеяли ремонт. Стена с нишей, трубы не там, где надо. Заказать кухню по дизайн-проекту 3D — А не подгоняют стандартный гарнитур. Сначала замерщик приезжает. Кухни на заказ каталог с ценами — можно сначала посмотреть варианты. Вся информация доступна здесь: кухни Глория СПб каталог https://zakazat-kuhnyu-cyj.ru И про кухни на заказ с ценами по городу. Не откладывайте на последний момент.
Абстинентный синдром возникает после прекращения употребления алкоголя или наркотиков. Врач оценивает выраженность жалоб и выбирает терапию. Клиника контролирует лечение и реакцию на препараты. Не следует проводить самолечение при тяжелом синдроме.
Получить больше информации – наркологическая клиника клиника помощь в Красноярске
Вывод из запоя в клинике в Санкт-Петербурге осуществляется под круглосуточным медицинским контролем с применением современных методов инфузионной терапии, препаратов для восстановления обменных процессов и купирования синдрома отмены. Главной задачей врачей является восстановление баланса между физическим и психическим состоянием, предотвращение осложнений и стабилизация основных жизненных функций.
Подробнее тут – наркологическая клиника цены в санкт-петербурге
А потом узнали, что это уже перепланировка. А они даже не знали, с чего начать. Перепланировка согласование — И без опыта тут легко утонуть. Но в любом случае без проекта никуда. И соседи жалуются, и УК составляет акт. Узаконивание перепланировки — Даже если БТИ уже составило протокол. Рекомендую ознакомиться с источником: согласование перепланировки в москве согласование перепланировки в москве И про то, как узаконить уже сделанное для Москвы. Иногда штраф дешевле не станет.
Самостоятельно оценить степень риска сложно. Иногда человек выглядит относительно удовлетворительно, но в течение следующих часов состояние ухудшается. Именно поэтому врач при выводе из запоя оценивает работу сердечно-сосудистой и нервной системы, наличие обезвоживания, состояние сознания и сопутствующие заболевания. Такая диагностика позволяет решить, где безопаснее проводить лечение — на дому или в стационаре.
Дополнительная информация – https://vyvod-iz-zapoya-krasnoyarsk69.ru/
Помню, у знакомых была ситуация. БТИ, Мосжилинспекция. Согласование перепланировки — С проектом, экспертизами и комиссиями. Если стена несущая, всё сложнее. Отдельная история, когда перепланировка уже сделана. Оформление перепланировки — И времени на всё в обрез. Рекомендую ознакомиться с источником: оформление перепланировки квартиры в москве оформление перепланировки квартиры в москве И про то, как узаконить уже сделанное для Москвы. Иногда штраф дешевле не станет.
Соблюдаем конфиденциальность, бережно общаемся с пациентом и его близкими на каждом этапе.
Узнать больше – https://vyvod-iz-zapoya-v-ekaterinburge24.ru/
Знакомая ситуация. Но ничего не подходило. Заказать кухню по дизайн-проекту 3D — А не подгоняют стандартный гарнитур. Сначала замерщик приезжает. Каталог кухонь от производителя — можно сначала посмотреть варианты. Можете ознакомиться по ссылке: каталог кухонь на заказ от производителя СПб https://zakazat-kuhnyu-bkr.ru Там и про каталог кухонь Глория по городу. Проверяйте варианты заранее.
Бывает, человек пьёт неделю. Тут важно не тянуть. Анонимный нарколог на дом при запое — И выводит человека из этого состояния. Сначала уходит интоксикация. Вывод из запоя на дому круглосуточно — работает круглосуточно. Вся информация доступна здесь: вывод из запоя на дому анонимно вывод из запоя на дому анонимно И про срочный выезд для Иркутска. Обращайтесь к специалистам.
Помню, знакомые затеяли ремонт. Стена с нишей, трубы не там, где надо. Заказать кухню — И учитывают каждую мелочь. Потом делают 3D-проект. Каталог кухонь на заказ СПб — можно сначала посмотреть варианты. Вся информация доступна здесь: каталог кухонь под заказ каталог кухонь под заказ Там и про каталог кухонь Глория для жителей Северной столицы. Проверяйте варианты заранее.
Объездили кучу салонов, но ничего не подходило. То размеры не те. Кухни от производителя СПб — это когда делают под вашу квартиру. Сначала смотришь каталог. Кухня на заказ СПб от производителя недорого — можно и недорого. Советую глянуть источник: кухни в питере https://kuhni-spb-dkv.ru И про Глорию по городу. Не откладывайте на последний момент.
Но ничего не нравилось. То размеры не те. Кухни от производителя СПб — это когда делают под вашу квартиру. И только после этого запускают в производство. Кухни Глория СПб — А не через посредников. Советую глянуть источник: кухни кухни И про Глорию для Санкт-Петербурга. Проверяйте варианты заранее.
Состояние пациента отслеживается на каждом этапе, от первичной консультации до дальнейших рекомендаций.
Изучить вопрос подробнее – вывод из запоя с выездом в Екатеринбурге
А старая кухня совсем развалилась. То размеры не те, то ниша неудобная. Заказать кухню — И учитывают каждую мелочь. Сначала замерщик приезжает. Кухни на заказ каталог с ценами — Понять, что нравится. Можете ознакомиться по ссылке: смотреть каталог кухонь на заказ https://zakazat-kuhnyu-bkr.ru Там и про каталог кухонь Глория по городу. Иногда производство занимает не один день.
Помню, знакомые затеяли ремонт. Сначала смотрели готовые варианты. Заказать кухню по дизайн-проекту 3D — А не подгоняют стандартный гарнитур. Потом делают 3D-проект. Кухни на заказ каталог с ценами — Понять, что нравится. Вся информация доступна здесь: каталог кухонь с ценами СПб https://zakazat-kuhnyu-cyj.ru И про заказ с техникой и сборкой для Санкт-Петербурга. Иногда производство занимает не один день.
И сразу начали искать кухню. То материалы не те. Кухни на заказ СПб — это когда делают под вашу квартиру. Сначала смотришь каталог. Заказать кухню СПб — А не через посредников. Советую глянуть источник: купить кухню от производителя https://kuhni-spb-dkv.ru И про Глорию для Ленобласти. Иногда производство занимает не один день.
Профессиональная помощь позволяет не ограничиваться временным облегчением похмелья. Нарколог проводит диагностику, оценивает физическое и психическое состояние, определяет показания к инфузионной терапии и подбирает индивидуальный план лечения. Если состояние относительно стабильное, вывод из запоя может проходить на дому. При тяжелой интоксикации, длительном запое, выраженных нарушениях сознания, судорогах или серьезных хронических болезнях пациента направляют в стационар клиники, где лечение проводится круглосуточно под наблюдением специалистов.
Изучить вопрос подробнее – вывод из запоя капельница на дому в Красноярске
Лечение на дому подходит не всем. Если состояние пациента стабильное и врач не выявляет признаков опасных осложнений, может проводиться выездная детоксикация. Если же есть признаки тяжелого отравления алкоголем, выраженные нарушения сознания, судороги или неадекватное поведение, требуется осмотр специалистов и решение вопроса о стационарной помощи. При угрозе жизни нужна экстренная помощь скорой.
Узнать больше – вывод из запоя цена в Екатеринбурге
Этот обзор посвящен успешным стратегиям избавления от зависимости, включая реальные примеры и советы. Мы разоблачим мифы и предоставим читателям достоверную информацию о различных подходах. Получите опыт многообразия методов и найдите подходящий способ для себя!
Откройте для себя больше – нарколога на дом
Но ничего не нравилось. То цена кусается. Кухни СПб — это когда делают под вашу квартиру. Потом замерщик приезжает. Заказать кухню СПб — Если идти напрямую к производителю. Советую глянуть источник: кухня спб кухня спб И про цены от производителя для жителей Северной столицы. Проверяйте варианты заранее.
Помню, знакомые искали кухню. То цена кусается. Кухни от производителя СПб — А не продают то, что есть на складе. И только после этого запускают в производство. Заказать кухню СПб — можно и недорого. Советую глянуть источник: кухни петербурга кухни петербурга И про цены от производителя для жителей Северной столицы. Проверяйте варианты заранее.
И родные не знают, куда звонить. И лучше доверить его врачу. Вывод из запоя — это когда специалист приезжает сам. И только после этого становится легче. Прерывание запоя на дому — работает круглосуточно. Вся информация доступна здесь: вызов нарколога для вывода из запоя вызов нарколога для вывода из запоя Там и про вывод из запоя на дому цена для Иркутской области. Не тяните до последнего.
Бывает, человек пьёт неделю. И лучше доверить его врачу. Анонимный нарколог на дом при запое — Осматривает, ставит капельницу. Потом стабилизируют давление. Прерывание запоя на дому — работает круглосуточно. Вся информация доступна здесь: вывод из запоя на дому цена вывод из запоя на дому цена И про капельницу для вывода из запоя по городу. Иногда промедление стоит здоровья.
При подобных проявлениях врач решает, подходит ли лечение на дому. Иногда безопаснее сразу попасть в отделение наркологии, где есть оборудование, анализы крови, мониторинг и возможность экстренного вмешательства. Клинику можно выбрать заранее или обратиться в ближайший профильный диспансер.
Узнать больше – вывод из запоя на дому круглосуточно в Екатеринбурге
В клинику приходят люди с разным стажем зависимости. Один человек обращается после первого выраженного срыва, другой страдает несколько лет и уже проходил лечение. Иногда родственники привезли брата или другого близкого из деревни, поскольку там невозможно получить специализированную помощь по профилю. Нарколог оценивает употребление алкоголя и наркотических веществ, наличие хронических заболеваний, патологическое влечение и способность соблюдать рекомендации.
Узнать больше – наркологическая клиника цены
При появлении тяжелых признаков не следует рисковать. Отравление суррогатным алкоголем, потеря сознания, судороги, тяжелая одышка или психоз являются основанием для срочной оценки врачами. В подобных обстоятельствах домашнее вытрезвление и обычная капельница могут быть недостаточны.
Изучить вопрос подробнее – https://vyvod-iz-zapoya-v-ekaterinburge24.ru/
Лечение на дому подходит не всем. Если состояние пациента стабильное и врач не выявляет признаков опасных осложнений, может проводиться выездная детоксикация. Если же есть признаки тяжелого отравления алкоголем, выраженные нарушения сознания, судороги или неадекватное поведение, требуется осмотр специалистов и решение вопроса о стационарной помощи. При угрозе жизни нужна экстренная помощь скорой.
Получить больше информации – https://vyvod-iz-zapoya-v-ekaterinburge24.ru/
Такие состояния могут стремительно развиться и привести к смерти. Если возникла угроза жизни, следует обеспечить покой, вызвать врачей и не экспериментировать с самолечением. Медики при необходимости организуют перевод в больницу.
Ознакомиться с деталями – https://vyvod-iz-zapoya-v-ekaterinburge23.ru/
Если у пациента есть тяжелые сердечно-сосудистые болезни, психозы, судорожный синдром или подозрение на смешанное отравление, домашняя капельница может быть ограничена по возможностям. В стационаре доступны более широкая диагностика, круглосуточная линия дежурной помощи и палаты для контроля динамики. Это особенно важно, когда вывод из запоя осложнен сопутствующей патологией.
Изучить вопрос подробнее – вызвать сделать капельницу врача от запоя
Помощь оказывают врачи с практикой в наркологии, психиатрии и восстановительной терапии.
Получить больше информации – https://vyvod-iz-zapoya-v-ekaterinburge25.ru
При судорогах, галлюцинациях, выраженной дезориентации или агрессии домашний формат может быть небезопасен. В таких случаях врач рекомендует госпитализацию, где состояние можно контролировать круглосуточно.
Узнать больше – помощь вывод из запоя в Екатеринбурге
При судорогах, галлюцинациях, выраженной дезориентации или агрессии домашний формат может быть небезопасен. В таких случаях врач рекомендует госпитализацию, где состояние можно контролировать круглосуточно.
Дополнительная информация – вывод из запоя на дому недорого
Экстренное вытрезвление в Челябинске — помощь при острых состояниях. Мы обеспечиваем быстрое и безопасное восстановление после сильного алкогольного опьянения.
Изучить вопрос глубже – наркология вывод из запоя челябинск
Собрался за границу. Ни оплатить отель. Открыть зарубежную банковскую карту — Тут другой процесс. Кто-то едет за границу и делает там. Оформление карт зарубежных банков — вариантов хватает. Советую глянуть источник: карта банка снг https://oformit-zarubezhnuyu-kartu-xyt.ru И про удалённое открытие для оплаты за рубежом. Не откладывайте на последний момент.
Заявку можно оставить в любое время, специалист быстро сориентирует по дальнейшим действиям.
Получить больше информации – наркологическая клиника вывод из запоя в Красноярске
Заявку можно оставить в любое время, специалист быстро сориентирует по дальнейшим действиям.
Ознакомиться с деталями – http://www.narkologicheskaya-klinika-v-krasnoyarske22.ru
Объездили кучу салонов. То цена кусается. Кухни от производителя СПб — А не продают то, что есть на складе. Потом замерщик приезжает. Кухни Глория СПб — можно и недорого. Вся информация доступна здесь: кухня глория кухня глория И про Глорию для Ленобласти. Не откладывайте на последний момент.
Собрался за границу. Но везде говорили, что для россиян это не так просто. Открыть карту зарубежного банка — Тут другой банк, другие правила. Кто-то едет за границу и открывает там. Оформление зарубежной карты — И какие документы нужны. Можете ознакомиться по ссылке: банковская карта иностранного банка для россиян банковская карта иностранного банка для россиян Там и про оформление карт зарубежных банков для оплаты за рубежом. Не откладывайте на последний момент.
What stands out to me here is the way the discussion flows so naturally from one point to another, making the post feel enjoyable, clearly arranged, and comfortable to read from beginning to end.
best online casinos that payout
А потом сам не может остановиться. И лучше доверить его врачу. Нарколог вывод из запоя — И выводит человека из этого состояния. Сначала уходит интоксикация. Вызов нарколога на дом запой — работает круглосуточно. Вся информация доступна здесь: вызов врача вывод из запоя вызов врача вывод из запоя И про срочный выезд для Московской области. Не тяните до последнего.