|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.08.2012, 20:38 | #1 |
Пользователь
Регистрация: 23.07.2012
Сообщений: 77
|
DeiceIOControl в Delphi - передать массив
В общем, необходимо передать в драйвер массив байт.
Тип этого массива реализовал как : Код:
Код:
p.s. ассемблерные коды в теме http://www.programmersforum.ru/showthread.php?t=208763, r0kedrv - драйвер, пример использования - r0ke (как я понял, то, что начинается с строки 35 - это и есть объявление массивва upd. Даже не знаю, в этот раздел или в общие вопросы delphi. Скорее, блин, туда :-( Последний раз редактировалось alex4321; 04.08.2012 в 20:42. |
04.08.2012, 20:43 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
04.08.2012, 20:51 | #3 |
Пользователь
Регистрация: 23.07.2012
Сообщений: 77
|
2Пепел феникса,
BSOD. Блин, понять бы полностью что происходит при выполнении такого MASM-кода : Код:
|
04.08.2012, 20:56 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
04.08.2012, 21:13 | #5 |
Пользователь
Регистрация: 23.07.2012
Сообщений: 77
|
Странно, но то же bsod.
Вообще неплохо бы пример (в указанной теме он есть) собрать, но как я понял он ругается на переопределения какой-то фигни сторонними модулями, что с моими знаниями асм-а равносильно несобираемости :-) Последний раз редактировалось alex4321; 04.08.2012 в 21:24. |
05.08.2012, 01:18 | #6 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
что за драйвер такой гавняный чуть невалид в данных и он все роняет в бсод. не юзайте такие
Нет, ну правда..
|
05.08.2012, 02:01 | #7 |
Пользователь
Регистрация: 23.07.2012
Сообщений: 77
|
Были бы блин идеи, что юзать ещё. Что-тоя мало что нашёл при низкоуровневую имитацию клавиатуры сколь-либо понятными методами/
p.s. кстати скомпилял пример более старой версией masm32 - таки он пашет, т.е. дело в дельфи а не в драйвеер |
05.08.2012, 03:08 | #8 |
Пользователь
Регистрация: 23.07.2012
Сообщений: 77
|
Выяснил что я ошибся в вызове из delphi (в общем указание на это массив и нулевой указатель для выходных данных перепутал). BSOD-ить перестало.
Впрочем при подаче динамического массива ничего не изменилось. Однако статический с тем же содержанием замечательно обрабатывается. Так что до нахождения лучшего решения придётся копировать в буфер. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
передать массив через Socket.SendBuf(); | raketa161 | Работа с сетью в Delphi | 14 | 19.05.2012 15:01 |
Как передать Динамический массив в функцию? | RainCat | Помощь студентам | 4 | 13.04.2011 11:25 |
Как массив передать в качестве аргумента функции | Mixim | C# (си шарп) | 7 | 10.03.2011 09:53 |
Передать двумерный массив через сокет (Debian) | Phaeleh | Qt и кроссплатформенное программирование С/С++ | 1 | 29.11.2010 07:08 |
Как передать весь результат запроса в массив? | VladimirAleks | Общие вопросы Delphi | 5 | 22.10.2009 11:52 |