Edit

Share via


Peer Subunit Device Identifiers

The following examples of hardware identifiers and compatible identifiers are generated by Avc.sys for standard devices (that is, devices that report one or more subunits) based on the format described in AV/C Device IDs:

  • Hardware identifiers generated by Avc.sys:

AVC\Vendor&Model&SubunitType&SubunitID
This hardware identifier is the most complete, but is seldom specified in an INF file because the subunit identifier (the last ampersand-delimited portion of the device identifier (ID)) is not usually of interest.

AVC\Vendor&Model&SubunitType
This style device identifier is preferred for use in INF files, especially when there can be multiple subunits of the same SubunitType field on the device (and those subunits share the same subunit driver). This format can be used by hardware vendors or by Microsoft, depending on who provides the subunit driver.

  • Compatible identifiers generated by Avc.sys:

AVC\Vendor&SubunitType
Used for vendor-specific subunit drivers. Generally used only in Microsoft-provided INF files to load Microsoft-provided subunit drivers for a well defined class of subunits.

AVC\SubunitType
Used for AV/C subunit-specific drivers. Generally used only in Microsoft-provided INF files to load Microsoft-provided subunit drivers for a well defined class of subunits.

  • Avc.sys does not generate the following compatible identifiers:

AVC\SubunitType&SubunitID
Nothing that is identifier-specific can be done without a Vendor field.

AVC\Vendor
A vendor-specific "universal" subunit driver should include supported AVC\Vendor&<SubunitType> entries in its INF file instead of using this format.

AVC\GENERIC
A "universal" subunit driver should include supported AVC\<SubunitType> entries in its INF file instead of using this format.

The following examples of hardware identifiers and compatible identifiers are generated by Avc.sys for camcorder devices (devices with one camera subunit, one VTR subunit, and any number of other subunits):

  • Hardware identifier generated by Avc.sys:

AVC\Vendor&Model&CAMCORDER
Used in vendor-specific INF files if Msdv.sys will not be loaded.

  • Compatible identifiers generated by Avc.sys:

AVC\Vendor&CAMCORDER
Used in Msdv.inf to load Msdv.sys.

AVC\CAMCORDER
Used in Msdv.inf to load Msdv.sys.

  • Avc.sys does not generate the following compatible identifiers:

AVC\Vendor
A vendor-specific, universal subunit driver should include supported AVC\Vendor&CAMCORDER entries in its INF file.

AVC\GENERIC
A universal subunit driver should include supported AVC\CAMCORDER entries in its INF file.

Note  : On Windows Vista, Windows Server 2003, and Windows XP operating systems, a DV-specific discovery mechanism was added to Avc.sys so that any DV tape device (including camcorders) will have "&DV" appended to the hardware identifier and compatible identifiers generated by Avc.sys. This mechanism is enabled by default for all VTR subunits (where SubunitType == 4). For example, the hardware identifier AVC\Vendor&Model&CAMCORDER becomes AVC\Vendor&Model&CAMCORDER&DV if the subunit is a DV device. The mechanism can be disabled in the INF file that installs the device by specifying AvcFlags without bit three set (AvcFlags & 0x8 == 0).

The hardware identifiers and compatible identifiers generated by Avc.sys for nonstandard and noncompliant devices are only exposed if the AvcFlags registry value has bit 1 set (AvcFlags & 0x2 == 0x2). This flag must be set through the INF file for the device. The following line in the device's INF file (below in bold) can be used to expose nonstandard and noncompliant devices when installing the hardware:

[CompanyName] ;INF Models section
%Subunit.DeviceDesc%=Subunit,AVC\GENERIC

[Subunit.NT] ;INF DDInstall section
;Other installation directives
AddReg=Subunit.NT.AddReg

[Subunit.NT.AddReg]
;Other registry settings
HKR,,"AvcFlags",0x00000001,0x2 ;0x00000001 = Binary value, 0x2 = Registry key value

[Strings]
;Other strings
Subunit.DeviceDesc="Fabrikam, Inc. Subunit"

The following examples of device identifiers are generated by Avc.sys for nonstandard and noncompliant devices when bit 1 of AvcFlags is set:

  • Hardware identifier

AVC\Vendor&Model
Used in vendor-specific INF files to load drivers for nonstandard and noncompliant devices.

  • Compatible identifiers

AVC\Vendor
A vendor-specific universal unit driver includes this entry in its INF file.

AVC\GENERIC
A universal unit driver includes this entry in its INF file.

The following are examples of hardware identifiers and compatible identifiers. Note that the company "Fabrikam, Inc." uses the vendor code 0x50F2 for the Vendor field.

A Fabrikam, Inc. DV Camcorder (recall from the note above that camcorders are a special case):

  • Camcorder hardware identifier:

AVC\VEN_50F2&MOD_0&CAMCORDER&DV (can be used by Fabrikam, Inc. in an INF file to override Msdv.sys as the driver for their AV/C device).

  • Camcorder compatible identifiers:

AVC\VEN_50F2&CAMCORDER&DV (this is the style of device identifier used in Msdv.inf to load Msdv.sys)

AVC\CAMCORDER&DV

A Fabrikam, Inc. DVHS tape deck with one tuner subunit and one tape recorder/player subunit:

  • The tape recorder/player subunit's (where SubunitType = 4) device identifier would appear in the INF file as:

AVC\VEN_50F2&MOD_0&TYP_4&ID_0

  • The tape recorder/player subunit's compatible identifiers would be:

AVC\VEN_50F2&MOD_0&TYP_4

AVC\VEN_50F2&TYP_4 (used in Mstape.inf to load Mstape.sys)

AVC\TYP_4

  • The tuner subunit's (where SubunitType = 5) device identifier would appear in the INF file as:

AVC\VEN_50F2&MOD_0&TYP_5&ID_0

  • The tuner subunit's compatible identifiers would be:

AVC\VEN_50F2&MOD_0&TYP_5

AVC\VEN_50F2&TYP_5

AVC\TYP_5

Note  : Vendors should specify a hardware identifier only in the situations outlined above and never specify a compatible identifier. Also, vendors should not provide any device identifiers that match those found in INF files that were provided by Microsoft.