Здравствуйте, вот научился вроде бы писать каркас драйверов, загружать через сервисы, тестирую на VMWare всё отлично, я гений.. теперь есть вопрос , можно ли использовать WIN32 API в драйвере ? И вообще дайте ссылок P.S не забуду свой первый DPRINT
И ещё не подскажите как перехватывать WIN32 API , в нулевом кольце, хотя бы простой примерчик (Можно MessageBox). Я прочитал : http://www.wasm.ru/article.php?article=apihook_3 но там не понятно как он перехватил.
Все функции Win32 API могут работать только в юзер-модных приложениях. Причем к приложению должна быть подлинкована библиотека kernel32.dll и оно должно быть зарегистрировано в csrss. Если какие-нибудь функции и могут быть вызваны из ядра, то это случайность и потенциальный путь к бсод. Из ядра можно вызывать любые функции native API, которые экспортируются ntoskrnl.exe. Плюс можно по адресу вызывать функции, которые им не экспортируются. Соответственно, когда речь идет о перехвате функций из ядра, в 99% подразумеваются именно Native функции. Посмотри статьи на www.sysinternals.com. Там было достаточно простое описание различий между функциями Win32 API, native и функциями ядра.
думаю легче всего написать приложение которое будет получать команды от драйвера , ну или наобарот и там уже выполнять WIN32 API (например MessageBox)