Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

scsi, команды в устройство

19K
27 октября 2009 года
Mhael
54 / / 20.03.2008
Есть устройство — микрочиповский контроллер, юсбишник и память в виде карточки sd. К компу подключено по юсб. Память отображается как mass-storage device.
Требуется общаться с устройством, посылать ему стандартные scsi-команды и команды, определенные разработчиком железа.
Вопрос, как это сделать!?
Нашел технологию SPTI — но она работает только с правами администратора, если есть обходной путь — напишите пожалуйста.
Есть ASPI — но это, как я понял какая-то древняя сторонняя разработка, надо качать драйвер, sdk ... — как-то не тянет в этом копаться.
Есть возможность, наверное, достучаться через scsi miniport и scsi драйвер, но я пока не понял как
Кто разбирался в теме — прошу подсказать как устроить обмен командами и где найти инфу.
14
27 октября 2009 года
Phodopus
3.3K / / 19.06.2008
[QUOTE=MSDN]
Allows an application to send almost any SCSI command to a target device, with the following restrictions:
..........
Applications do not require administrative privileges to send a pass-through request to a device, but they must have read-write access to the device.
[/QUOTE]
так что...
А ASPI как раз этим и была дырой - позволяла непойми кому непойми что.
19K
27 октября 2009 года
Mhael
54 / / 20.03.2008
Т.е. права не нужны получается на чтение/запись? Это хорошо, попробую. А то я прочел где-то в нэте, что мол без прав админа кина не будет, запустил пример из ддк по spti - он мне выдал ошибку access denied и загрустил :)
Хм только непонятно, в мсдн написано, что открывать надо не устройство, а драйвер класса. Это как? Или я не так понял?
14
27 октября 2009 года
Phodopus
3.3K / / 19.06.2008
Если я верно понял вопрос, то там иерархия: порт драйвер -> класс драйвер.
В вашем случае порт-драйвер будет usbscsi или как его там, а класс-драйвер может быть или нет. Так вот если он есть - запросы следует слать ему.
19K
28 октября 2009 года
Mhael
54 / / 20.03.2008
Большое спасибо, буду пробовать сегодня :)
f a class driver for the target type of device exists, the request must be sent to that class driver. Thus, an application can send this request directly to the system port driver for a target logical unit (LU) only if there is no class driver for the type of device that is connected to that LU. The system port driver does not check to determine if a device has been claimed by a class driver before it processes a pass-through request. ...
Действительно мне наверное надо обращаться к классу скази. Пока еще не до конца все ясно с параметрами DeviceIoControl , но думаю разберусь. Если у вас есть какой код для примера - стукните пожалуйста. Хотя, смотрю в ддк вроде есть пример..
19K
30 октября 2009 года
Mhael
54 / / 20.03.2008
Появилась новая проблема. Да такая,что прям и не знаю что думать ((
VS2008. Создаю консольный пустой проект, пишу пустой main, #include <windows.h> #include <ntddscsi.h> ну и к ней #include <devioctl.h>. Указываю пути. Компилю. 102 ошибки, в основном типа syntax error на всякие скобки, запятые, есть ошибки других типов, но все именно по коду, а не линкера. Файлы на которые ругается — ctype.h, кажется stddef.h и еще пару подобных из crt в основном.
Я в задумчивости — в хедерах и в самом ддк я нигде не видал каких-то дополнительные пояснений. extern C пробовал .
Первая моя мысль, что может какой-то параметр компиляции или линкования надо задать, но какой.. не понятно.
Вторая мысль — в ддк есть свои хедеры crt, mfc, api и я видал какие-то библиотеки явно имеющие аналоги в винде и/или в sdk студии. Может надо использовать их? Но как? Для каждой ручками указать в проекте путь? А библиотеки? Есть ли способ сказать компилятору, чтобы он сначала искал в папках ддк, и только, если там нет искал в остальных? Указать пути ко всем папкам с хэдерами в ддк в проекте и инклудить их как "" ?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог