Export (0) Print
Expand All

MsiDriverPackages Custom Table Schema

The MsiDriverPackages custom table provides information about a driver package. A driver package is a component of the installation package. An installation package can contain one or more driver package components. Each component is uniquely defined through a row in the MsiDriverPackages custom table.

To simplify authoring an installation package, DIFxApp is provided as the DIFxApp.msm merge module, which includes an empty MsiDriverPackages custom table. When you merge DIFxApp.msm with an application database, DIFxApp.msm adds the MsiDriverPackages custom table to the application database. After you merge DIFxApp.msm with an application database, you must add one record to the MsiDriverPackages custom table for each driver package component that you add to the application database.

The following table specifies the schema of the MsiDriverPackages custom table.

ColumnTypeKeyNullableDescription

Component

S255

No

No

An identifier that represents a driver package

Flags

i4

No

No

DIFxApp configuration flags

Sequence

i4

No

Yes

Installation sequence number

 

The following descriptions correspond to the items that are listed in the first column of the previous table:

Component

An identifier which uniquely represents a driver package within the application package. A driver package is a component of the installation package, and this value is the primary key of the component that represents the driver package. The data type is a string whose length is less than or equal to 255 characters.

Flags

A bitwise OR of one or more of the following values. These statically-set values control the DIFxApp operations that are indicated in the table. A Windows Installer installation package can dynamically override these static settings at run time by setting the Windows Installer private property DriverFlags.component-name.

ValueDefinition

0

Not set (default).

1

By default, DIFxApp does not install a Plug and Play (PnP) function driver on a device if the driver that is currently installed on a device is a better match for the device than the new driver. This flag configures DIFxApp to force the installation of a new PnP function driver on a device, even if the driver that is currently installed on a device is a better match than the new driver.

2

By default, during the installation of a PnP function driver, if a device that matches the driver is not connected to the computer, DIFxApp prompts the user to connect the device to the computer. This flag configures DIFxApp so that it does not display this prompt.

4

By default, DIFxApp adds an entry to Programs and Features in Control Panel for the driver package that this component represents. This flag configures DIFxApp so that it does not create a Programs and Features entry for the component.

Note  In versions of Windows earlier than Windows Vista, DIFxApp added this entry to Add or Remove Programs in Control Panel.

8

By default, DIFxApp does not install unsigned driver packages and driver packages that have missing files. This flag configures DIFxApp to install unsigned driver packages and driver packages that have missing files. For more information about this type of installation, see Installing Unsigned Driver Packages in Legacy Mode.

16

By default, when DIFxApp uninstalls a driver package, DIFxApp does not remove the binary files that are copied to the system when it installed the driver. This flag configures DIFxApp to remove these binary files. DIFxApp removes a binary file from the system only if the binary file is identical to the corresponding binary file in the DIFx driver store. This flag should be used with caution and should be used only if the caller can verify that a binary file in the system is not required by any other driver package or application.

Note  Starting with Windows 7, this flag setting is ignored by the operating system.

 

Note  If Flags has a value greater than 31, this results in a fatal installation error. DIFxApp does not install the component and uninstalls any components in the same installation package that were installed before this component.

Sequence

An optional installation sequence number. DIFxApp installs the driver packages in an installation package in increasing sequence number order. The same sequence number can be used for more than one driver; however, the order in which packages with the same sequence number are actually installed cannot be determined. If a specific order is not required for any of the drivers, set the sequence number of the driver packages to zero.

For more information about how the MsiDriverPackages custom table is processed when a driver is installed or uninstalled, see Operation of MsiProcessDrivers.

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft