![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 5 Всего: 95 |
Доброго времени суток всем!
Кто-нибудь может мне объяснить или ткнуть ссылкой на различия функций ZwWriteFile и NtWriteFile применительно к kernel-mode. Суть в том, что вчера весь день бился над такой проблемой - из драйвера делаю вывод лога в файл. В DriverEntry - открывал файл функцией NtCreateFile, в DriverUnload - закрывал его NtClose. После открытия и перед закрытием файла делал вызовы NtWriteFile с соответствующим сообщением (это важный момент). В диспатчерах IRP_MJ_CREATE, IRP_MJ_CLOSE, IRP_MJ_READ и IRP_MJ_WRITE соответственно вызывал NtWriteFile для логирования действий и данных. Все записи в файл - дублировались с помощью DbgPrint (вызывается сразу после записи в файл). Так вот, при загрузке\выгрузке драйвера - записи в файл совершались нормально, а в диспатчерах IRP_MJ_CREATE, IRP_MJ_CLOSE, IRP_MJ_READ и IRP_MJ_WRITE - ни в какую не хотел писать (NT_STATUS<>SUCCESS_STATUS, чему именно было равно - не проверял, ибо слехка гемор), хотя в DbgPrint - все записи отрабатывали на ура. Сегодня с утра решил заменить все вызовы NtXxx... на ZwXxx... - и о чудо! все заработало... Я почему-то раньше думал, что особой разницы между этими функциями нет, но оказалось, что это не так. В хелпе по поводу ZwWriteFile, конечно, написано, что:
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 10 Всего: 124 |
Nt vs. Zw - Clearing Confusion On The Native API
Sidebar Discussion -- Nt vs. Zw Continued Это сообщение отредактировал(а) SergeCpp - 11.7.2008, 10:19 |
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 5 Всего: 95 |
SergeCpp, спасибо за интересные линки...
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |