![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
Добрый день, я пишу библиотеку для работы с COM портами. Работаю я с ними на уровне портов ввода/вывода UART`а.
Для получения привилегий использую драйвер WinIO. Возникла проблемма как написать свой обработчик прерываний, желательно код должен быть на VC со вставками на асме, если необхадимо. Винда не позволяет выполнить комманду CLI и STI, хотя использую WinIO. Спасибо! -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Я тебе предлагаю отказаться от WinIO и написать самому промежуточный драйвер. Если интересно, то могу даже рассказать как
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
Была такая мысля, но пока не могу найти где скачать DDK -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
shedon, на мелкомягких уже не скачаешь, теперь только через файлообеменную сеть eMule например.
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
Свершилось ! Я нашёл DDK !!!
Буду очень благодарен -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| Масяня |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
Но ведь все надо делать в режиме ядра, а CLI-STI ничего не дадут, WinNT это же не ДОС там есть такое понятие как IRQL.... на нем-то все и держится! А драйвер режима ядра может выполнить свою процедуру с CLI (запрет прерываний) да и только, а после все вернется на "круги своя" Это сообщение отредактировал(а) Масяня - 23.5.2004, 20:50 |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
Ды к WinIo я и пытался использовать, для получения режима ядра. Но не фига не получилось. Эти операции похоже разрешены только в нулевом кольце, а по-этому придётся писать свой драйвер.
-------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| Sined |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 19.5.2004 Репутация: 1 Всего: 0 |
cli,sti идут прямо на ПКП насколько я помню, посему ни 1 винда не должна такого позволять.Ни на нулевом кольце--нигде...сама идея многозадачности летит на фиг. shedon, тут уже была подобная тема и даже выкладывалсь болванка драйвера--самая простая длл. Поищи, если не найдешь у меня вроде на винте валялось что-то похожее(работает с посл. портами)--поищу.... Это сообщение отредактировал(а) Sined - 23.5.2004, 23:20 |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
А в нулевом кольце винду ни кто не спросит -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| Масяня |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
shedon прав! На нулевом кольце можешь делать что хочешь! Когда я говорил о том, что "надо все делать в драйвере", то я имел в виду то, что если вызовишь CLI, то при возврате управления из процедуры драйвера Диспетчер ввода/вывода сам потом разрешит прерывания. Это сообщение отредактировал(а) Масяня - 24.5.2004, 04:59 |
||||
|
|||||
| Sined |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 19.5.2004 Репутация: 1 Всего: 0 |
Именно поэтому она обидится и выбросит bsod. |
|||
|
||||
| Масяня |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
shedon, написал я тут вот обработчик для IRQ12 в WinXP и все с ним заеб.. - могу дать, а вот например, на IRQ1 (клаву) WinXP не разрешила поставить, там в последнем обработчике IRQ1 ShareVector = FALSE. А тебе на что надо поставить обработчик?
|
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Да на самом деле проще наерно написать фильтр на драйвер ком-порта. Зачем колесо-то изобретать?
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
На IRQ4. Мне тут намекнули, что проблемма не в дровах, а в аппаратной части, вроде есть такой глюк почти у всех микросхем UART, они не всегда формируют прерывание, по приходу байтов. -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| Масяня |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 1.4.2004 Репутация: нет Всего: нет |
Щаз посмотрел в SoftIce’е на IRQ4: Share interrupt = FALSE, а это значит, что с помощью IoConnectInterrupt() обработчик не поставить в WinXP!
Не знаю, надо искать по нему инфо Это сообщение отредактировал(а) Масяня - 29.5.2004, 21:53 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |