[an error occurred while processing this directive] [an error occurred while processing this directive]
МАхонькая поправка
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Ochkarik 26 марта 2002 г. 21:50
В ответ на: Я "подушил" программиста и получил несколько ответов.(+) отправлено misyachniy 18 марта 2002 г. 17:11

VxD не токма статическими бывают. динамические тоже. основное отличие - статически действительно при загрузке операционки грузятся и второе существенней - они могут иметь процедуры вызываемые до переходя операционки в защищенный режим.

если реальный x86 режим не нада, и поддержку в досе.(прошлый век)
драйвер может быть динамическим(он и будет), хотя для P&P он загружается при старте(но уже в звщищенном режиме проца) но выгрузить то его можно кады угодно;)


VxD/WDM - в отличии от приложений работают в Ring-0 (приложения в Ring-3) разница между ними - в правах доступа(права хранятся в дескрипторах памяти).
а именно нарпимер из под 95/98 можно обратится к портам I/O и из приложения(exe) (под NT/2000/xp - запрещено)но не сразу -
первым делом операционка проверяет, не захватил ли кто из драйверов требуемый порт, если нет - выполняет команду, если захвачено - управление передается функции драйвера, которая может эмулировать обращение к I/O)
в приложениях низя получить реальный(железный;(хм.. если не ошибся) адрес выделенного участка памяти(handle - это виртуально;)

пример мастер PCI:
выделяется память, плате PCi надо отдать именно физ адрес для того чтобы она могла получить доступ куда надо.

ну с прерываниями понятное дело тока через драйвера. (дос в виртуальной машине - не в счет)
отображаемая память - тоже(та, что физически на PCIкарте стоит)
//PCI- потому что я для них драйвера и пишу

это на пальцах.
структура(совсем коротко)

процедуры загрузки в реальном режиме 86(не обязательно)
процедуры загрузки в ращищенном режиме
процедуры интерфейса с приложениями(DeviceIOControl)
ну там процедуры обработки прерывания(если есть)
еще куча(хотя не обязательно) всяких системных - (реакция на всякие действия операционки - создание виртуальных машин, Power, дофига)
ну и выгрузка (их несколько разбито по этапам)

каждую описывать - эт очень долго. самая корявая документация - майкросовт(DDK95(vxd) DDK98(две версии было) DDK2000(WDM, они же - *.sys) ) я ее честно изучал и матерился;)
совтом от NuMega и WinDriver решил не пользоваться. оно может и проще, но когда уже знаешь все. да и изучать их классы... ничуть не лучше DDK. ну это мой путь - я его прошел.
хотя все говорят что проще. зато теперь всю подноготную знаю.

писать на чем? - даже на дельфях можно - но это извращение - где то в сети пример есть. вообще лучше на С. начинал я с VxDWriter-а.(он делает "рыбу" на чистом C)

документации на русском практицки нет. на английском - дока от NuMEga/WinDriver (есть еще несколько подобных) но там больше описание ИХ классов. - выбор: либо функции DDK либо классы (по сути одно и то же)

это совсем коротко конечно.
если есть более конкретные вопросы - могу попробовать ответить. (о сообщениях лучше уведомлять мылом)

ЗЫ сам я ищу инофрмацию о JTAG выводах на PCI... хотя по видимому темное это дело.(имеется в виду - можно ли ими программно управлять)

вот такие пироги

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru