Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 [3] 4  Все   Вниз
  Печать  
Автор Тема: Не должно быть здесь этой ошибки! :confused:  (Прочитано 91806 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #60 : 14-12-2011 18:10 » 

Панель управления-Администрирование-Просмотр событий
кажется в системных событиях должно все появляться, если не ошибаюсь. почитайте описание функций которые вы используются в GetMessage и про IO_ERROP_LOG_PACKET на MSDN.
язык программирования роли не играет.

насчет остальных MJ_ функций  - там так же все просто. поищите пример использования - их есть много в сети.

PS понимаете, писать за вас код, ну совсем желания нет) но если будете задавать ПРАВИЛЬНЫЕ вопросы, могу пнуть в нужном направлении.
PPS не только правильные вопросы, но и хотя бы ваши попытки в них разобраться самостоятельно.
« Последнее редактирование: 14-12-2011 18:14 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #61 : 14-12-2011 19:57 » 

Про IoWriteErrorLogEntry на MSDN как-то непонятно написано, а в других местах она описывается как функция, которая выводит в log entry сообщение, то есть тот пакет, который ей передали в параметре.
Цитата
Панель управления-Администрирование-Просмотр событий
Я знаю где находится log entry, вы мне это уже говорили в одном из предыдущих постов.
На msdn про поле MajorFunctionCode говорится, что этот параметр не является обязательным, а обязателен как я понял параметр ErrorCode, он то и говорит Event Viewer'у тип ошибки, и Event Viewer понимает какие строки нужно вывести.
Цитата
насчет остальных MJ_ функций  - там так же все просто. поищите пример использования - их есть много в сети.
Что значит пример использования - это и есть часть моей программы, которая будет использовать драйвер?
Я просто не могу понять, что мне искать. Так, бы я, может, уже и нашел кабы знал).
Цитата
для начала вам надо заполнить в драйвере свои обработчики MJ_CREATE/MJ_CLOSE которые отвечают за обработку вызовов CreateFIle/CloseHandle из приложения,
MJ_CREATE, MJ_READ и MJ_WRITE у меня есть, что значит заполнить, у меня там вызывается функция GetMessage и всё... ну MJ_CREATE у меня еще IoCompleteRequest
в msdn написано так:
Когда драйвер закончил всю обработку для данного IRP, он вызывает IoCompleteRequest.
Записан

Ищущий да обрящет
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #62 : 14-12-2011 20:20 » 

https://club.shelek.ru/viewart.php?id=76
для ознакомления. и взаимодействие с драйвером через API DeviceIOControl

http://drp.su/ru/driver_dev/03_01-8.htm
тут есть по открытию- чтению-записи. наврал... заглушки функций.

+выделить из прочитанного ключевые слова и искать дальше по их комбинациям, пользуясь гуглом.

PS пример использования - это как люди решают похожие задачи.
пример используется для того, чтобы посмотреть как делают другие, прочитать документацию, осознать, и использовать такой же подход при написании своего кода.

ключевые слова для поиска -
драйвер
Windows
а так же названия дефенишенов(кодов функций), самих функций, структур и т.д.

и по-моему вы до сих пор не понимаете что вы хотите получить на выходе. либо я этого не чувствую. потому что до сих пор точной постановки задачи не услышал. попробуйте себе алгоритм составить. что вы хотите/должны "нажать" и что должно произойти в результате.

Добавлено через 4 минуты и 8 секунд:
http://www.pcports.ru/articles/ddk1.php
http://www.pcports.ru/articles/ddk2.php
http://www.pcports.ru/articles/ddk3.php
http://www.pcports.ru/articles/ddk4.php
http://www.pcports.ru/articles/ddk5.php


и вообще
http://www.google.ru/search?hl=ru&q=%D0%BF%D0%B8%D1%88%D0%B5%D0%BC+%D0%BF%D0%B5%D1%80%D0%B2%D1%8B%D0%B9+%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=

Добавлено через 9 минут и 38 секунд:
http://blagin.ru/sozdanie-drajverov-chast-4-obmen-dannymi/
« Последнее редактирование: 14-12-2011 20:35 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #63 : 14-12-2011 21:43 » 

Вот за это - https://club.shelek.ru/viewart.php?id=76 огромное спасибо, а вот здесь http://drp.su/ru/driver_dev/03_01-8.htm не пример программы, а пример драйвера.
Записан

Ищущий да обрящет
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #64 : 15-12-2011 10:28 » 

самую последнюю ссылку смотрите. там все есть.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #65 : 16-12-2011 08:39 » 

Пытаюсь собрать это приложение из кусочков программ со ссылок, которые вы мне дали, но из-за моей неопытности в Visual C++ не могу исправить все ошибки, которые почему-то там возникают, может кто-нибудь посмотрит?
Там было 50 ошибок сейчас 40.
Еще 17 ошибок исправил, файл перезалил.
там сейчас 50 ошибок, так как одну исправил (нужно было скобочку доставить)) и из-за этого еще 16 добавилось.
Где взять файл error.h из-за него всё.
PS
  Я наше про error_index здесьhttp://cctbx.sourceforge.net/current_cvs/c_plus_plus/classDistl_1_1scitbx_1_1error__index.html, там сверху один хидер - <scanbox.h> а снизу error.h
не пойму, где он взял этот error_index. Его я даже на MSDN не могу найти.

* UseDriver.rar (770.35 Кб - загружено 877 раз.)
« Последнее редактирование: 16-12-2011 09:58 от Fredwriter » Записан

Ищущий да обрящет
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #66 : 16-12-2011 10:51 » 

Осталась одна ошибка я убрал функцию Error, и испавил свои мелкие ошибки, заливаю обновлённый

* UseDriver.rar (770.17 Кб - загружено 910 раз.)
Записан

Ищущий да обрящет
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #67 : 16-12-2011 11:28 » 

если речь про
1>c:\temp\usedriver\usedriver\usedriver.cpp(163) : error C2664: 'ControlService' : cannot convert parameter 3 from 'LPSERVICE_STATUS *' to 'LPSERVICE_STATUS'
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

то это потому что третий, переданный параметр в функцию - не соответствует типу который  понимает функция.
функции нужен указатель, а вы двойной указатель передаете.
надо
 SERVICE_STATUS  ServiceStatus
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #68 : 16-12-2011 12:08 » 

исправил эту ошибку, появилось еще 8

Код:
Linking...
UseDriver.obj : error LNK2019: unresolved external symbol __imp__OpenSCManagerA@12 referenced in function "bool __cdecl OpenManager(void)" (?OpenManager@@YA_NXZ)
UseDriver.obj : error LNK2019: unresolved external symbol __imp__CloseServiceHandle@4 referenced in function "bool __cdecl OpenManager(void)" (?OpenManager@@YA_NXZ)
UseDriver.obj : error LNK2019: unresolved external symbol __imp__CreateServiceA@52 referenced in function "bool __cdecl drvCreateService(char *)" (?drvCreateService@@YA_NPAD@Z)
UseDriver.obj : error LNK2019: unresolved external symbol __imp__OpenServiceA@12 referenced in function "bool __cdecl drvOpenService(char *)" (?drvOpenService@@YA_NPAD@Z)
UseDriver.obj : error LNK2019: unresolved external symbol __imp__StartServiceA@12 referenced in function "bool __cdecl drvStartService(char *)" (?drvStartService@@YA_NPAD@Z)
UseDriver.obj : error LNK2019: unresolved external symbol __imp__DeleteService@4 referenced in function "bool __cdecl drvDeleteService(char *)" (?drvDeleteService@@YA_NPAD@Z)
UseDriver.obj : error LNK2019: unresolved external symbol __imp__ControlService@12 referenced in function "int __cdecl drvUnLoad(char *)" (?drvUnLoad@@YAHPAD@Z)
D:\Мои документы\Задания\ПО УЧЕБЕ\Операционные системы\UseDriver\Debug\UseDriver.exe : fatal error LNK1120: 7 unresolved externals
Вот проект

Всё, отмена, исправлено
Для тех, кто столкнётся с подобной ошибкой:
Project->Project Properties->Configuration Properties->Linker->Input->Additional Dependencies - поставил галку на Inherit from parent or project default

* UseDriver.rar (741.9 Кб - загружено 878 раз.)
« Последнее редактирование: 16-12-2011 13:29 от Fredwriter » Записан

Ищущий да обрящет
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #69 : 16-12-2011 13:29 » 

error LNK2019: unresolved external symbol
+
OpenSCManager
CloseServiceHandle
и т.д.

PS Requirements

« Последнее редактирование: 16-12-2011 13:34 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #70 : 16-12-2011 14:01 » 

Ошибку я уже исправил, программа запускается без ошибок, открываю просмотр событий, там при каждом запуске программы одна и та же ошибка картинку выкладываю.

Цитата
Не понял это к чему?

* Системный лог.bmp (920.1 Кб - загружено 3082 раз.)
« Последнее редактирование: 16-12-2011 14:04 от Ochkarik » Записан

Ищущий да обрящет
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #71 : 16-12-2011 14:13 » 

хм. ошибка однако - видимо что то не....
проверяйте все, ищите что не так сделали.

Цитата
Не понял это к чему?
к прочтению соответствующего раздела документации.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #72 : 16-12-2011 14:19 » 

слушайте... а зачем вам программирование?  может ну его нафиг)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #73 : 16-12-2011 16:58 » 

Нашел одну ошибку:
Код:
GetCurrentDirectory(256, lpBuffer);
   strcat(lpBuffer,"\");
   strcat(lpBuffer,pDrvName);
   awPath = lpBuffer;
Так как знак "\" является одной из скобок языка, не получается прибавить его строке lpBuffer, а код не я писал, я его только переписал. Это прошло компиляцию, потому-что я, по невнимательности, когда выдало ошибку в этой строке, просто написал так:
Код:
strcat(lpBuffer,"\"");

Цитата
слушайте... а зачем вам программирование?  может ну его нафиг)
Прежде чем писать кому-то такое на форуме я бы тысячу раз подумал.


Добавлено через 1 час, 23 минуты и 27 секунд:
Почему-то сервис не создается, после прохода строки CreateServise(), hService не присваивается значение.
Выложу, что у меня есть.

* UseDriver.rar (776.4 Кб - загружено 886 раз.)
« Последнее редактирование: 16-12-2011 18:24 от Fredwriter » Записан

Ищущий да обрящет
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #74 : 16-12-2011 19:04 » 

я подумал... я еще раз ваш код посмотрел....
типа этого куска например:
Цитата
bool OpenManager()
{
   bool status;
   status=FALSE;
   
   if (hSCManager!=NULL)
   {
           CloseServiceHandle (hSCManager);
           hSCManager=NULL;
   }
   
   hSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
   
   status=TRUE;

   return status;
}
и вы утверждаете что вы его по вашему выражению "переписали". переписывать можно тоже по разному.

а далее я вижу проверку...
Код:
 	if(OpenManager()) 
{
....
и что по вашему делает это условие? проверяет что значение TRUE действительно равно TRUE?
наверное это просто необходимое условие продолжения работы!

следующая проверка
Код:
if(drvCreateService(name))
{
....
аналогично.
продолжать?
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #75 : 16-12-2011 19:10 » 

а код
Код:
   if (hSCManager!=NULL)
   {
           CloseServiceHandle (hSCManager);
           hSCManager=NULL;
   }
что по вашему делает?
проверяет что хендел устройства (проинициализированный нулем в функции drvLoad() ) действительно не равен нулю?
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #76 : 16-12-2011 19:15 » 

функция
Код:
bool drvCreateService(PCHAR pDrvName)
{
   LPTSTR lpBuffer;
  lpBuffer = new char[256];
  bool status = FALSE;
  LPTSTR awPath;
  
   GetCurrentDirectory(256, lpBuffer);
   strcat(lpBuffer,"\\");
   strcat(lpBuffer, pDrvName);
   awPath = lpBuffer;

hService = CreateService(hSCManager, pDrvName, pDrvName, SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, awPath, NULL, NULL, NULL, NULL, NULL);

status = drvOpenService(pDrvName);
        

delete lpBuffer;
return status;
}
при том что drvOpenService() так же, всегда возвращает TRUE (как и все остальные написаннные по принципу функции OpenManager() ) что по вашему вернет? что то отличное от TRUE?
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #77 : 16-12-2011 19:25 » 

а ошибка, могла быть из за включения Unicod-a в свойствах проекта, о чем еще страницу назад Dimka любопытствовал.
если до этой строчки выполнение этого безобразия, вообще доходит...
а может из за того что текущий каталог при выполнении программы не соответствует месту где драйвер лежит(в случае если код запускается из под отладчика).
а может еще где опечатка...
но это гадание на кофейной гуще. а компилировать и проверять, а тем более исправить самому это безобразие у меня даже желания не возникает.
 Я зол!

пардон... накипело. Скромно так...
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #78 : 16-12-2011 19:41 » 

Я пошагово выполняю программу, клавишу F11, значит, нажимаю, то есть пошаговое выполнение с заходом в функцию, в функции OpenManager() так как hSCManager обычно таки NULL вызывается функция API hSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS)
и отрабатывет нормально ну хорошо, можно добавить вот это
Код:
hSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if (hSCManager == NULL)
printf("Netushki");
else
status=TRUE;
Обычно всё нормуль, то есть true.
Затем стрелочка, как любая послушная стрелочка дебагера заходит в функцию drvCreateService(PCHAR pDrvName)
и здесь то и подвох, не проходит создание сервиса почему-то.
Код:
hService = CreateService(hSCManager, pDrvName, pDrvName, SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, awPath, NULL, NULL, NULL, NULL, NULL);
if (hService == NULL)
  printf("Netushki");
else
  status = drvOpenService(pDrvName);
Всегда нетушки. В чём проблема?
PS
  a Unicode я давно уже отключил.
Записан

Ищущий да обрящет
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #79 : 16-12-2011 19:45 » 

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682450(v=vs.85).aspx
Цитата
CreateService function
......
Return value
If the function succeeds, the return value is a handle to the service.
If the function fails, the return value is NULL.  To get extended error information,call GetLastError.
The following error codes can be set by the service control manager. Other error codes can be set by the registry functions that are called by the service control manager.
список кодов по ссылке описания CreateService
GetLastError function
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #80 : 16-12-2011 20:53 » 

GetLastError() сказал: "Указанная служба уже существует". Я, в этот момент вспомнил, что я уже установил драйвер с помощью reg - файла, и удалил его из устройств. Перезагрузил комп, убедился, что нет этого драйвера в устройствах, затем опять GetLastError() выдал эту же ошибку. Не пойму.

Добавлено через 50 минут и 42 секунды:
Всё, заработало вроде, пошли уведомления в логе от MyDriver.sys
Выложу картинку и проект:


Добавлено через 2 часа, 53 минуты и 46 секунд:
Прогонял программу пошагово по F10 и после прохода каждой функции заглядывал в EventLog, так там появляется событие только после drvLoad, а после WriteFile ничего не появляется. Вот же ж ёж.
PS
  То есть, только после открытия и запуска службы.

* UseDriver.rar (775.95 Кб - загружено 846 раз.)
* Системный лог.bmp (811.08 Кб - загружено 3035 раз.)
« Последнее редактирование: 17-12-2011 00:42 от Fredwriter » Записан

Ищущий да обрящет
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #81 : 17-12-2011 01:25 » 

Всё с событиями разобрался коды выводит правильно, только EventLog почему-то не находит описание, но оно было в MyDriverMessages.h при сборке. Выложу картинку похвастаться:

 

* Системный лог.bmp (764.8 Кб - загружено 3013 раз.)
* Системный лог_1.bmp (532.09 Кб - загружено 2984 раз.)
Записан

Ищущий да обрящет
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #82 : 17-12-2011 11:52 » 

уже лучше)
внимательно почитайте
http://www.adp-gmbh.ch/win/misc/writing_devicedriver.html
а так же http://msdn.microsoft.com/en-us/library/windows/hardware/ff543017(v=VS.85).aspx
и сопуствующие разделы
« Последнее редактирование: 17-12-2011 11:56 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #83 : 17-12-2011 18:36 » 

С выводом описания сообщения так и не разобрался, но пока пытался разобраться, обнаружил еще куда более серьёзную проблему, у меня управляющая программа запускается только один раз, на следующий раз она вырубает компьютер! и он перезагружается. Дебагером бегал по коду и отслеживал после прохода каждой API функции вывод в лог, первый раз, после перезагрузки она выводит пять сообщений, одно от Service Control Menager, вложена картинка, и четыре от драйвера с кодами 1 - CreateService, 2 - OpenService, 3 - ReadFile, 4 - WriteFile. Второй раз выводит четыре сообщения, одно от Application Popup, какое-то пугающее - смотреть вложение, и три от драйвера с кодами 2, 3, 4. Буду смотреть Application Popup.

Одну картинку первую перевложил
Вложу еще проект, может кто-нибудь рискнёт на своём компе такое дебагером?  Не надо
Не могу почему-то выложить проект, размет моего архива 773 kb, выдаёт ошибку: Ваш файл слишком большой, максимальный размер вложения 2048 kb? Не понял

* Системный ло_2.bmp (533.85 Кб - загружено 2927 раз.)
* Системный лог_3.bmp (745.73 Кб - загружено 2960 раз.)
* Системный ло_1.bmp (535.62 Кб - загружено 2934 раз.)
« Последнее редактирование: 17-12-2011 18:58 от Fredwriter » Записан

Ищущий да обрящет
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #84 : 17-12-2011 18:55 » 

это не программа виновата. это драйвер глючит похоже. его  отлаживайте.
из программы комп завалить - это маловероятно.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #85 : 17-12-2011 20:43 » 

Я немного неправильно рассказал последовательность вывода сообщений у меня при первом запуске 6 сообщений, последнее это как раз от Application Popup, а при втором 3 и перезагрузка) Насчёт отладки драйвера это проблема никогда этого не делал, не расскажите каким отладчиком лучше пользоваться и как вы это сами делаете?
PS я думаю это связано с этим сообщением Application Popup.
« Последнее редактирование: 17-12-2011 20:46 от Fredwriter » Записан

Ищущий да обрящет
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #86 : 17-12-2011 21:30 » 

отладчиком...  Syser или WinDBG.. мне первый больше нравится, хотя он иногда поглюкивает... вторым не пользовался, да и вообще привык без него обходится. но с ним наверное долго разбираться будете.
попробуйте сначала обойтись отладочными сообщениями - как их ловить писал выше. (DbgView + DbgPrint в драйвере)
вбейте в драйвер все возможные проверки всех невозможных ошибок как можно чаще,  и ловите отладочные сообщения.
BSOD вы конечно так не увидите, но тут скорее проблема в первом обращении к драйверу а не во втором.
что то вы забыли деинициализировать наверное. или наоборот)
« Последнее редактирование: 17-12-2011 21:32 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #87 : 17-12-2011 21:40 » 

И всё таки, что это за блокированные страницы ввода-вывода?
PS
Спасибо за подсказку об отладке, попробую.
Не могу понять как пользоваться DbgView. Подскажите пожалуйста.

Добавлено через 3 часа, 11 минут и 44 секунды:
Не знаю в правильном ли я направлении действовал, но в конце ничего не вышло, я понатыкал DbgView в исходнике драйвера, перебилдил его Buil'ом для Checked версии из DDK, и новый файл драйвера использовал при пошаговом проходе по моей использующей программе при открытом DbgView.  Никаких сообщений при проходе в DbgView не вышло. Похоже что-то не то я делал.  Меня одолевают смутные сомнения
PS Может кто-нибудь посмотрит опытным взглядом драйверописателя?



Добавлено через 7 часов, 17 минут и 17 секунд:
Всё пошли в DbgView отладочные сообщения. Просто я их первый раз в директиву не оформил.

* UseDriver.rar (771.11 Кб - загружено 3507 раз.)
* MyFirstDriver1.rar (33.27 Кб - загружено 3595 раз.)
« Последнее редактирование: 18-12-2011 08:53 от Fredwriter » Записан

Ищущий да обрящет
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #88 : 18-12-2011 09:48 » 

в код драйвера вставляете функции DbgPrint("tochka1");
драйвер должен быть скомпилирован в Debug версии.
перед запуском драйвера запускаете DbgView. он выводит все выполненные в драйвере DbgPrint().
как printf() в консоли. по ним можно отследить все пройденные точки и состояния в драйвере.
в принципе то же самое можно сделать и функциями вывода в системный лог.

насчет блокирования - видимо драйвер лезет куда не должен)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Fredwriter
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #89 : 18-12-2011 10:25 » 

Цитата
в код драйвера вставляете функции DbgPrint("tochka1");
Так я же вам уже написал, что сообщения пошли, я вставил DbgPrint() везде, где выводится сообщения в системный лог. Во вложении картинка DbgView.

Вот один из моих DbgView:
Код:
NTSTATUS ReadMyDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
{
GetMessage(MSG_READ, DeviceObject, NULL);
#if DBG
          DbgPrint("Read", MSG_READ);
        #endif
return STATUS_SUCCESS;

}
PS Может не там я DbgPrint'ы расставил? Подскажите пожалуйста, где например было бы правильно поставить, поконкретнее.

Добавлено через 1 час, 3 минуты и 6 секунд:
Никак не могу разобраться с этими DbgPrint'ами. Где их ставить? Хоть самому вместо них в драйвер залезать Быть такого не может

* DbgView.bmp (478.98 Кб - загружено 3208 раз.)
« Последнее редактирование: 18-12-2011 12:38 от Fredwriter » Записан

Ищущий да обрящет
Страниц: 1 2 [3] 4  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines