Installing and Configuring Modems
PlugChapter 3, "Adding Hardware," for details on WDM drivers.When Serenum finds a modem, it calls on a modem class installer to locate the correct driver. The class installer queries the modem for its make and model then searches for a corresponding INF file in the \Windows\INF folder. Windows Server 2003 has over 350 modem-related INF scripts, each one containing configuration instructions for multiple modems, so it's rare to come across a modem that doesn't have a driver. Each INF script is paired with a PNF file, which is a precompiled version of the INF that can be read more quickly by the PnP class installer.If the class installer cannot find an INF for a modem but the modem responds correctly to a standard Hayes command set, the installer uses a generic INF, Mdmgen.inf to obtain basic functionality. Certain features in the modem may not be available using the standard settings. Also, the modem may fail to operate satisfactorily because the initialization string is improperly formatted.If you have an external PnP modem and you don't want to restart your computer to install it, open the Device Manager console (Devmgmt.msc), right-click the computer icon at the top of the tree, and select SCAN FOR HARDWARE CHANGES from the flyout menu. The modem lights should flash and the modem should appear in the device tree.If a modem does not use Plug and Play, you must install it manually. Use the Phone and Modem Options applet in the Control Panel to launch the Add New Hardware Wizard. Just in case the installation hangs, the installation is handled by Rundll32 with the help of the modem class installer, Mdminst.dll. Kill the process in Task Manager and try again.
Testing and Troubleshooting Modem Connections
If a modem does not work properly after installation, check the device properties in Device Manager to make sure you do not have a resource conflict or an improper driver. One way to open the Device Manager console is by right-clicking My Computer and selecting PROPERTIES from the flyout menu. Select the Hardware tab and click Device Manager.Figure 20.26 shows an example device tree with a problem modem as indicated by a big question mark next to the modem name. This indicates either a resource conflict of some sort or the driver could not be found.
Figure 20.26. Device Manager console showing device tree with a problem modem.

Normally, if the system is not able to locate an INF script containing a driver for the modem, the Found New Hardware Wizard launches automatically to walk you through loading the vendor's drivers. If the vendor does not supply drivers for that particular modem model, try one that is similar in speed and feature set. You can also try one of the Standard Modem selections that match the speed of the modem you are installing. Figure 20.27 shows this selection.
Figure 20.27. Found New Hardware WizardInstall New Modem window showing selection of a Standard Modem option for an unsupported modem make/model.

If the correct driver is installed, select the Resources tab for the modem in the Device Manager console. All resource settings should be dimmed for PnP modems. If you can select specific resource settings, the system has detected the modem as a legacy device. If the modem is supposed to be a PnP device, you may need to move a jumper or change the software configuration.Now look for listings in the Conflicts field. This tells you if the system was unable to distribute IRQs in a fashion that permits the modem to run without conflict with another device. External modems rarely have a conflict problem, but internal modems sometimes conflict with other serial devices.Here is list of other things to try if a modem seems to be installed correctly but still refuses to work:
- Save yourself wasted hours by checking the Hardware Compatibility List at www.microsoft.com/hcl. If your modem is not on the HCL, check to see if the vendor supplies updated Windows Server 2003, XP, or Windows 2000 drivers. If not, consider getting a more current modem. Life is short and modems aren't that expensive.
- Check CMOS to make sure the COM port is enabled.
- For internal ISA modems, make sure the ISA slot is set to recognize PnP devices. Some internal modems have dual personalities, one for ISA and one for PnP.
Table 20.1. Standard COM Port I/O Base and IRQ Settings
COM Port
I/O Base
IRQ
COM1
3F8
4
COM2
2F8
3
COM3
3E8
4
COM4
2E8
3 - You can sometimes resolve erratic performance by making a change to the initialization string ("init string") for the modem. Check the vendor's knowledgebase for possible changes in the settings. Select the Advanced tab then make entries in Extra Initialization Commands. Settings entered here override the same setting in the INF script.
- For external modems, check to make sure the associated COM port is enabled and uses a standard I/O Base address and IRQ. Older laptops are notorious for having non-standard configurations. Table 20.1 shows the standard COM port configurations.
- If you are installing an external modem, you can verify that is connected to a functional serial port by opening a command session and entering atdt > com#: . Look for lights on the modem to flicker. If they do not, the serial cable may have the wrong pinouts. Table 20.2 shows the correct pinouts.
- For PC Card modems, verify that the card does not require legacy card and socket drivers. These are not supported by Windows Server 2003. Only APM and ACPI compatible PC Cards are likely to work correctly, if at all.
- Check the Microsoft Knowledgebase for known issues with the modem.
- Winmodems do their processing using the computer's CPU. These modems can be clumsy to configure and require special attention because of the resources they consume. Winmodems should never be used in a remote access server.
- Some modems come as part of a multifunction card such as a PC Card combo Ethernet/modem or a combo adapter for MIDI/modem. The card itself may be plug-and-play compatible, but the laptop may use a flavor of APM or PnP BIOS or an older version of ACPI so that the modem component is not recognized. You may need to configure resources manually.
- If none of this does the trick, see "Troubleshooting Using Modem Logs" for additional diagnostic aids.
Even if the modem seems to work, your job may not be finished. Many seemingly unrelated problems can arise when using an incompatible modem. If a system becomes erratic soon after installing a new modem, expect the worst. NDIS treats a serial device like a network connection, and this often exposes design inadequacies.
Suggested Lab Setup for Dial-In Testing
You may (and probably will) encounter problems that are due to server configuration rather than modem configuration. You may want to build a small test bed to use for configuring remote access servers. You will need a way to connect modems together. You cannot simply connect a piece of standard straight-through telephone cable between the two units. Modems require ringback and other special signaling from a phone switch.
Signal | Remote | Local |
---|---|---|
Transmit Data (TD) | 3 | 2 |
Receive Data (RD) | 2 | 3 |
Request to Send (RTS) | 7 | 8 |
Clear to Send | 8 | 7 |
Data Set Ready and Carrier Detect (DSR and CD) | 6, 1 | 4 |
Signal Ground | 5 | 5 |
Data Terminal Ready (DTR) | 4 | 6, 1 |
Signal | 25-pin | 9-pin |
---|---|---|
Transmit Data (TD) | 2 | 2 |
Receive Data (RD) | 3 | 3 |
Request to Send (RTS) | 4 | 9 |
Clear to Send | 5 | 7 |
Data Set Ready and Carrier Detect (DSR and CD) | 6, 8 | 4 |
Signal Ground | 7 | 5 |
Data Terminal Ready (DTR) | 20 | 6, 1 |
- Open the Phone and Modem Options applet in the Control Panel.
- Select the Modems tab.
- Click Add. The Add Hardware Wizard starts and opens the Install New Modem window.
- Select Don't Detect My Modem and click Next.
- The system pauses for a while to build a list of modems then displays the list.
- Under Manufacturer, select Standard Modem Types and under Models, select Communication Cable Between Two Computers.
- Click Next. The Install New Modem window now prompts you to select a port.
- Select the COM port used by the modem then click Next.
- A summary window opens. Click Finish to close the wizard.
At this point, you can use the cable connection for a dial-up connection just as if it were a modem by walking through the New Connection Wizard in Network Connections.
Monitoring Dial-Up Sessions Using Protocol Tracing
Remote Access has an extensive tracing capability that permits monitoring any or all of the protocols involved in WAN communications. The trace must be configured manually in the Registry in HKLM | Software | Microsoft | Tracing.The key contains a long list of traceable protocols. You can enable tracing on as many protocols as you wish. Each protocol has two tracing possibilities, Log tracing and Console tracing, but only the Log Tracing option actually works. Console Tracing is no longer supported.The logs are saved under \Windows\Tracing using a file name that corresponds to the item name in the Registry. Here is a list of the traceable protocols and what their acronyms mean:
- BAP.
Bandwidth Allocation Protocol. - CONFMSP.
NetMeeting media service provider. - CONFTSP.
NetMeeting TAPI service provider. - EAPOL.
EAP-over-LANan 802.11b protocol. - H323MSP.
Internet conferencing protocol H.323 media services provider. - IASHLPR.
Internet Authentication Services helper. - IASRAD.
IAS Radius interface. - IASRECST.
IAS Record Storage. - IASSAM.
IAS Security Account Manager interface. - IGMPv2.
Internet Group Membership Protocol version 2. - IPBOOTTP.
IP Bootstrap Transfer Protocol, also used for DHCP. - IPRIP2.
IP Routing Information Protocol, release 2. - IPRouterManager.
IP component of the RAS multiprotocol router. - IPXAutonet.
IPX frame detection. - IPX Traffic Filter Logging.
IPX traffic filter log. - IPXCP.
PPP control protocol for IPX. - IPXRIP.
IPX Routing Information Protocol. - IPXRouterManager.
IPX component of the RAS multiprotocol router. - IPXSAP.
IPX Service Advertising Protocol. - IPXWAN.
IPX Wide Area Network control component. - KMDDSP.
Kernel-mode mapper, one of the two main TAPI service providers. (The other is NDPTSP.) - NAPMMC .
The IAS snap-in. - NDPTSP.
NDIS Proxy TAPI Service Provider, one of the two main TAPI service providers (the other is KMDDSP). - NTAUTH.
NT LanMan Challenge-Response user authentication. - OSPF.
Open Shortest Path First. - OSPFMIB.
OSPF Management Information Block information used for SNMP (Simple Network Management Protocol). - PPP.
Point-to-Point Protocol. - RASADHLP.
RAS Automatic Dialer helper. - RASAPI32.
RAS 32-bit Application Programming Interface. - RASAUTO.
RAS Automatic Dialer service trace. - RASBACP.
Bandwidth Allocation Control Protocol. - RASCHAP.
RAS Challenge Handshake Authentication Protocol. - RASCPL.
RAS Control Panel applet tracenot applicable to Windows Server 2003. - RASDLG.
RAS helper DLL trace. - RASEAP.
Extensible Authentication Protocol for RAS. - RASIPCP.
Internet Protocol Control Protocol. - RASIPHLP.
RAS Internet Protocol helper DLL trace. - RASMAN.
RAS Management service, Rasadmin.exe. - RASMON.
RAS Monitor service. - RASNBFCP.
NetBIOS Frame Control Protocol. - RASPAP.
RAS Password Authentication Protocol authentication service. - RASPHONE.
RAS Phonebook service. - RASSCRIPT.
RAS script service. - RASSPAP.
RAS Shiva Password Authentication Protocol. - RASTAPI.
RAS Telephony API driver. - RASTLS.
RAS Transport Layer Security, used for monitoring smart card, RADIUS, and MD5-CHAP. - RASTLSUI.
RAS TLS User Interface. - RASUSER.
The main RAS GUI module. - RCAMSP.
Streaming video media services provider. - Router.
Traces activity of the multiprotocol router service. - RTM.
Response Time Monitor, used in SNA. - TermMgr.
Terminal services manager. - Various TAPI drivers.
The TAPI3 and TAPI32 are the client-side interfaces to the main TAPISRV module. - WaveMsp.
Wave audio media services provider.
You can view the contents of a log by double-clicking on the log file to launch Notepad. This does not block updates to the file, but you must close and reopen Notepad to view any changes. Also, the captured data is flushed to the file infrequently to improve performance, so the file sizes displayed for the log files may be smaller than the actual file size. If you refresh Explorer, the file size will update.
Troubleshooting Using Modem Logs
When a modem goes into trauma, the fix can be frustrating because of the difficulty in figuring out the exact nature of the problem. I've often thought that veterinarians would make great data communications technicians because they are good at diagnosing patients who cannot talk.Windows Server 2003 has two places to get information about a modem: the Modem Detection log, ModemDet.txt, and the Modem log, ModemLog_<modem-name >.txt.
ModemDet.txt
The ModemDet.txt log records the interrogations (AT commands) sent to the modem by the class installer when the modem is installed. The log is only written during plug-and-play detection. Here is an example listing for an external non-PnP modem:
A modem was found on COM1:
ATI0<cr> = <cr><lf>3362
ATI0<cr> = <cr><lf>3362
ATI1<cr> = <cr><lf>221C
ATI1<cr> = <cr><lf>
ATI2<cr> = <cr><lf>OK
ATI2<cr> = <cr><lf>OK
ATI3<cr> = <cr><lf>Sportster 33600/Fax V2.31
ATI3<cr> = <cr><lf>Sportster33600/Fax
ATI4<cr> = <cr><lf>USRobotics Sportster 33600 Fax Settings...
ATI4<cr> = <cr><lf>USRoboticsSportster33600FaxSettings
ATI5<cr> = <cr><lf>USRobotics Sportster 33600 Fax NVRAM Settings...
ATI5<cr> = <cr><lf>USRoboticsSportster33600FaxNVRAMSettings
ATI6<cr> = <cr><lf>USRobotics Sportster 33600 Fax Link Diagnostics...
ATI6<cr> = <cr><lf>USRoboticsSportster33600FaxLinkDiagnostics
ATI7<cr> = <cr><lf>Configuration Profile...
ATI7<cr> = <cr><lf>ConfigurationProfile
ATI8<cr> = <cr><lf>OK
ATI8<cr> = <cr><lf>OK
ATI9<cr> = <cr><lf>(1.0USR0003\\Modem\PNPC107\Sportster 33.6 FAX EXT)FF
ATI9<cr> = <cr><lf>(USR\\Modem\PNPC\Sportster33.6FAXEXT)
ATI10<cr> = <cr><lf>ERROR
ATI10<cr> = <cr><lf>ERROR
AT%V<cr> = <cr><lf>ERROR
AT%V<cr> = <cr><lf>ERROR
Modem ID = UNIMODEM7ABE8C8F.
A modem was not found on COM2.
The responses to these queries tell the class installer what to look for in the INF files. When the installer finds the right file, it assigns a Unimodem ID number to the device. This identifies it in the Registry. In the preceding listing, UNIMODEM7ABE8C8F is the identifier.
ModemLog Files
The Diagnostics tab