Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Направления программирования
>
Drivers
(Модераторы:
Ochkarik
,
aks68
) > Тема:
Драйверы и C#. Новичку
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Драйверы и C#. Новичку (Прочитано 13587 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
Oakim
Гость
Драйверы и C#. Новичку
«
:
21-02-2006 18:37 »
Объясните пожалуйста маленькому и неопытному. Как происходит обращение к драйверу из пользовательского приложения. Причем, желательно на С#.
Дело в том, что
срочно
понадобилось обращаться к компоненте ядра из приложения, а раньше никогда не имел дело с написанием компонент ядра.
Буду благодарен за любое наставление и ссылки на понятные статьи. Ибо читаю Солдатова и чувствую себя дауном
Записан
npak
Команда клуба
Offline
Пол:
Re: Драйверы и C#. Новичку
«
Ответ #1 :
22-02-2006 09:51 »
Для обращения к драйверу в минимальном варианте нужны три функции Win32: CreateFile, DeviceIoControl и CloseHandle.
Пример взаимодействия с драйвером из C#:
http://blogs.msdn.com/jeffrey_wall/archive/2004/09/13/229137.aspx
В статье показано, как реализовать низкоуровневое управление драйвером файловой системы из C#
можно воспользоваться гуглом, строка поиска: DeviceIoControl C#
«
Последнее редактирование: 22-02-2006 09:53 от npak
»
Записан
UniTesK -- индустриальная технология надежного тестирования.
http://www.unitesk.com/ru/
Oakim
Гость
Re: Драйверы и C#. Новичку
«
Ответ #2 :
22-02-2006 14:15 »
Ага. Спасибо.
А почему у меня часть драйверов открывается (Example из Солдатова, COM1), а часть - нет (например, Cdrom, sfilter из примеров ДДК)?
И где смотреть коды ошибок. А то выдает "ошибка №2" и трын-дылыды. Пойми чего ему не хватает.
И еще одно. Соответствуют ли эти три операции созданию коммуникационного канала, или нет? Если нет, то как создать коммуникационный канал между компонентой ядра и компонентой пользовательского интерфейса?
«
Последнее редактирование: 22-02-2006 14:53 от Oakim
»
Записан
npak
Команда клуба
Offline
Пол:
Re: Драйверы и C#. Новичку
«
Ответ #3 :
22-02-2006 17:19 »
А что такое коммуникационный канал?
Может быть, речь идёт о том, что приложение получает доступ к драйверу, создав файл со специальным именем?
Что означает "часть драйверов открывается, а часть - нет"? Правильно ли я понимаю, что "не открывается" означает, что CreateFile вернул ошибку?
Записан
UniTesK -- индустриальная технология надежного тестирования.
http://www.unitesk.com/ru/
Oakim
Гость
Re: Драйверы и C#. Новичку
«
Ответ #4 :
22-02-2006 17:41 »
Ага. Правильно. Я смотрю по DeviceTree V2.6 - Driver View
Например, такие девайсы, как COM1, Mailslot и Example (см. выше) подключаются нормально.
А на счет других пишет: "Не дается найти указанный файл" (ошибка 2).
Кроме того, я обнаружил, что некоторые драйверы идут как "\Driver\...", а некоторые как "\FileSystem\...". Есть ли принципиальная разница между доступом к этим драйверам?
Записан
Oakim
Гость
Re: Драйверы и C#. Новичку
«
Ответ #5 :
22-02-2006 17:43 »
Кстати, и как компоненты ядра запускать/останавливать из приложения?
Записан
Oakim
Гость
Re: Драйверы и C#. Новичку
«
Ответ #6 :
23-02-2006 08:50 »
Кажется, я понял в чем проблема. Как задается путь к драйверу?
1. Куда ведет путь \\\\.\\
2. Как достичь объекта, если он находится (по WinObj) в \FileSystem\filters\
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Направления программирования
>
Drivers
(Модераторы:
Ochkarik
,
aks68
) > Тема:
Драйверы и C#. Новичку
Загружается...