Сейчас на форуме: tyns777 (+4 невидимых) |
![]() |
eXeL@B —› Программирование —› Назначение флага IMAGE_SCN_MEM_NOT_PAGED |
Посл.ответ | Сообщение |
|
Создано: 18 октября 2010 18:53 · Личное сообщение · #1 Никак не могу понять, в каких случаях секция должна иметь этот флаг. В интернетах ничего внятного по сабжу не нашел. По ходу просмотра виндовых драйверов обнаружилась следующая закономерность: у секций, награждённых флагом IMAGE_SCN_MEM_DISCARDABLE, флаг IMAGE_SCN_MEM_NOT_PAGED отсутствует, но так же он отсутствует и у секций с именем "PAGE", хотя флага IMAGE_SCN_MEM_DISCARDABLE у них тоже нет. А вот к примеру в известном всем драйвере GiveIO.sys вообще ни у одной секции нет флага IMAGE_SCN_MEM_NOT_PAGED. Короче, ни хрена не понятно. Подскажите, кто знает, а то что-то не хочется в самый неожиданный момент синьку словить. ![]() |
|
Создано: 18 октября 2010 19:37 · Личное сообщение · #2 1) Берем описание формата PECOFF: www.microsoft.com/whdc/system/platform/firmware/pecoff.mspx и видим там: "IMAGE_SCN_MEM_NOT_PAGED = The section is not pageable." 2) Если этого не будет достаточно, то идем на MSDN: msdn.microsoft.com/en-us/library/ff554346(VS.85).aspx и вникаем в пару следующих предложений: "By default, the linker assigns names such as ".text" and ".data" to the code and data sections of a driver image file. When the driver is loaded, the I/O manager makes these sections nonpaged. A nonpaged section is always memory-resident." "Code that runs at IRQL >= DISPATCH_LEVEL must be memory-resident. That is, this code must be either in a nonpageable segment, or in a pageable segment that is locked in memory. If code that is running at IRQL >= DISPATCH_LEVEL causes a page fault, a bug check occurs. Drivers can use the PAGED_CODE macro to verify that pageable functions are called only at appropriate IRQLs." ![]() ![]() |
|
Создано: 19 октября 2010 17:05 · Личное сообщение · #3 Секции, имеющие IMAGE_SCN_MEM_DISCARDABLE, отбрасывается лоадером после вызова INIT, поэтому совершенно пофигу на то какие флаги будут в результате у этих секций. ![]() |
|
Создано: 20 октября 2010 00:09 · Личное сообщение · #4 |
![]() |
eXeL@B —› Программирование —› Назначение флага IMAGE_SCN_MEM_NOT_PAGED |
Эта тема закрыта. Ответы больше не принимаются. |