2011-01-08 4 views
0

Кто-нибудь знает, есть ли способ получить последний системный вызов, сделанный определенным потоком
(в C++/Windows)?
спасибо :)Получение последнего вызванного системного вызова

+0

Системный вызов? В Windows? –

+0

Можете ли вы уточнить, что вы подразумеваете под «системным вызовом»? –

+0

что-то вроде «wait», «read», «open» и т. Д. Я смотрю код «Process Hacker», и они получают последний системный вызов, используя «NtQueryInformationThread». Проблема с этим: 1. Microsoft не рекомендует использовать его: http://msdn.microsoft.com/en-us/library/ms684283%28v=vs.85%29.aspx – Idov

ответ

0

Если вы можете определить набор системных вызовов (который я предполагаю, будет все карты красиво Win32 API, экспортируемые kernel32.d - например, CreateFile, WriteFile, WaitForSingleObject и т.д ...), вы можете используйте библиотеку Detours, чтобы уловить DLL-вызовы и использовать их для мониторинга «последнего» вызова.

http://research.microsoft.com/en-us/projects/detours/

Смежные вопросы