В kernel mode коде необходимо получить CONTEXT для потока работающего в ring 3. Используем: Код (Text): NTSTATUS NtGetContextThread( IN HANDLE ThreadHandle, OUT PCONTEXT Context ); функция выдает STATUS_ACCESS_VIOLATION. При детальном рассмотрении видно, что параметр Context несмотря на явный вызов из ring0 сравнивается, почему-то с MmUserProbeAddress. Кто-нибудь сталкивался? И как еще можно достать этот CONTEXT?
а надо смотреть - как сам NTOSK..exe достаёт сontext. попробуй: продебугровав, найти внутреннюю процедуру и прямо звать его; я делаю так: KTEB.StackTop - sz (как сам NTOSK) но в ентом случае, имеем другой формат NTсontext-а, но нетрудно с ним разобраться ведь..
Да, но насколько я знаю, KTEB меняется с версией ОС Я сделал так: 1. выставляю MmUserProbeAddress, скажем в 0C8000000h. 2. вызываю NtGetContextThread 3. возвращаю MmUserProbeAddress Но кажется, это технически не грамотно...