Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Информации из контекста потока [D7, WinXP]


tar4 ©   (2006-08-23 14:20:00) 

После выполнения функции  
CreateProcess(nil,Filename,nil,nil,CREATEe_SUSPEND,nil,nil,StartUpInfo,Process_I nformation)
и затем
Context.ContextFlags:=Context_Control (необходима для чтения или записи регистров)  пытаюсь прочитать необходимую мне информацию о регистрах через функцию
GetThreadContext (hThread, Context), где hThread - хэндл потока, полученный из Process_Information.
Однако структура Context  заполнена нулями. Почему, так и должно быть?


Ketmar   (2006-08-24 09:55:00) [1]

> [3] tar4   (24.08.06 06:34)
о чём написано английским по хэлпу, кстати. %-))


tar4   (2006-08-24 06:34:00) [2]

Bin, спасибо  за желание помощь. Проблему решил сам. Если кому интересно, то
не только перед SetThreadContext, но и перед GetThreadContext нужно обязательно инициировать одно из полей структуры Context - ContextFlags. Я это знал, но что-то не подумал, что не только для записи, но и для чтения, например, регистра Eip нужно присваивать   ContextFlags=CONTEXT_CONTROL (чтение и запись ЕАХ, ЕСХ и т.д.).


BiN   (2006-08-23 16:32:00) [3]

Пардон, не заметил CREATEe_SUSPEND.
Приведи тогда код, где, конечно же, проверяется значение, возвращенное функцией GetThreadContext.


BiN   (2006-08-23 15:16:00) [4]

Дай угадаю.
You cannot get a valid context for a running thread.
(с) msdn


Наверх

Титульная страница Поиск, карта сайта Написать письмо