Member 10059192 Ответов: 2

Как получить доступ к функции deviceiocontrol без аппаратного обеспечения?


мы пытаемся протестировать функции программного обеспечения dll/драйвера без аппаратного обеспечения, используя функцию DeviceIoControl в функции Readport/writeport data(диапазон адресов до 0x7f), но мы не можем получить к ней доступ. может ли кто-нибудь дать образец для него? это очень полезно для нас.спасибо.

Что я уже пробовал:

мы пробовали DeviceIoControl функцию жесткого кода, но параметры пытаются получить доступ к аппаратному обеспечению (драйверу).

Richard MacCutchan

DeviceIOControl всегда будет передавать параметры водителю, в этом и заключается его предназначение. А если у вас нет аппаратного обеспечения, то вам нужно установить эмулятор драйвера, чтобы ловить сообщения.

Member 10059192

спасибо за ответ, в нашем случае Memread MemWrite data и RegRead и Regwrite data оба мы получаем, но в writeport данные должны поступать в Readport с помощью функции DeviceIOControl без аппаратного обеспечения для тестирования программного обеспечения.

2 Ответов

Рейтинг:
0

Debojyoti Majumder

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

Чтобы иметь фиктивную имплантацию, вы должны обновить код драйвера, чтобы пользовательский режим мог иметь некоторые фиктивные данные. Смотрите эту ссылку Разработка драйверов-Часть 2: Введение к реализации устройств[^] чтобы иметь представление о том, как реализовать IOCTL.

В разделе кода большую часть времени я проверяю и извлекаю данные из пользовательского буфера, делаю DbgPrint и завершаю запрос с помощью IoCompleteRequest. Помните, что если у вас нет кода драйвера, вы ничего не можете с этим поделать, как связаться с автором драйвера, чтобы поддержать ваш вызов IOCTL.


Рейтинг:
0

Patrice T

Цитата:
Как получить доступ к функции deviceiocontrol без аппаратного обеспечения?
Короткий ответ: Нет.
Драйвер только делает связь с аппаратным обеспечением. Для каждого запроса, который вы делаете, ответ приходит от оборудования, поэтому нет оборудования, нет ответа.

Настолько реальный или эмулируемый, что вам нужно оборудование.