Организация ввода-вывода. Драйверы WDM. Рощин А.В. - 28 стр.

UptoLike

Составители: 

28
Таблица 2.2 – Флаги поля Flags в структуре DEVICE_OBJECT
Флаг Описание
DO_BUFFERED_IO Операции чтения и записи используют
буферизацию при обращении к данным
пользовательского режима. Используется
системный буфер.
DO_EXCLUSIVE Дескриптор устройства может быть открыт только
одним программным потоком.
DO_DIRECT_IO Операции чтения и записи использую прямой
доступ при работе с данными пользовательского
режима. Для этого используется список
дескрипторов памяти.
DO_DEVICE_INITIALIZING Объект устройства еще не инициализирован.
DO_POWER_PAGABLE Запрос IRP_MJ_PNP должен обрабатываться на
уровне PASSIVE_LEVEL.
DO_POWER_INRUSH Включение питания устройства сопровождается
большим броском тока.
Префикс DO_ флагов в таблице 2.2 означает DEVICE_OBJECT.
Таблица 2.3 – Флаги поля Characteristics в структуре DEVICE_OBJECT
Флаг Описание
FILE_REMOVABLE_MEDIA Устройство использует сменные
носители
FILE_READ_ONLY_DEVICE Носитель поддерживает только чтение
FILE_FLOPPY_DISKETTE Устройстводисковод для гибких
дисков
FILE_WRITE_ONCE_MEDIA Носитель допускает только
однократную запись
FILE_REMOTE_DEVICE Доступ к устройству возможен через
сетевое подключение
FILE_DEVICE_IS_MOUNTED Физический носитель присутствует в
устройстве
FILE_VIRTUAL_VOLUME Устройство является виртуальным
томом
FILE_AUTOGENERATED_DEVICE_NAME Имя устройства автоматически
генерируется диспетчером ввода-
вывода
FILE_DEVICE_SECURE_OPEN Проверка безопасности при открытии
Поле Characteristics (ULONG) аналогично предыдущему полю. Но его
битовые флаги описывают дополнительные характеристики устройства (таблица
2.3). Диспетчер ввода-вывода устанавливает эти флаги на основании пятого
аргумента функции IoCreateDevice.
        Таблица 2.2 – Флаги поля Flags в структуре DEVICE_OBJECT
        Флаг                               Описание
DO_BUFFERED_IO         Операции     чтения    и    записи    используют
                       буферизацию     при     обращении    к   данным
                       пользовательского      режима.      Используется
                       системный буфер.
DO_EXCLUSIVE           Дескриптор устройства может быть открыт только
                       одним программным потоком.
DO_DIRECT_IO           Операции чтения и записи использую прямой
                       доступ при работе с данными пользовательского
                       режима.    Для    этого    используется   список
                       дескрипторов памяти.
DO_DEVICE_INITIALIZING Объект устройства еще не инициализирован.
DO_POWER_PAGABLE       Запрос IRP_MJ_PNP должен обрабатываться на
                       уровне PASSIVE_LEVEL.
DO_POWER_INRUSH        Включение питания устройства сопровождается
                       большим броском тока.


     Префикс DO_ флагов в таблице 2.2 означает DEVICE_OBJECT.

    Таблица 2.3 – Флаги поля Characteristics в структуре DEVICE_OBJECT
              Флаг                                 Описание
FILE_REMOVABLE_MEDIA           Устройство          использует
                                                            сменные
                               носители
FILE_READ_ONLY_DEVICE          Носитель поддерживает только чтение
FILE_FLOPPY_DISKETTE           Устройство – дисковод для гибких
                               дисков
FILE_WRITE_ONCE_MEDIA          Носитель        допускает      только
                               однократную запись
FILE_REMOTE_DEVICE             Доступ к устройству возможен через
                               сетевое подключение
FILE_DEVICE_IS_MOUNTED         Физический носитель присутствует в
                               устройстве
FILE_VIRTUAL_VOLUME            Устройство является виртуальным
                               томом
FILE_AUTOGENERATED_DEVICE_NAME Имя      устройства     автоматически
                               генерируется    диспетчером    ввода-
                               вывода
FILE_DEVICE_SECURE_OPEN        Проверка безопасности при открытии


     Поле Characteristics (ULONG) аналогично предыдущему полю. Но его
битовые флаги описывают дополнительные характеристики устройства (таблица
2.3). Диспетчер ввода-вывода устанавливает эти флаги на основании пятого
аргумента функции IoCreateDevice.



                                     28