![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
bra1ny |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 26.12.2008 Репутация: 2 Всего: 3 |
FltCancelFileOpen?
--------------------
Что вас манит сюдаИз заморзких широт?Там гораздо сытней и красивей.Или воля не та, или воздух не тот -Знать и вам не прожить без России. |
|||
|
||||
KAlex1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 18.10.2009 Где: Ukraine, Zaporozh ye Репутация: нет Всего: нет |
Спасибо за подсказку. В ВДК написано что команда FltCancelFileOpen используется в PostOperationCallBack процедурах. Во всяком случае она мне не пригодилась, ошибка оказалась в сравнении имен каталогов. Это я уже исправил. Разработка продвигается)
![]() Подскажите пожалуйста какую фунцкию использовать для динамического выделения памяти, под массив переменных определенного типа, в режиме ядра. Необходимо динамически выделить память под массив UNICODE_STRING-ов. И затем также выделить память под массив buffer каждой из структур UNICODE_STRING. Это сообщение отредактировал(а) KAlex1 - 30.11.2009, 23:46 |
|||
|
||||
bra1ny |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 26.12.2008 Репутация: 2 Всего: 3 |
ExAllocatePool().
Выбирать тип пула надо в зависимости от irql. Если работаете на уровне < DISPATCH_LEVEL тогда можно paged pool. С nonpaged пулом можно работать на любом irql, но надо помнить что это очень ценный ресурс ![]() --------------------
Что вас манит сюдаИз заморзких широт?Там гораздо сытней и красивей.Или воля не та, или воздух не тот -Знать и вам не прожить без России. |
|||
|
||||
KAlex1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 18.10.2009 Где: Ukraine, Zaporozh ye Репутация: нет Всего: нет |
Благодаря документации и Вам, bra1ny, мне стало ясно что необходимо использовать ExAllocatePoolWithTag.
Но у меня возникла очередная проблема: выделяется всего 4 байта, при том что мне нужно 5120 байт. Из DriverEntry вызываю свою процедуру, и в ней уже происходит вызов ExAllocatePoolWithTag. Вначале подумал что IRQL не тот, попробовал вызвать ExAllocatePoolWithTag их самой DriverEntry, но всеравно выделяются только 4 байта, вместо желаемых 5120. Выделяю из PagedPool. IRQL DriverEntry является PASSIVE_LEVEL. Вот он код:
Буду рад, если у вас есть какие-нибудь идеи по этому поводу) |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
|
|||
|
||||
bra1ny |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 26.12.2008 Репутация: 2 Всего: 3 |
Вы совершенно правы.
ExAllocatePool это "обертка" которая в свою очередь вызывает ExAllocatePoolWithTag с тэгом None. Ну это так для справки)) --------------------
Что вас манит сюдаИз заморзких широт?Там гораздо сытней и красивей.Или воля не та, или воздух не тот -Знать и вам не прожить без России. |
||||||
|
|||||||
KAlex1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 18.10.2009 Где: Ukraine, Zaporozh ye Репутация: нет Всего: нет |
Я бы спал спокойно если бы мне функция ZwQueryValueKey не возвращала BufferTooSmall, при том что проверку я перед этим тоже делаю)) И дебаггер показывает в buffer не нулевой адрес.
Это сообщение отредактировал(а) KAlex1 - 3.12.2009, 22:47 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
|
|||
|
||||
KAlex1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 18.10.2009 Где: Ukraine, Zaporozh ye Репутация: нет Всего: нет |
Скажите пожалуйста, драйвера откомпилированные в Windows XP x86 build Enviroment будут работать на Win Xp x64, и на Windows 7?
Я думал что должно быть какое-нибудь Windows XP x64 build Enviroment, но его нету, поэтому драйвера получается будут 32х-битные. |
|||
|
||||
bra1ny |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 26.12.2008 Репутация: 2 Всего: 3 |
на сколько помню можно 2003 x64 использовать , схожие архитектуры. Это сообщение отредактировал(а) bra1ny - 9.12.2009, 23:12 --------------------
Что вас манит сюдаИз заморзких широт?Там гораздо сытней и красивей.Или воля не та, или воздух не тот -Знать и вам не прожить без России. |
|||
|
||||
KAlex1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 18.10.2009 Где: Ukraine, Zaporozh ye Репутация: нет Всего: нет |
А вообще, драйвера откомпилированные в Windows XP x86 build Enviroment будут работать на Win Xp x64, и на Windows 7?
|
|||
|
||||
bra1ny |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 26.12.2008 Репутация: 2 Всего: 3 |
Вообще-то тоскают с собой драйвера для разных платформ. Для x86 отдельно , для x64 отдельно. --------------------
Что вас манит сюдаИз заморзких широт?Там гораздо сытней и красивей.Или воля не та, или воздух не тот -Знать и вам не прожить без России. |
|||
|
||||
KAlex1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 18.10.2009 Где: Ukraine, Zaporozh ye Репутация: нет Всего: нет |
Подскажите пожалуйста как настраивать MVS 2005 для создния user-mode application, которые смогли бы взаимодействовать с kernel-mode драйвером?
|
|||
|
||||
smoke_man |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 25.1.2007 Где: Рязань Репутация: 5 Всего: 17 |
В смысле настраивать? Создаешь приложение, а для работы с драйвером используешь следующие функции:
CreateFile -> IRP_MJ_CREATE CloseHandle -> IRP_MJ_CLEANUP & IRP_MJ_CLOSE WriteFile -> IRP_MJ_WRITE ReadFile-> IRP_MJ_READ DeviceIoControl -> IRP_MJ_DEVICE_CONTROL -------------------- 0x2b|~0x2b |
|||
|
||||
KAlex1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 18.10.2009 Где: Ukraine, Zaporozh ye Репутация: нет Всего: нет |
Всмысле какие папки указывать в настройка, типа Additional library directories, возможно какие-нибудь настройки линковщика. ЧТо-то наподобии http://alter.org.ua/ru/docs/nt_kernel/vc8_proj/ вот этого, если такое вообще есть.
Потому что я пробовал подключить .h файл с нужной мне функцией, указыв на него необходимые пути в настройках проекта, но всеравно при линковании ошибки. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |