1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
|
;
; "Fakemodem" Controllerless driver illustrative example
;
; Copyright (c) Microsoft Corporation. All rights reserved.
;
; *******************************************************************
; * *
; * The following INF is used in order to load this sample driver. *
; * Further information about INF design can be found in the DDK *
; * *
; *******************************************************************
; ------------------------------------------------------------------------------
; Check final modem INF with CINF tool then test with
; NDIS Test prior to final distribution.
;-------------------------------------------------------------------------------
;------------------------------------------------------------------------------------------------------
;This section must specify the following entries with the indicated values:
;Signature entry as the $Windows NT$ value. This value indicates that the INF is only valid for NT-based operating systems.
;Class entry as "MODEM".
;ClassGUID entry as {4D36E96D-E325-11CE-BFC1-08002BE10318}.
;Provider is the company responsible for the provision of the INF.
;DriverVer must be in the following format = mm/dd/yyyy[,x.y.v.z]
;PnpLockdown must be 1
[Version]
Signature="$WINDOWS NT$"
Class=Modem
ClassGUID={4D36E96D-E325-11CE-BFC1-08002BE10318}
Provider=%ProviderString%
DriverVer=11/11/2002,5.1.3711.0
PnpLockdown=1
;INF files that are not distributed with the OS should contain the following line:
CatalogFile=KmdfSamples.cat
;----------------------------------------------------------------------------------------------------------------------------; Below is list of manufacturers that will appear in the
; Install New Modem wizard's list of manufacturers as well as define what sections to install ID's from
; The vendor will be required to change the provider key before a
; driver submission is made
[Manufacturer]
%ManufacturerName% = Standard,NT$ARCH$
;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;This section references the INF-writer-defined DDInstall and DDInstall.Services sections for the Modem device, and specifies the hardware identifier for the Modem device.
[Standard.NT$ARCH$]
%ModemX% = ModemX, {b85b7c50-6a01-11d2-b841-00c04fad5171}\fakemodem
;-------------------------------------------------------------------------------------------------------
; For detailed explanation of DDInstall.Services section, please reference DDK.
; Installation section references other INF sections to be installed for a specific modem.
; The AddReg line points to sections of the INF file that list registry entries to be added when
; installing this modem. For example, the line below instructs the installer to add the registry
; entries listed in the following sections of this INF file:
; [All], [MfgAddReg], [ExtraCRLFResponses], [ModemX.AddReg], [INTERNAL]
; It is not necessary to break up the registry additions into different sections in the
; INF. However, breaking out common entries into sections can help to reduce the size of
; the INF if multiple modems are installed from the same INF and have common registry
; entries.
[ModemX.NT]
CopyFiles = CopyFileSection
AddReg = All, MfgAddReg, ExtraCRLFResponses, ModemX.AddReg, INTERNAL
[ModemX.NT.Services]
AddService = fakemdm, 0x00000002, FakeModm_Service_Inst, FakeModm_Logging_Inst
[ModemX.NT.HW]
AddReg = LowerFilterAddReg
[LowerFilterAddReg]
HKR,,"LowerFilters",0x00010000,fakemdm
[FakeModm_Service_Inst]
DisplayName = %ModemX%
ServiceType = 1
StartType = 3
ErrorControl = 0
ServiceBinary = %12%\fakemodem.sys
;--------------------------------------------------------------------------------------------------------------------
; An event-log-install-section
[FakeModm_Logging_Inst]
AddReg = FakeModm_Logging_Inst_AddReg
[FakeModm_Logging_Inst_AddReg]
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\Fakemodem.sys"
HKR,,TypesSupported,0x00010001,7
[SourceDisksNames]
99=%FakeDisk%, disk1,,""
[SourceDisksFiles]
fakemodem.sys = 99
WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll=99 ; make sure the number matches with SourceDisksNames
;-------------------------------------------------------------------------------------------------------------------
; Section used to copy files required for device to function
[CopyFileSection]
fakemodem.sys
;--------------------------------------------------------------------------------------------------------------------------
; This section lists the Default location to copy the files listed in the copyfiles directive
; 12 = %Windows%\System32\Drivers
[DestinationDirs]
CopyFileSection=12
DefaultDestDir=12
ModemX_CoInstaller_CopyFiles = 11
;
;--- ModemX Coinstaller installation ------
;
[ModemX.NT.CoInstallers]
AddReg=ModemX_CoInstaller_AddReg
CopyFiles=ModemX_CoInstaller_CopyFiles
[ModemX_CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll,WdfCoInstaller"
[ModemX_CoInstaller_CopyFiles]
WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll
[ModemX.NT.Wdf]
KmdfService = fakemdm, fakemdm_wdfsect
[fakemdm_wdfsect]
KmdfLibraryVersion = $KMDFVERSION$
;-------------------------------------------------------------------------------------------------------
; DDK procalc tool can be used to check properties settings which describes modem' properties.
; Generally, customization entries are added here which override commands from the All section
[ModemX.AddReg]
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
HKR,,InactivityScale, 1, 0a,00,00,00
HKR, Settings, InactivityTimeout,, "S30=<#>"
HKR, Settings, ErrorControl_On,, "\N3"
HKR, Settings, ErrorControl_Forced,, "\N2"
HKR, Settings, Compression_On,, "%%C3"
HKR, Settings, SpeedNegotiation_Off,, "N0"
HKR, Settings, SpeedNegotiation_On,, "N1"
;--------------------------------------------------------------------------------------------------------------------------
;This section will define the type of modem and thus present the appropriate icon in the Device manager
[INTERNAL]
HKR,, DeviceType, 1, 02
;-------------------------------------------------------------------------------------------------------------------------
; Responses section contains all of the appropriate and required responses in order for the O/S to understand the
; Modem responses to system queries.
[All]
HKR,,ConfigDialog,,modemui.dll
HKR,,EnumPropPages,,"modemui.dll,EnumPropPages"
HKR,,PortSubClass,1,02
HKR,Init,1,,"AT<cr>"
HKR,Init, 2,, "AT &F E0 V1 &D2 &C1 S0=0 W2 S95=47<cr>"
[MfgAddReg]
HKR,, InactivityScale, 1, 01,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,, "ATZ<cr>"
HKR, Settings, Prefix,, "AT"
HKR, Settings, Terminator,, "<cr>"
HKR, Settings, DialPrefix,, "D"
HKR, Settings, DialSuffix,, ";"
HKR, Settings, SpeakerVolume_Low,, "L1"
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, ErrorControl_On,, "\N5"
HKR, Settings, ErrorControl_Off,, "\N0"
HKR, Settings, ErrorControl_Forced,, "\N4"
HKR, Settings, Compression_On,, "%%C1"
HKR, Settings, Compression_Off,, "%%C0"
HKR, Settings, Modulation_CCITT,, "B0 "
HKR, Settings, Modulation_Bell,, "B1 "
HKR, Settings, SpeedNegotiation_Off,, "*S0"
HKR, Settings, SpeedNegotiation_On,, "*S1"
HKR, Settings, Pulse,, "P"
HKR, Settings, Tone,, "T"
HKR, Settings, Blind_Off,, "X4"
HKR, Settings, Blind_On,, "X3"
HKR, Settings, CallSetupFailTimer,, "S7=<#>"
HKR, Responses, "<cr><lf>+FCERROR<cr><lf>", 1, 03, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>BLACKLISTED<cr><lf>", 1, 03, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>BUSY<cr><lf>", 1, 06, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>CONNECT<cr><lf>", 1, 02, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>DATA<cr><lf>", 1, 03, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>DELAYED<cr><lf>", 1, 03, 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
HKR, Responses, "<cr><lf>FAX<cr><lf>", 1, 03, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>NO ANSWER<cr><lf>", 1, 07, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>NO CARRIER<cr><lf>", 1, 04, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>NO DIALTONE<cr><lf>", 1, 05, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>NOTUSED<cr><lf>", 1, 00, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>OK<cr><lf>", 1, 00, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>RING<cr><lf>", 1, 08, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf>RINGING<cr><lf>", 1, 01, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "0<cr>", 1, 00, 00, 00,00,00,00, 00,00,00,00 ; OK
HKR, Responses, "1<cr>", 1, 02, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "10<cr>", 1, 02, 00, 60,09,00,00, 00,00,00,00
HKR, Responses, "11<cr>", 1, 02, 00, c0,12,00,00, 00,00,00,00
HKR, Responses, "12<cr>", 1, 02, 00, 80,25,00,00, 00,00,00,00
HKR, Responses, "13<cr>", 1, 02, 00, 20,1c,00,00, 00,00,00,00
HKR, Responses, "14<cr>", 1, 02, 00, e0,2e,00,00, 00,00,00,00
HKR, Responses, "15<cr>", 1, 02, 00, 40,38,00,00, 00,00,00,00 ; connect at 14400
HKR, Responses, "2<cr>", 1, 08, 00, 00,00,00,00, 00,00,00,00 ; RING
HKR, Responses, "3<cr>", 1, 04, 00, 00,00,00,00, 00,00,00,00 ; NO CARRIER
HKR, Responses, "4<cr>", 1, 03, 00, 00,00,00,00, 00,00,00,00 ; ERROR
HKR, Responses, "5<cr>", 1, 02, 00, b0,04,00,00, 00,00,00,00
HKR, Responses, "6<cr>", 1, 05, 00, 00,00,00,00, 00,00,00,00 ; NO DIALTONE
HKR, Responses, "69<cr>", 1, 01, 03, 00,00,00,00, 00,00,00,00
HKR, Responses, "7<cr>", 1, 06, 00, 00,00,00,00, 00,00,00,00 ; BUSY
HKR, Responses, "70<cr>", 1, 01, 01, 00,00,00,00, 00,00,00,00 ; Protocol:None
HKR, Responses, "77<cr>", 1, 01, 02, 00,00,00,00, 00,00,00,00 ; Protocol:LAPM
HKR, Responses, "78<cr>", 1, 01, 03, 00,00,00,00, 00,00,00,00 ; Connect V42BIS
HKR, Responses, "8<cr>", 1, 07, 00, 00,00,00,00, 00,00,00,00 ; NO ANSWER
HKR, Responses, "80<cr>", 1, 01, 02, 00,00,00,00, 00,00,00,00 ; Protocol:ALT
HKR, Responses, "81<cr>", 1, 01, 02, 00,00,00,00, 00,00,00,00
[ExtraCRLFResponses]
HKR, Responses, "<cr><lf><cr><lf>OK<cr><lf>", 1, 00, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf><cr><lf>ERROR<cr><lf>", 1, 03, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf><cr><lf>BUSY<cr><lf>", 1, 06, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf><cr><lf>NO ANSWER<cr><lf>", 1, 07, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf><cr><lf>NO CARRIER<cr><lf>", 1, 04, 00, 00,00,00,00, 00,00,00,00
HKR, Responses, "<cr><lf><cr><lf>NO DIALTONE<cr><lf>", 1, 05, 00, 00,00,00,00, 00,00,00,00
;-------------------------------------------------------------------------------------------------------
;This section defines each %strkey% token specified in the INF and lists strings that are used by the Modems
;control panel applet and the Install New Modem wizard.
; For example, ModemX will appear as "FakeModem DDK Sample controllerless driver"
[Strings]
ProviderString = "TODO-Set-Provider"
ManufacturerName = "TODO-Set-Manufacturer"
FakeDisk = "Fake Modem Install Disk"
ModemX = "FakeModem DDK Sample controllerless driver"
ServiceName = "Fakemodem"
|