Table of contents
TOC
Collapse the table of content
Expand the table of content

INF Files for WIA Devices

Last Updated: 8/19/2016

The default class installer for still image devices, sti_ci.dll, recognizes a special set of INF file entries. Within an INF file, these entries must be placed within a device's INF DDInstall Section. The entries are described in the following table.

INF File EntryValueComments

SubClass

StillImage

Required

DeviceType

1 for scanners

2 for cameras

3 for streaming video

Required

DeviceSubType

Vendor-defined value

Optional

Connection

For non-Plug and Play devices connected to serial or parallel ports, this can be Serial or Parallel to limit the user's choice of ports during installation.

Optional

If not specified, the user can select any serial or parallel port.

Capabilities

Specifies a number that is converted to bit flags identifying device capabilities. These flags are stored in the registry and are available to STI components by means of the STI_DEV_CAPS structure.

Bit 0 − Sets/clears STI_GENCAP_NOTIFICATIONS in STI_DEV_CAPS.

Bit 1 − Sets/clears STI_GENCAP_POLLING_NEEDED in STI_DEV_CAPS.

Bit 2 − Sets/clears STI_GENCAP_GENERATE_ARRIVALEVENT in STI_DEV_CAPS.

Bit 3 − Sets/clears STI_GENCAP_AUTO_PORTSELECT in STI_DEV_CAPS.

Bit 4 − Sets/clears STI_GENCAP_WIA in STI_DEV_CAPS.

Bit 5 − Sets/clears STI_GENCAP_SUBSET in STI_DEV_CAPS.

Optional

Bit 5 is currently not used.

Set this entry in your INF file to 0x33 to support push-button events with your scanner.

PropertyPages

For Windows 98 and Windows 2000 only

Identifies the name and entry point of a DLL that creates customized property sheet pages for still image devices.

For more information about the PropertyPages entry, see INF Files for Still Image Devices.

Optional

This entry is for use only by STI drivers, and is obsolete for WIA drivers.

For information about property pages relevant to WIA driver developers, see the Note on PropertyPages following this table.

DeviceData

Identifies a vendor-supplied data section containing information to be stored in the registry, under the DeviceData key. For TWAIN-supported devices, the data section must contain a TwainDS entry (see Registry Entries for WIA Drivers).

Optional

Events

Identifies a vendor-supplied data section listing still image device events. Each entry in this section must have the following format:

EventName="String",{GUID},App

EventName is the event's internal name, String is the event's display string, GUID is the event's GUID, and App specifies the imaging application to be launched when the event occurs. To launch the currently registered application, use an asterisk (*) for App.

Required

PortSelect

If the device installation does not require a port selection page, a value of "no" causes that page to be skipped. This value also causes the CreateFileName entry value (see the Note on CreateFileName and PortSelect following this table) to be automatically set to AUTO.

A value of Message1 causes a system-supplied message to be displayed, and sets the CreateFileName entry value to AUTO.

Applies to both scanners and cameras that require manual installation.

Optional

Note that for Plug and Play devices, PortSelect is ignored, but the device still must have the CreateFileName entry value set to AUTO in order for WIA to load the device. Use the INF AddReg Directive to add this entry to the INF DDInstall Section of the device's INF file.

Note In order to communicate with a device, a user-mode client (a minidriver) must ask the WIA service for the device's file name and a string that specifies the name of the object to create or open. (The file name does not have to be the name of a disk file.) Responding to such a query, the WIA service obtains the device's file name from the CreateFileName registry entry. (The usbscan.sys and scsiscan.sys kernel-mode drivers create this entry, as does the class installer.) The minidriver receives this file name by calling the IStiDeviceControl::GetMyDevicePortName method. The minidriver can then use this file name when it calls the CreateFile function (described in the Microsoft Windows SDK documentation) to open a handle to the device. If the device is installed manually, the class installer creates the CreateFileName entry, setting its value to one that depends on the user's selection on the port selection page: COMX, LPTX, or AUTO. Some devices (network scanners, for example) that are installed manually do not require a port. In such cases, the resulting port selection dialog can confuse users. You can prevent this dialog from appearing by adding the following entry in the INF DDInstall Section of your device's INF file:

     PortSelect=NO

Note A side effect of this entry value is that the CreateFileName entry is set to AUTO. Be advised that if the minidriver receives AUTO for the file name, it must be able to determine on its own which device it should communicate with.

Note For PropertyPages, A WIA driver must use a different extensibility mechanism in order to add property pages. It must also add its own GUID to the UI Class ID entry in its INF files, and must provide specific UI extensibility registration (see User Interface Extension Registry Entries) for the UI components being replaced, such as common dialogs, or added, such as context menus and property pages. A WIA driver must also provide UI extensibility registration for the component itself.

Additional INF File Entries

The entries in the following table must be placed within the section pointed to by the device's INF AddReg Directive:

INF File EntryValueComments

HardwareConfig

Indicates the type of connection the device is using.

1,1 − generic WDM device

1,2 − SCSI device

1,4 − USB device

1,8 − serial device

1,16 − parallel device

Optional

USDClass

Indicates the GUID for the minidriver.

Optional.

The GUID in the USDClass and CLSID entries must match the GUID that is used in the DllGetClassObject function (described in the Windows SDK documentation) of the minidriver. If you are writing a microdriver, the value should be BB6CF8E2-1511-40bd-91BA-80D43C53064E. Otherwise, you must generate a new GUID, using, for example, genguid.exe.

CLSID

Indicates the GUID for the minidriver.

Optional.

See the immediately preceding comments for the USDClass entry.

The default class installer for still image devices supports the standard INF CopyFiles Directive.

The default INF file for still image devices, sti.inf, defines two installation sections for each device type, as follows:

  • An INF DDInstall Section, which must be referenced within the DDInstall section of the vendor-supplied INF file, as shown in the following table.

    Device TypeIncludeNeeds

    IEEE 1394/SBP2

    Include=sti.inf

    Needs=STI.SBP2Section

    USB

    Include=sti.inf

    Needs=STI.USBSection

    SCSI

    Include=sti.inf

    Needs=STI.SCSISection

    Serial

    Include=sti.inf

    Needs=STI.SerialSection

  • An INF DDInstall Services section, which must be referenced within the INF DDInstall.Services Section of the vendor-supplied INF file, as shown in the following table.

    Device TypeIncludeNeeds

    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

    Serial

    Include=sti.inf

    Needs=STI.SerialSection.Services

For additional guidance in creating INF files for still image devices, you can look at any INF file provided with Windows 2000 and later that contains the entry SubClass=StillImage.

To designate the device as a WIA device, the minidriver INF file must contain the following values placed within the DeviceData section of the vendor-supplied INF file.

INF File EntryValueComments

Server

Local

Designates the device as a local device. This is optional for Windows XP and later. If a vendor does not specify an entry value, the device is assumed to be local. That is, the WIA_DIP_SERVER_NAME property is set to Local.

MicroDriver

Vendor-supplied .dll file name

This entry should be set to the name of the vendor-supplied DLL that implements the WIA microdriver.

UI DLL

Vendor-supplied .dll file name

Obsolete and never used. Formerly, this entry indicated the name of the vendor-supplied user interface DLL file.

UI Class ID

Vendor-supplied device class identifier

Indicates the device class the vendor-supplied user interface is capable of supporting. This is optional for Windows XP and later. If a vendor does not specify an entry value, WIA sets the WIA_DIP_UI_CLSID property to GUID_NULL and the default WIA UI is used.

ICMProfiles

Vendor-supplied color profile value

Specifies a value to put in the WIA_IPA_ICM_PROFILE_NAME property (described in the Windows SDK documentation). If no value is specified, the standard sRGB profile sRGB Color Space Profile.icm is used.

The MicroDriver entry is required only if the vendor supplies a WIA microdriver.

The user interface (UI) entries are required only if the vendor supplies a custom user interface for the imaging device.

Remarks

When you're developing an INF file for scanners, you can use Microsoft OS descriptors to enable compatibility ID functionality. When you do this, you allow one scanner driver to be compatible with multiple scanner models.


Send comments about this topic to Microsoft

© 2016 Microsoft