INF-файлы для устройств WIA
Важно!
Некоторые сведения, содержащиеся в этой статье, относятся к устаревшим операционным системам Windows.
Установщик класса по умолчанию для устройств с изображениями ,sti_ci.dll, распознает специальный набор записей INF-файла. В INF-файле эти записи должны быть помещены в раздел INF DDInstall устройства. Записи описаны в следующей таблице.
Запись INF-файла | Значение | Комментарии |
---|---|---|
Подкласс | StillImage | Обязательно |
DeviceType | 1 для сканеров 2 для камер 3 для потоковой передачи видео |
Обязательно |
DeviceSubType | Определенное поставщиком значение | Необязательно |
Соединение | Для устройств без Plug and Play, подключенных к последовательным или параллельным портам, это может быть последовательный или параллельный, чтобы ограничить выбор портов пользователем во время установки. | Необязательно Если не указано, пользователь может выбрать любой последовательный или параллельный порт. |
Capabilities | Указывает число, которое преобразуется в битовые флаги, определяющие возможности устройства. Эти флаги хранятся в реестре и доступны для компонентов STI с помощью структуры STI_DEV_CAPS. Бит 0 — задает или очищает STI_GENCAP_NOTIFICATIONS в STI_DEV_CAPS. Бит 1 — задает или очищает STI_GENCAP_POLLING_NEEDED в STI_DEV_CAPS. Бит 2 — задает или очищает STI_GENCAP_GENERATE_ARRIVALEVENT в STI_DEV_CAPS. Бит 3 — задает или очищает STI_GENCAP_AUTO_PORTSELECT в STI_DEV_CAPS. Бит 4 — задает или очищает STI_GENCAP_WIA в STI_DEV_CAPS. Бит 5 — задает или очищает STI_GENCAP_SUBSET в STI_DEV_CAPS. |
Необязательно Бит 5 в настоящее время не используется. Задайте для этой записи в INF-файле 0x33 для поддержки событий нажатия кнопки в сканере. |
Страницы свойств | Только для Windows 98 и Windows 2000 Идентифицирует имя и точку входа библиотеки DLL, которая создает настраиваемые страницы страниц свойств для устройств с неподвижными изображениями. Дополнительные сведения о записи PropertyPages см. в разделе Inf Files for Still Image Devices. |
Необязательно Эта запись предназначена только для драйверов STI и устарела для драйверов WIA. Сведения о страницах свойств, относящихся к разработчикам драйверов WIA, см. в примечании к PropertyPages после этой таблицы. |
DeviceData | Определяет предоставленный поставщиком раздел данных, содержащий сведения, которые будут храниться в реестре в разделе DeviceData . Для устройств, поддерживаемых TWAIN, раздел данных должен содержать запись TwainDS (см. раздел Записи реестра для драйверов WIA). | Необязательно |
События | Идентифицирует предоставленный поставщиком раздел данных, в котором по-прежнему содержится изображение событий устройства. Каждая запись в этом разделе должна иметь следующий формат: EventName="String",{GUID},App EventName — это внутреннее имя события, String — отображаемая строка события, GUID — GUID события, а App указывает приложение для создания образов, которое будет запущено при возникновении события. Чтобы запустить зарегистрированное приложение, используйте звездочку () дляприложения*. |
Обязательно |
PortSelect | Если для установки устройства не требуется страница выбора порта, значение "нет" приводит к пропуску этой страницы. Это значение также приводит к тому, что значение записи CreateFileName (см. примечание о CreateFileName и PortSelect после этой таблицы) будет автоматически задано значение AUTO. Значение Message1 приводит к отображению предоставленного системой сообщения и задает для записи CreateFileName значение AUTO. Применяется как к сканерам, так и к камерам, для которых требуется установка вручную. |
Необязательно Обратите внимание, что для Plug and Play устройств параметр PortSelect игнорируется, но для устройства по-прежнему должно быть задано значение AUTO, чтобы WIA загрузил устройство. Используйте директиву INF AddReg , чтобы добавить эту запись в раздел INF DDInstall INF-файла устройства. |
Примечание
Для взаимодействия с устройством клиент пользовательского режима (мини-диск) должен запросить у службы WIA имя файла устройства и строку, указывающую имя создаваемого или открытого объекта. (Имя файла не обязательно должно быть именем файла диска.) Отвечая на такой запрос, служба WIA получает имя файла устройства из записи реестра CreateFileName . ( Драйверыusbscan.sys и scsiscan.sys режима ядра создают эту запись, как и установщик класса.) Мини-driver получает это имя файла путем вызова метода IStiDeviceControl::GetMyDevicePortName . Затем мини-диск может использовать это имя файла при вызове функции CreateFile , чтобы открыть дескриптор устройства. Если устройство установлено вручную, установщик класса создает запись CreateFileName , задав для нее значение, которое зависит от выбора пользователем на странице выбора порта: COMX, LPTX или AUTO. Для некоторых устройств (например, сканеров сети), установленных вручную, порт не требуется. В таких случаях результирующее диалоговое окно выбора порта может сбить пользователей с толку. Чтобы предотвратить появление этого диалогового окна, добавьте следующую запись в раздел INF DDInstall INF-файла устройства.
PortSelect=NO
Примечание
Побочным эффектом этого значения записи является то, что для записи CreateFileName задано значение AUTO. Обратите внимание, что если мини-диск получает auto для имени файла, он должен самостоятельно определить, с каким устройством он должен взаимодействовать.
Примечание
Для PropertyPages драйвер WIA должен использовать другой механизм расширяемости для добавления страниц свойств. Он также должен добавить собственный GUID к записи идентификатора класса пользовательского интерфейса в INF-файлах и предоставить определенную регистрацию расширяемости пользовательского интерфейса (см. раздел Записи реестра расширений пользовательского интерфейса) для заменяемых компонентов пользовательского интерфейса, таких как общие диалоговые окна, или добавленных, таких как контекстные меню и страницы свойств. Драйвер WIA также должен предоставлять регистрацию расширяемости пользовательского интерфейса для самого компонента.
Дополнительные записи INF-файла
Записи в следующей таблице должны быть помещены в раздел, на который указывает директива INF AddReg устройства:
Запись INF-файла | Значение | Комментарии |
---|---|---|
HardwareConfig | Указывает тип подключения, используемого устройством. 1,1 — универсальное устройство WDM 1,2 − устройство SCSI 1,4 − USB-устройство 1,8 − последовательное устройство 1,16 − параллельное устройство |
Необязательно |
КЛАСС USD | Указывает GUID для мини-драйвера. | Необязательный элемент. Идентификатор GUID в записях USDClass и CLSID должен соответствовать идентификатору GUID, который используется в функции DllGetClassObject мини-драйвера. Если вы пишете microdriver, значение должно быть BB6CF8E2-1511-40bd-91BA-80D43C53064E. В противном случае необходимо создать новый GUID, используя, например, genguid.exe. |
CLSID | Указывает GUID для мини-накопителя. | Необязательный элемент. Ознакомьтесь с приведенными выше комментариями для записи USDClass . |
Установщик классов по умолчанию для устройств с неподвижными образами поддерживает стандартную директиву INF CopyFiles.
Inf-файл по умолчанию для устройств с неподвижным образом sti.inf определяет два раздела установки для каждого типа устройства следующим образом:
Раздел INF DDInstall, на который необходимо ссылаться в разделе DDInstall предоставленного поставщиком INF-файла, как показано в следующей таблице.
Тип устройства Включение Потребности IEEE 1394/SBP2 Include=sti.inf Needs=STI. SBP2Section USB Include=sti.inf Needs=STI. USBSection SCSI Include=sti.inf Needs=STI. SCSISection Серийный номер Include=sti.inf Needs=STI. SerialSection Раздел INF DDInstall Services, на который необходимо ссылаться в разделе INF DDInstall.Services предоставленного поставщиком INF-файла, как показано в следующей таблице.
Тип устройства Включение Потребности 1394/SBP2 Include=sti.inf Needs=STI. SBP2Section.Services USB Include=sti.inf Needs=STI. USBSection.Services SCSI Include=sti.inf Needs=STI. SCSISection.Services Серийный номер Include=sti.inf Needs=STI. SerialSection.Services
Дополнительные инструкции по созданию INF-файлов для устройств с неподвижными образами см. в любом INF-файле, предоставленном в Windows, который содержит запись SubClass=StillImage.
Чтобы назначить устройство WIA, INF-файл мини-накопителя должен содержать следующие значения, помещенные в раздел DeviceData INF-файла, предоставленного поставщиком.
Запись INF-файла | Значение | Комментарии |
---|---|---|
Сервер | Local | Обозначает устройство как локальное. Это необязательное действие, и если поставщик не указывает значение записи, предполагается, что устройство является локальным. То есть для свойства WIA_DIP_SERVER_NAME задано значение Local. |
MicroDriver | Имя файла .dll , предоставленное поставщиком | Для этой записи должно быть задано имя предоставленной поставщиком библиотеки DLL, реализующей микродрайвер WIA. |
БИБЛИОТЕКА DLL пользовательского интерфейса | Имя файла .dll , предоставленное поставщиком | Устарел и никогда не используется. Раньше эта запись указывала имя предоставленного поставщиком DLL-файла пользовательского интерфейса. |
Идентификатор класса пользовательского интерфейса | Предоставленный поставщиком идентификатор класса устройства | Указывает класс устройства, поддерживаемый предоставляемым поставщиком пользовательским интерфейсом. Это необязательно, и если поставщик не указывает значение записи, WIA устанавливает для свойства WIA_DIP_UI_CLSID значение GUID_NULL и используется пользовательский интерфейс WIA по умолчанию. |
ICMProfiles | Значение цветового профиля, предоставленное поставщиком | Задает значение, помещаемое в свойство WIA_IPA_ICM_PROFILE_NAME. Если значение не указано, используется стандартный профиль sRGB sRGB Color Space Profile.icm . |
Запись MicroDriver требуется только в том случае, если поставщик поставляет микроdriver WIA.
Записи пользовательского интерфейса требуются только в том случае, если поставщик предоставляет пользовательский интерфейс для устройства, создающего образы.
Комментарии
При разработке INF-файла для сканеров можно использовать дескрипторы ОС Майкрософт , чтобы включить функции идентификатора совместимости. При этом вы разрешаете один драйвер сканера быть совместимым с несколькими моделями сканера.