смешно как это относится к написанию кода? и средой тоже. А по моему делфи мертв. Плавали знаем, вы просто не умеете писать на си. в этом и проблема. ДА ладно че вы спорите, пишите на чем хотите хоть в байт кодах. Это не мое дело. Ну конечно не надо только бреда что асм код нагляднее. PS VCL полный гуан, ну если вы не знали, мне есть с чем сравнивать с тем же Qt
Глупый вопрос) Неужели если Вы нашли правильный кусок кода, то не догадаетесь вставить его вместо не правильного куска кода? а зачем принаписании драйвера нужна среда разработки?)) я как-то попробовал создать форму окна в Visual Studio) немножко помучавшись плюнул и решил изучать делфи. там окно создаётся за несколько кликов) а разве я не прав? на асме что по сеешь, то и пожнёшь
Llirik Предлагаю там остаться, и продолжать заниматься формошлепством. Не в обиду. Но что вам мешает, даже не зная Си, взять проект из ддк и собрать его , и посмотреть асм листинг например?
Так и сделал, но листинг и исходник ооочень сильно разнятся, и не понимаю что нужно а что нет( Кстати, Вы недавно мне перевели 2 функции этого проекта на асмhttp://www.wasm.ru/forum/viewtopic.php?id=40059. первая работает, а вторая как раз так и разнится с исходником и с тем что у меня в *.asm( Еще я дизассеблировал один рабочий драйвер и вставил функцию из него, но не прокатило(
Если так уж ненавистен С, то можно скомпилировать драйвер с отладочной информацией и после посмотреть в IDA. С одной стороны ассемблер, с другой -- имена и метки сохранятся.
Чувак! Не парься, предлагаю дуракоустойчивое решение: Действуй методом исключения, комментируй подозрительные функции, делай их пустыми или полностью комментрируй, собирай проект и смотри упадет ли. Так упрощай пока перестанет падать, затем добавляй код по-немногу, но код соответственно должен быть логически завершен, как то: Если выделил память, удостоверься, что она освобождается, создал устройство драйвера, будь добр удалить устройство и т.п. Создавай скелеты, без функционала, конечно некоторые функции нельзя полностью оставить без начинки, иначе голубой экран смерти. Короче прояви солдатскую смекалку. Кстати посмотри опцию для компилятора /Fa - она создает асм листинг при компиляции. Или такую: /FAs http://msdn.microsoft.com/en-us/library/367y26c6.aspx А вообще без знания С, это в деле дроволомания переть против течения. Если конечно ты не F-four или Стив Гибсон, который все пишет на асме. На мой взгляд, писать дрова на асме - это забивать микроскопом гвозди. Асм нужен для тонкого хирургического вмешательства.
neutronion, Вы описали способ, которым я вот уже 10 лет всё и делаю в компе, а не только в программировании) но сейчас и он пока не помогает
Опытным путём я выяснил, что вылет при загрузке WinXP происходит на строке: invoke IoAttachDeviceToDeviceStack, KeyeviceObject, pDeviceObject но я никак не могу понять, что тут не так( P.S. Прилагаю свой драйвер
А SoftIce, кроме Win98, хоть где-нибудь работает? Я уж его сегодня установил на Windows Server 2003 и опять не работает!
Спасибо за "помощь"! Ну "ооочень трудно" вам было сказать, что парень просто добавь "push ebx" и "pop ebx"!!
Крестоносец! Парень! Как в той притче про мастера конфу, его спросили какой стиль сильнее, на что он ответил тот стиль в котором человек отдает душу. Так и тут, если ты согласен потратить все свое время, пожертвовать семьей наплюешь на деньги и скажешь себе, что только на ассемблере ты бущешь програмить, тогда я поставлю на тебя все свои деньги, потому что такие люди могут добиться результата даже в ассемблере. Если же ты делаешь это по другим причинам, знай, ты проиграешь!
Фильтр на асме уже работает) теперь только разбираемся, как считывать данные с клавы http://www.wasm.ru/forum/viewtopic.php?pid=426261#p426261
Отвечаю на свой вопрос) чтобы не было BSOD при CloseHandle, надо IRP, приходящий к устройству не подключённому к стэку устройств, завершать, а остальные IRP отправлять дальше по стэку