Рантайм-библиотеки...
Участников: 2
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Рантайм-библиотеки...
Обнаружил в ФБ одну занозу, могущую вызвать головную боль:
При попытке использовании функций ввода/вывода в порты (Out и т. д.) у меня почему-то Винда не выдала исключение, что, мол, память не может быть...
Ясное дело, что было интересно поэтому обнаружил в исходнике такую штуку - драйвер fbportio.sys В исходнике языка о нем практически ничего , хотя есть папочка src\rtlib\win32\portio в которой все это богатство на ГЦЦ и написано . Я особо не изучал исходник (времени нету ), но на первый взгляд картинка такая: при установке Фб не ложит драйвер в папку %systemroot%\drivers , а появляется он там при первой же попытке использовать Out и ей подобные функции.
Выглядит сие очень хорошо: налицо забота о пользователях языка (программистах) , хотя я бы в свои установочные пакеты включал этот файлик (в случае портового ввода/вывода) - всякое бывает...
Всех с Троицей!!!
При попытке использовании функций ввода/вывода в порты (Out и т. д.) у меня почему-то Винда не выдала исключение, что, мол, память не может быть...
Ясное дело, что было интересно поэтому обнаружил в исходнике такую штуку - драйвер fbportio.sys В исходнике языка о нем практически ничего , хотя есть папочка src\rtlib\win32\portio в которой все это богатство на ГЦЦ и написано . Я особо не изучал исходник (времени нету ), но на первый взгляд картинка такая: при установке Фб не ложит драйвер в папку %systemroot%\drivers , а появляется он там при первой же попытке использовать Out и ей подобные функции.
Выглядит сие очень хорошо: налицо забота о пользователях языка (программистах) , хотя я бы в свои установочные пакеты включал этот файлик (в случае портового ввода/вывода) - всякое бывает...
Всех с Троицей!!!
vbman- Сообщения : 52
Дата регистрации : 2008-11-19
Возраст : 42
Откуда : Украина, Кировоград
Re: Рантайм-библиотеки...
чет ниче непонял, те к бинарнику программы прикрепряется бинарник драйвера, и при нужде прога его выгружает в системную дирректорию?
Re: Рантайм-библиотеки...
tux пишет:чет ниче непонял, те к бинарнику программы прикрепряется бинарник драйвера, и при нужде прога его выгружает в системную дирректорию?
Не совсем бинарник: в исходниках драйвера есть текстовый файл с 16-ричными кодами (массив 16-ричных чисел) - видимо, это и есть драйвер . Прога просто в коде если надо сливает это богатство в бинарный файл. Прием известный... Хотя повторюсь: я еще толком не разобрался, но впечатление после экспериментов стойкое... Сам дравер основан на коде Дейла Робертса (VOID.RU). Я когда перенес на другую машину программку, пищащую динамиком через порты (в справке есть пример), то драйвер появился сам собой...
vbman- Сообщения : 52
Дата регистрации : 2008-11-19
Возраст : 42
Откуда : Украина, Кировоград
Re: Рантайм-библиотеки...
чет фигня какаето, а как же тогда для других виндов, ведь для каждой свои дрова нужны... а про никсовые системы я и вообще молчу. Может всетаки венда сама типа "автоматически" на лету доставляет нужные дрова
Re: Рантайм-библиотеки...
tux пишет:чет фигня какаето, а как же тогда для других виндов, ведь для каждой свои дрова нужны... а про никсовые системы я и вообще молчу. Может всетаки венда сама типа "автоматически" на лету доставляет нужные дрова
Нет, такая фишка будет работать на ура во всех NT-виндах, а в 9х - там все открыто и так... Код драйвера не сложен и в ядре есть официальные функции Ke386IoSetAccessProcess, Ke386SetIoAccessMap, SetIOPermissionMap. Вот ссылка на статью - почитайте, очень занимательно :ПРЯМОЙ INPUT/OUTPUT В СРЕДЕ WINNT
Я бы хотел такую умную винду. Только вот как она тогда будет отличать намерения мирные от вирусной атаки?Может всетаки венда сама типа "автоматически" на лету доставляет нужные дрова
vbman- Сообщения : 52
Дата регистрации : 2008-11-19
Возраст : 42
Откуда : Украина, Кировоград
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|