Lonely |
Отправлено: 04.12.2005, 22:21 |
|
Не зарегистрирован
|
Вообщем есть пара функций в проге:
CODE |
unsigned char iport(unsigned short adr)
{
unsigned char dan=1;
asm {
mov dx,adr
in al,dx
mov dan,al
}
return(dan);
}
//---------------------------------------------------------------------------
void oport(unsigned short adr,unsigned char dan)
{asm {
mov dx,adr
mov al,dan
out dx,al
}
}
|
Под NT естественно не работают.
Нашел красивую статью по этой теме: (Советую всем ознакомится)
http://www.void.ru/content/701
Все бы хорошо, но там сказано: "Компиляция: Используйте седство DDK BUILD."
я пишу под C++Builder 6, потому, как я понял, мне нужен тока модуль ntddk.h.
где его надыбать?
если качать всю DDK то меня это разорит (мой и-нет: 3,5р/Мб).
Да и от куда его качать?
Может у кого-нибудь из "бывалых" сего форума найдется этот модуль, и ему будит не влом поделится со мной.
Заранее Благодарен. |
|
Konstantine |
Отправлено: 05.12.2005, 13:50 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
посмотри на этом форуме в разделе "Работа с портами" тема про LPT порт в XP — я там выкладывал проект...
|
|
Lonely |
Отправлено: 05.12.2005, 15:59 |
|
Не зарегистрирован
|
Я уже вчера скачал Юзерпорт. ну прога стоящая.
пытался полдня разобраться в ее коде. бошка трещит, но что-то я понял:
прога действует приблизительно так: сначала свою IOPM (I/O Permission Map) затем кидает ее в реестр: HKEY_LOCAL_MACHINE\Software\UserPort. потом грузит драйвер, после чего выполняется функция драйвера, которая находит ориинальную IOPM в TTS виндов по смещению. считывает из реестра IOPM и катает ее на оригинальную IOPM.
вроде так. я конечно не силен в написаниях драйверов, потому могет где напортачил. да и код проги (написанной походу на Visual C) я понимал приблизительно.
такой код загружает драйвер нормально, но доступ не дает
|
|
|