Using Tools to Obtain Modem ID Strings from Modems

Tools and procedures for obtaining all the different types and forms of modem ID strings are given in this section. Using these tools and procedures get you the modem ID string values you can put in your INF file. Which of the values you actually put into your INF file depends on the strategy you adopt for using modem ID strings in your modem INF file (for more information, see General Strategies for Using Modem ID Strings .).

Obtaining and Using Unimodem ID Strings

A Unimodem ID, also known as a legacy ID, is generated by interrogating the modem with standard modem ATI commands and is commonly found in all modem types. You want to obtain the unimodem ID from your modem and put it into your INF file to insure that any real-mode drivers your modem requires are installed.

Unimodem ID strings can be obtained in either of two ways:

An example Unimodem ID string is


   UNIMODEM8CF33BE4 

Obtaining and Using Serenum PNP Hardware IDs

A Serenum PNP ID can be obtained from a Plug and Play modem which comes in either of two forms: an external modem that plugs into a serial port or an internal modem on an ISA bus card. Note that if a modem comes only on an ISA card, you will obtain an ISAPNP ID from it, and not a Serenum PNP (see Obtaining and Using ISAPNP Hardware and Compatible IDs).

To determine the ID string to use in an INF file for this type of modem device:

1. Physically install the modem and then start (or restart) the machine.

2. Typically a dialogue will appear noting that an unknown PNP device has been installed. Attempt to install a Windows default modem device. This will cause the ID string to be put into the registry.

3. Use the Registry Editor (Regedit) to locate the PNP ID. When you decide where you want to place the Unimodem ID string in your INF file, then you can copy the string from the Regedit display and paste it into your INF file.

To locate the ID once enumeration has run, use RegEdit to open the path HKEY_LOCAL_MACHINE\Enum\Serenum. Immediately below that point is the device ID. An example Serenum PNP Hardware ID is


   SERENUM\PPI1907

Obtaining and Using ISAPNP Hardware and Compatible IDs

An ISAPNP ID is generated by an ISA PNP modem. ISA PNP modems are found exclusively on adapters that plug into the ISA bus, and are never found as RS232 external devices.

To determine the ID string to use in an INF file for an ISA PNP modem:

1. Physically install the modem and then start (or restart) the machine.

2. Typically a dialogue will appear noting that an unknown PNP device has been installed. Attempt to install a Windows default modem device. This will cause the ID string to be put into the registry.

3. Use the Registry Editor (Regedit) to locate the PNP ID. When you decide where you want to place the Unimodem ID string in your INF file, then you can copy the string from the Regedit display and paste it into your INF file.

To locate the ID once enumeration has run, use RegEdit to open the path HKEY_LOCAL_MACHINE\Enum\ISAPNP. After you open the ISAPNP key, you will see a key with an ISAPNP-like name (the key is named SSC0001_DEV0002 in the Regedit screen display below).

Next, open the key below that (in the Regedit screen display above that key is named 0000004C). On the right-hand side of the screen the modems PNP HardwareID will be displayed. If you can obtain a PNP CompatibleID from the modem, it will be displayed also. Not all modem vendors are providing CompatibleIDs from their modems, but they are encouraged to do so. By providing CompatibleIDs as well as HardwareIDs, vendors have more flexibility in the way they write their INF files and the modem installation process may be more reliable.

In the example RegEdit screen above, the displayed HardwareID string is


SSC0002,ISAPNP\SSC0001_DEV0002

This string contains both forms of ISAPNP IDs, the long ID and the short ID separated from each other by a comma. The short ID is


   SSC0002 

The long ID is


   ISAPNP\SSC0001_DEV0002

The short ID, when present, comes from a logical tag on the EEPROM of the card, whereas the long ID comes from the first four bytes of the card plus a device ordinal if the card has more than one device. The long ID is more likely to be unique than the short ID, but does not allow easy use of it as a compatible ID.

The rule is to use the short ID in your INF file if it is unique or the same driver works on all devices that use that ID. Use the long ID when the same ID is used for two different devices.

Obtaining and Using PCMCIA Hardware IDs

A PCMCIA modem hardware ID can be obtained by inserting a PCMCIA modem into a Windows 95 machine, which causes the PCMCIA hardware ID to be read from the PC card's tuples into the registry. Then you can use the Registry Editor (Regedit) to read the PCMCIA hardware ID from the registry.

To obtain the ID:

1. Insert the modem PC card.

2. Typically the modem will not be recognized by name if the ID is not present in any INF.

3. Install it using a default driver or any other PCMCIA manufacturer modem device.

To locate the ID string in the registry, use RegEdit to open the path HKEY_LOCAL_MACHINE\Enum\PCMCIA. Immediately below that point is the hardware ID that was read from the card's tuples. Following is an example PCMCIA modem ID:


   PCMCIA\ATI__-14.4_MODEM/FAX_-D904

Note the prefix "PCMCIA\" which always precedes the actual ID in an INF. The dash and underscore characters must be entered into the INF exactly as they are found in the registry.