Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Агуров П.В. -> "Интерфейсы USB. Практика использования и программирования" -> 83

Интерфейсы USB. Практика использования и программирования - Агуров П.В.

Агуров П.В. Интерфейсы USB. Практика использования и программирования — СПб.: БХВ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interface2004.djvu
Предыдущая << 1 .. 77 78 79 80 81 82 < 83 > 84 85 86 87 88 89 .. 166 >> Следующая

244
Часть III. Практика программирования
10.4.7. Секция xxx.LogConfig
Секция xxx.LogConfig описывает системные ресурсы, требуемые драйвером. Ссылка на имя этой секции дается из секции описания модели (см. разд. 10.4.5).
В этой секции могут указываться ключи (мы снова выбрали наиболее используемые ключи):
? DMAConf ig — описание ресурсов DMA;
? ioconf ig — описание ресурсов портов;
? MemConf ig — описание ресурсов памяти; G iRQConf ig — описание ресурсов IRQ. Пример:
[MyDevicel.LogConfig] DMAConfig=0, 1
IOConfig=3bc-3be(3ff::),378-37a(3ff::),278-27a(3ff::) [MyDevice2.LogConfig] IOConfig=8@100-3ff%fff8(3ff::) MemConf ig= 4000@C8000-EFFFF%FFFFCO 0 0 [MyDevice3.LogConfig]
IOConfig=110-llFf3FF::),130-13F(3FF::),150-15F(3ff::) IRQConfig=3,4
MemConfig=4000@C0000-DFFFF%FFFFC000
Подробное описание всех ключей можно найти в MSDN.
10.4.8. Секция xxx.CopyFiles
Секция xxx.CopyFiles описывает операции над файлами, которые требуются для работы драйвера. Ссылка на имя этой секции дается из секции описания модели (см. разд. 10.4.5).
Секция содержит или имена файлов, или ссылку на секцию с именами файлов.
Каждое имя файла задается строкой вида:
Dest-file-name[,source-file-name][,temp-file-name][,flag]
Поле dest-f ile-name задает имя конечного файла. Если секция source-file-name не указана, то задает и имя исходного файла.
Поле source-file-name задает имя исходного файла. Если для операции копирования файлов имена исходного и конечного файлов одинаковы, то это поле можно пропустить.
Гпава 10. Спецификация PnP для USB
245
Поле temp-file-name задает имя промежуточного файла, которое будет использовано, если конечный файл занят в данный момент времени. Используется только в Windows 9х, т. к. Windows NT и выше создают временные файлы автоматически. Операция над файлом будет выполнена при перезагрузке Windows.
Поле flag — необязательное поле, представленное в шестнадцатеричном или десятичном виде. Является маской одного или нескольких системных флагов copyflg_xxx (табл. 10.4).
Таблица 10.4. Таблица флагов секции CopyFiles
Флаги секции CopyFiles
Описание флагов
$00000400
сорyflg_replaceonly $00000800 copyflg_nodecomp $00000008
copyflg_force_file_in_use $00000010
copyflg_no_overwrite $00001000
copyflg_replace_boot_file $00000020
copyflg_no_version_dialog $00000004
copyflg_noversioncheck $00000002
copyflg noskip
Копировать файл только в том случае, если он уже существует в конечном каталоге
Копировать исходный файл без распаковки
Копировать файл в файл temp и использовать его только после рестарта системы (эмуляция поведения занятости файла)
Не заменять файл, если он уже существует. Этот флаг не может использоваться с другими флагами
После выполнения операции требовать перезагрузки системы
Не переписывать файл в конечном каталоге, если существующий файл более новый, чем копируемый
Игнорировать версию файла. Переписывать конечный файл независимо от его версии
Не позволять пользователю отказаться от копирования файла
10.4.9. Секция Strings
Секция strings используется для создания [NF-файлов на нескольких языках. Другие секции могут ссылаться на ключи этой секции с помощью знаков %. Строка, заключенная в знаки %, означает подстановку значения переменной из этой секции.
246
Часть III. Практика программирования
Значения полей этой секции могут быть обычными строками или строками, заключенными в кавычки, если они содержат существенные пробелы до или после строки.
Для NT-платформы секция strings может содержать индекс языка, для которого указываются строки. Индекс представляет собой объединения констант LANG_xxx И SUBLANG_xxx. Например,
[Strings] ; Обычный набор строк
DiskName="My Excellent Software" LocaleSubDir="English"
[Strings.0407] ; Набор строк для немецкого языка (0407) DiskName="Meine ausgezeichnete Software" LocaleSubDir="German"
[Strings.0419] ; набор строк для русского языка (0419) [Strings.0422] ; набор строк для украинского языка (0422)
10.4.10. Связи секций
Собрав все перекрестные ссылки, мы получим картину связей между основными секциями.
Рис. 10.5. Связи основных секций INF-файла
Глава 10. Спецификация PnP для USB
247
Итак, секция version является обязательной в INF-файле. Секция Manufacturer содержит ссылку на секцию описания модели, которая в свою очередь содержит ссылки на секции для конкретных устройств с заданными серийными номерами. Секция описания устройства содержит ссылки на
секции CopyFiles, AddReg, DelReg И LogConfig. Кроме ТОГО, любая секция
может содержать ссылку на строки из секции strings (рис. 10.S).
10.4.11. Создание и тестирование INF-файлов
В комплект Windows DDK входит довольно удобная утилита для создания INF-файлов, которая называется Getlnf (рис. 10.6). Найти ее можно в каталоге %DDK%\tools\geninf\x86\ в Windows XP DDK или %DDK%\tools\ в Windows 2000 DDK.
[Version]
[Manufacturer] %Mfg%=MfgSection
[MfgSection]
%MyDevice%=MyDeviceSection, SerNum [MyDeviceSection]
CopyFiles= MyDeviceCopyFilesSection AddReg=MyDeviceAddRegSection DelReg=MyDeviceDelRegSection LogConfig=MyDeviceLogConfigSection
Предыдущая << 1 .. 77 78 79 80 81 82 < 83 > 84 85 86 87 88 89 .. 166 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100