Программирование драйверов Windows



Проверка синтаксиса INF файла


Отладка inf-файлов не является простой задачей. В состав DDK входит утилита CHKINF, служащая для проверки правильности синтаксиса и организации inf-файлов, и ее можно найти в подкаталоге Tools каталога DDK. Она опирается на интерпретатор Perl, который доступен для загрузки с интернет-сайта perl.com. Вывод результатов выполняется в форме HTML файла. Хотя нельзя не признать определенные достоинства этой утилиты, тем не менее, как указывают многие источники, она выдает ошибки при проверке вполне нормальных inf-файлов.

Установив ActivePerl интерпретатор, загруженный с сайта activestate.com, и запустив его командой из директории пакета DDK \tools\chkinf

chkinf.bat path\Example.inf /b

где path &#8212 это путь к проверяемому inf-файлу, ключ /b обеспечивает автозапуск IE (Internet Explorer) для просмотра результатов, получаем результаты проверки в окне IE, см. рисунок 12.5.

Текстовый вариант до исправления некоторых погрешностей выглядел следующим образом:

Summary of "k:\Ex\Example.inf" Total Errors: 2 Total Warnings: 6 ________________________________________________________________

Errors: Line 5: (E22.1.1081) Directive: CatalogFile required (and must not be blank) in section [Version] for WHQL digital signature. Line 11: (E22.1.1310) Class ExampleDrvClass (ClassGUID {DC16BE99-C06B-4801-A144-43A98BB99052}) is unrecognized.
________________________________________________________________

Warnings: Line 0: (W22.1.2212) No Copyright information found. Line 34: (W22.1.2023) Use a string token, and put localizable text in the [Strings] section. Line 45: (W22.1.2208) NT-specific section(s) found. Ignoring general section. Line 45: (W22.1.2083) Section [EXAMPLE.INSTALL] not referenced Line 49: (W22.1.2083) Section [EXAMPLE.ADDREG] not referenced Line 53: (W22.1.2083) Section [EXAMPLE.FILES.DRIVER] not referenced

Первая ошибка (E22.1.1081) обусловлена тем, что отсутствует .cat файл, где содержится подписанный Microsoft инсталляционный пакет.

Вторая ошибка (E22.1.1310) обусловлена тем, что утилита CHKINF




Содержание  Назад  Вперед