Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 4
На сайте нет зарегистрированных пользователей

Пользователей: 13,361
новичок: uehuat
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование информационно-поисковой библиографической системы на gpss ...
Изменения контуров и сортировка в двумерном массиве чисел на Turbo Pasca...
Меры близости на векторах в Delphi + Блок схемы

Поля структур
Некоторые поля структур являются масками флагов. Драйверам не разрешено передавать таким полям значения напрямую, а только лишь устанавливать или сбрасывать соответствующие флаги. Это правило появилось из-за того, что в определенных реализациях
могут оказаться флаги, не предусмотренные спецификацией.



Также вам может показаться, что такая тема как http://linentime.ru/catalog/prikolnoe-postelnoe-bele никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт linentime.ru. Тема прикольное постельное белье интернет магазин там представлена весьма широко. На том сайте можно узнать много интересного на тему прикольное постельное белье интернет магазин. Что означает вообще тема прикольное постельное белье интернет магазин, где найти прикольное постельное белье интернет магазин - про это написано на сайте linentime.ru. Это очень важная для многих людей тема - прикольное постельное белье интернет магазин. Спасибо сайту linentime.ru за информацию на тему прикольное постельное белье интернет магазин.

♦ Структуры данных, недоступные для приложений, не включены в раздел 4, однако могут упоминаться при описании использующих их процедур. Драйверам запрещено обращаться к какой-либо части таких структур. Они могут использовать их исключительно по ссылкам, передавая указатели на эти структуры соответствующим процедурам ядра.
♦ Для чтения или изменения структур данных, описанных в разделе 4, драйверы должны по мере возможности использовать только функции раздела 3. Такой подход позволяет защитить драйвер от потери совместимости при внесении изменений в структуры данных.



♦ Драйвер должен содержать файл ddi.h, размещаемый после всех системных включаемых файлов, но до специфических для драйвера включаемых файлов. Причиной появления данного требования является реализация большого числа функций спецификации в виде макроопределений. Файл ddi.h переопределяет такие макросы, заставляя драйверы использовать не их, а вызовы функций, формирующие соответствующие процедуры. Это позволяет упростить задачу переноса драйвера на другие версии системы. Включение специфических для драйвера файлов после ddi.h гарантирует, что он будет использовать только интерфейс DDI/DKI.



♦ Все закрытые процедуры и внутренние переменные должны иметь тип static.
16.7.2. Функции раздела 3
В разделе 3 спецификации DDI/DKI описаны функции ядра, используемые драйверами устройств. Процедуры могут быть разделены на несколько функциональных групп.
♦ Синхронизация и таймер. Процедуры sleep() и wakeup() описаны в разделе 2.5.1. Функция delay() блокирует процесс на указанное количество времени. Процедуры timeout() и untimeout() позволяют производить планирование процессов


♦ Управление памятью. Процедуры kmem_alloc() и kmem_free() отвечают за выделение памяти ядром. Процедуры rminit(), rmaUoc() и rmfree() управляют картами ресурсов. Работа этих функций описана в главе 121. Функции physmap() и physmapfree() применяются для отображения физических адресов в виртуальные.
Спецификация DDI/DKI 769
Управление буфером. Процедура getblk() размещает буфер, функция brelse() используется для его освобождения. Драйвер вызывает biowait() для ожидания завершения ввода-вывода. Для пробуждения процесса и освобождения буфера обработчик прерываний вызывает biodone().
Операции с номерами устройств. Функции getmajor() и getminor() выделяют внешний старший и младший номера из dev_t. Функции itoemajor() и etoiminor() применяются для преобразования внутреннего номера во внешний и обратно.
Прямой доступ к памяти. Набор аппаратно-зависимых функций, поддерживающих DMA. Спецификация содержит описания функций для IBM РС-АТ-совместимых архитектур.
Обмен данными. Функция uiomove() копирует данные между адресным пространством ядра и пространством прикладного процесса, либо между двумя участками внутри пространства ядра. Эта функция поддерживает ввод-вывод методом сборки-рассоединения (scatter-gather I/O). Например, функция может собирать данные из нескольких прикладных буферов в единый буфер ядра

Для описания параметров передачи функция использует структуру uio. Процедуры copyin() и copyout() применяются при обмене данными между буфером драйвера и прикладным буфером. Такие аппаратно-зависимые процедуры, как inb() и outb(), перемещают данные из пространства ввода-вывода и обратно на архитектурах, не поддерживающих отображаемый ввод- вывод (например, в Intel х86).


♦ Опрос устройств. Процедуры опроса устройств включают в себя phalloc() и phfree(), используемые для выделения структур poLLhead, и pollwakeup() для пробуждения опрашивающих процессов.
♦ STREAMS. Набор процедур поддержки драйверов устройств STREAMS. О них подробнее читайте в главе 17.
♦ Сервисные процедуры. В интерфейсе DDI/DKI поддерживается набор функций работы со строками, таких как strcopy() и strlen(), манипулирования байтами, таких как bcopy(), bcmp() и bzero(), функции обработки ошибок, такие как ASSERT() и cmn_err(), а также другие полезные функции, например тах() и min().
Опубликовал katy June 24 2015 16:46:29 · 0 Комментариев · 3343 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Размещение элемен...
isoCanvas (Редакт...
Создание отчетов ...
IPAddresseEdit
DCMintry
3D Тетрис [Исходн...
Отключение и вклю...
Exe in exe
Архив значков
PHP/MySQL для нач...
PRNDbgrid
Autorunner
Время загрузки ...
Разработка клиент...
База Allsubmitter...
Редактор текста (...
Аватары в комме...
C++ Builder 6 СПР...
Панель случайной ...
Базы данных в Инт...

Топ загрузок
Приложение Клие... 100771
Delphi 7 Enterp... 97787
Converter AMR<-... 20259
GPSS World Stud... 17014
Borland C++Buil... 14186
Borland Delphi ... 10267
Turbo Pascal fo... 7372
Калькулятор [Ис... 5968
Visual Studio 2... 5205
Microsoft SQL S... 3661
Случайные статьи
Интересная тема дл...
Палитра VGA: управ...
• разрешив клиента...
Компиляторы MIPS
RESET (СБРОСИТЬ)
Сравнение скорости...
Координаты, окна, ...
Клиент для LiveJou...
Обзор уязвимостей ...
Урок 2. Основные п...
Монро казино
Дыpы в Win95/WinNT
Операция V0P_MAP
Импорт статических...
8-11); эта структу...
Определенные циклы
Организация подклю...
БЛУЖДАНИЯ БЕЗ ОРИЕ...
УПРАВЛЕНИЕ ВЫПОЛНЕ...
Бесплатные игровые...
1. Вы мэр небольшо...
1.4.3. Чтение и об...
На что потратить в...
Переписать текст и...
Помимо вызова акти...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?