A listing of the [All], [MfgAddReg], [Modem1.AddReg], and [Modem2.AddReg] sections from SMPDATA.INF, are shown in the following. To adapt these sections to your own modem models, you must determine the capabilities of your modem from the modem documentation and use the MDK documentation REG.DOC to determine which items in these AddReg-type sections to add, delete, or modify.
[All]
HKR,,FriendlyDriver,,Unimodem.vxd
HKR,,DevLoader,,*vcomm
HKR,,Enumerator,,serwave.vxd
HKR,,ConfigDialog,,modemui.dll
HKR,,EnumPropPages,,"modemui.dll,EnumPropPages"
HKR,,PortSubClass,1,02
HKR, Init, 1,, "AT<cr>"
HKR, Responses, "<cr><lf>OK<cr><lf>", 1, 00, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>ERROR<cr><lf>", 1, 03, 00, 00,00,00,00, 00,00,00,00
.
.
.
[Modem1.AddReg]
; More registry entries
HKR,, Properties, 1, 80,01,00,00, ff,00,00,00, ff,00,00,00, 07,00,00,00, 0f,00,00,00, f7,03,00,00, 00,c2,01,00, 40,38,00,00
[Modem2.AddReg]
; More registry entries
HKR,, Properties, 1, 80,01,00,00, ff,00,00,00, ff,00,00,00, 07,00,00,00, 0f,00,00,00, f7,03,00,00, 00,c2,01,00, 80,70,00,00
[MfgAddReg]
; More registry entries
HKR, Init, 2,, "AT &F E0 V1 &D2 &C1 W2 S95=47<cr>"
HKR,, InactivityScale, 1, 0a,00,00,00
HKR, Monitor, 1,, "ATS0=0<cr>"
HKR, Monitor, 2,, "None"
HKR, Hangup, 1,, "ATH<cr>"
HKR, Answer, 1,, "ATA<cr>"
HKR,, Reset,, "AT&F<cr>"
HKR, Settings, Prefix,, "AT"
.
.
.
HKR, Settings, InactivityTimeout,, "S30=<#>"
.
.
.
HKR, Responses, "<cr><lf>CARRIER 28800/VFC<cr><lf>", 1, 01, 00, 80,70,00,00, 00,00,00,00
When you look at the AddReg-type sections in existing modem INF files, the content can look confusing but AddReg sections do have a common form. An example AddReg section for a particular modem is:
[Modem1.AddReg]
HKR,,DeviceType, 1, 02 ; Internal
HKR,,PortSubClass,1,02
HKR,,PortDriver,,serial.vxd
HKR,,Contention,,*vcd
HKR,, Properties, 1, c0,01,00,00, ff,00,00,00, ff,00,00,00, 07,00,00,00, 0f,00,00,00, f7,03,00,00, 00,e1,00,00, 40,38,00,00
HKR,, FClass, 1, "07,00,00,00"
In order to fully interpret every detail of this section's contents, you will have to refer to REG.DOC, the modem registry reference documentation. It is usually in this type of modem model-specific AddReg section that customization for specific modem models is accomplished, as well as fine tuning and debugging.
The general format of a registry line is:
HKR, <Path>, <Key>, <Format>, <Value> [<Value> ... ]
"HKR" specifies that the key is to be added to the modem's software registry key at installation time. <Path> specifies a sub-path within the modem's software key. <Key> specifies the name of the key to be created. <Format> specifies the format of the data value(s). "0" or null specifies a string, and "1" means a binary value, specified as a hex string. Note that DWORD values specified in modem INF files are in byte-reversed and word-reversed format. <Value>is a value assigned to the key. Note that multiple values can be assigned to a key.
The [All] section is another AddReg section, which appears in all modem INF files. See the modem registry documentation for details about these keys.
[All]
HKR,,FriendlyDriver,,Unimodem.VXD
HKR,,DevLoader,,*vcomm
HKR,,ConfigDialog,,modemui.dll
HKR, Responses, "<cr><lf>OK<cr><lf>", 1, 00, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>ERROR<cr><lf>", 1, 03, 00, 00,00,00,00, 00,00,00,00
Use the [MfgAddReg] section to add registry keys common to all modems for a manufacturer. This section is the "baseline" set of commands and responses which all of a particular manufacturer's modem models use (all of the modem models installed by the INF file, anyway). Any of these commands or responses can be "overwritten" and changed by subsequent modification of a modem-specific AddReg section as needed. For subsequent modems added to the INF, you should search this section before adding a key to the modem- specific AddReg section. This avoids duplication of registry keys common to all modems by the manufacturer. For this reason, it is wise to make this section reflect the maufacturer's modem model that has the most possible command/response strings, or at least the most "feature rich" command set and response set. The [MfgAddReg] section from SAMPLE1.INF is shown in the following:
[MfgAddReg]
HKR,, InactivityFormat,, "seconds"
HKR, Init, 1,, "AT<cr>"
HKR, Init, 2,, "AT &F E0 V1 &D2 &C1 W1<cr>"
HKR, Monitor, 1,, "ATS0=0<cr>"
HKR, Monitor 2,, "None"
HKR, Hangup, 1,, "ATH<cr>"
HKR, Answer, 1,, "ATA<cr>"
HKR,, Reset,, "AT&F<cr>"
HKR, Settings, Prefix,, "AT"
HKR, Settings, Terminator,, "<cr>"
HKR, Settings, DialPrefix,, "D"
HKR, Settings, DialSuffix,, ";"
HKR, Monitor, 1,, "ATS0=0<cr>"
HKR, Monitor, 2,, "None"
HKR, Settings, SpeakerVolume_Low,, "L0"
HKR, Settings, SpeakerVolume_Med,, "L2"
HKR, Settings, SpeakerVolume_High,, "L3"
HKR, Settings, SpeakerMode_Off,, "M0"
HKR, Settings, SpeakerMode_Dial,, "M1"
HKR, Settings, SpeakerMode_On,, "M2"
HKR, Settings, SpeakerMode_Setup,, "M3"
HKR, Settings, FlowControl_Off,, "&K0"
HKR, Settings, FlowControl_Hard,, "&K3"
HKR, Settings, FlowControl_Soft,, "&K4"
HKR, Settings, Modulation_CCITT,, "B0 B15"
HKR, Settings, Modulation_Bell,, "B1 B16"
HKR, Settings, SpeedNegotiation_Off,, "N0"
HKR, Settings, SpeedNegotiation_On,, "N1"
HKR, Settings, Pulse,, "P"
HKR, Settings, Tone,, "T"
HKR, Settings, Blind_Off,, "X4"
HKR, Settings, Blind_On,, "X3"
HKR, Settings, CallSetupFailTimer,, "S7=<#>"
HKR, Settings, InactivityTimeout,, "S30=<#>"
; Next is the response section which can be either numeric or verbose
HKR, Responses, "0<cr>", 1, 00, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "1<cr>", 1, 02, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "2<cr>", 1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "3<cr>", 1, 04, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "4<cr>", 1, 03, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "5<cr>", 1, 02, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "6<cr>", 1, 05, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "7<cr>", 1, 06, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "8<cr>", 1, 07, 00, 00,00,00,00, 00,00,00,00
; usually additional responses should be added here, consider cutting and pasting
; responses from other Windows 95 INFs at this point as a shortcut