1 /*
2  * ndistapi.h
3  *
4  * NDIS Telephony API
5  *
6  * This file is part of the w32api package.
7  *
8  * Contributors:
9  *   Created by Casper S. Hornstrup <[email protected]>
10  *
11  * THIS SOFTWARE IS NOT COPYRIGHTED
12  *
13  * This source code is offered for use in the public domain. You may
14  * use, modify or distribute it freely.
15  *
16  * This code is distributed in the hope that it will be useful but
17  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18  * DISCLAIMED. This includes but is not limited to warranties of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20  *
21  */
22 
23 #pragma once
24 
25 #ifndef _NDIS_TAPI_
26 #define _NDIS_TAPI_
27 
28 #include "ndis.h"
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 #ifndef NDIS_TAPI_CURRENT_VERSION
35 #define NDIS_TAPI_CURRENT_VERSION         0x00010003
36 #endif
37 
38 typedef ULONG_PTR HTAPI_LINE;
39 typedef ULONG_PTR HDRV_LINE;
40 typedef ULONG_PTR HTAPI_CALL;
41 typedef ULONG_PTR HDRV_CALL;
42 
43 #define NDIS_STATUS_TAPI_ADDRESSBLOCKED               ((NDIS_STATUS)0xC0012000L)
44 #define NDIS_STATUS_TAPI_BEARERMODEUNAVAIL            ((NDIS_STATUS)0xC0012001L)
45 #define NDIS_STATUS_TAPI_CALLUNAVAIL                  ((NDIS_STATUS)0xC0012002L)
46 #define NDIS_STATUS_TAPI_DIALBILLING                  ((NDIS_STATUS)0xC0012003L)
47 #define NDIS_STATUS_TAPI_DIALDIALTONE                 ((NDIS_STATUS)0xC0012004L)
48 #define NDIS_STATUS_TAPI_DIALPROMPT                   ((NDIS_STATUS)0xC0012005L)
49 #define NDIS_STATUS_TAPI_DIALQUIET                    ((NDIS_STATUS)0xC0012006L)
50 #define NDIS_STATUS_TAPI_INCOMPATIBLEEXTVERSION       ((NDIS_STATUS)0xC0012007L)
51 #define NDIS_STATUS_TAPI_INUSE                        ((NDIS_STATUS)0xC0012008L)
52 #define NDIS_STATUS_TAPI_INVALADDRESS                 ((NDIS_STATUS)0xC0012009L)
53 #define NDIS_STATUS_TAPI_INVALADDRESSID               ((NDIS_STATUS)0xC001200AL)
54 #define NDIS_STATUS_TAPI_INVALADDRESSMODE             ((NDIS_STATUS)0xC001200BL)
55 #define NDIS_STATUS_TAPI_INVALBEARERMODE              ((NDIS_STATUS)0xC001200CL)
56 #define NDIS_STATUS_TAPI_INVALCALLHANDLE              ((NDIS_STATUS)0xC001200DL)
57 #define NDIS_STATUS_TAPI_INVALCALLPARAMS              ((NDIS_STATUS)0xC001200EL)
58 #define NDIS_STATUS_TAPI_INVALCALLSTATE               ((NDIS_STATUS)0xC001200FL)
59 #define NDIS_STATUS_TAPI_INVALDEVICECLASS             ((NDIS_STATUS)0xC0012010L)
60 #define NDIS_STATUS_TAPI_INVALLINEHANDLE              ((NDIS_STATUS)0xC0012011L)
61 #define NDIS_STATUS_TAPI_INVALLINESTATE               ((NDIS_STATUS)0xC0012012L)
62 #define NDIS_STATUS_TAPI_INVALMEDIAMODE               ((NDIS_STATUS)0xC0012013L)
63 #define NDIS_STATUS_TAPI_INVALRATE                    ((NDIS_STATUS)0xC0012014L)
64 #define NDIS_STATUS_TAPI_NODRIVER                     ((NDIS_STATUS)0xC0012015L)
65 #define NDIS_STATUS_TAPI_OPERATIONUNAVAIL             ((NDIS_STATUS)0xC0012016L)
66 #define NDIS_STATUS_TAPI_RATEUNAVAIL                  ((NDIS_STATUS)0xC0012017L)
67 #define NDIS_STATUS_TAPI_RESOURCEUNAVAIL              ((NDIS_STATUS)0xC0012018L)
68 #define NDIS_STATUS_TAPI_STRUCTURETOOSMALL            ((NDIS_STATUS)0xC0012019L)
69 #define NDIS_STATUS_TAPI_USERUSERINFOTOOBIG           ((NDIS_STATUS)0xC001201AL)
70 #define NDIS_STATUS_TAPI_ALLOCATED                    ((NDIS_STATUS)0xC001201BL)
71 #define NDIS_STATUS_TAPI_INVALADDRESSSTATE            ((NDIS_STATUS)0xC001201CL)
72 #define NDIS_STATUS_TAPI_INVALPARAM                   ((NDIS_STATUS)0xC001201DL)
73 #define NDIS_STATUS_TAPI_NODEVICE                     ((NDIS_STATUS)0xC001201EL)
74 #define NDIS_STATUS_TAPI_DISCONNECTMODE_NORMAL        ((NDIS_STATUS)0xC0012020L)
75 #define NDIS_STATUS_TAPI_DISCONNECTMODE_UNKNOWN       ((NDIS_STATUS)0xC0012021L)
76 #define NDIS_STATUS_TAPI_DISCONNECTMODE_REJECT        ((NDIS_STATUS)0xC0012022L)
77 #define NDIS_STATUS_TAPI_DISCONNECTMODE_PICKUP        ((NDIS_STATUS)0xC0012023L)
78 #define NDIS_STATUS_TAPI_DISCONNECTMODE_FORWARDED     ((NDIS_STATUS)0xC0012024L)
79 #define NDIS_STATUS_TAPI_DISCONNECTMODE_BUSY          ((NDIS_STATUS)0xC0012025L)
80 #define NDIS_STATUS_TAPI_DISCONNECTMODE_NOANSWER      ((NDIS_STATUS)0xC0012026L)
81 #define NDIS_STATUS_TAPI_DISCONNECTMODE_BADADDRESS    ((NDIS_STATUS)0xC0012027L)
82 #define NDIS_STATUS_TAPI_DISCONNECTMODE_UNREACHABLE   ((NDIS_STATUS)0xC0012028L)
83 #define NDIS_STATUS_TAPI_DISCONNECTMODE_CONGESTION    ((NDIS_STATUS)0xC0012029L)
84 #define NDIS_STATUS_TAPI_DISCONNECTMODE_INCOMPATIBLE  ((NDIS_STATUS)0xC001202AL)
85 #define NDIS_STATUS_TAPI_DISCONNECTMODE_UNAVAIL       ((NDIS_STATUS)0xC001202BL)
86 #define NDIS_STATUS_TAPI_RECV_DIGIT                   ((NDIS_STATUS)0x40010020L)
87 
88 #define LINE_ADDRESSSTATE                 0L
89 #define LINE_CALLINFO                     1L
90 #define LINE_CALLSTATE                    2L
91 #define LINE_CLOSE                        3L
92 #define LINE_DEVSPECIFIC                  4L
93 #define LINE_DEVSPECIFICFEATURE           5L
94 #define LINE_GATHERDIGITS                 6L
95 #define LINE_GENERATE                     7L
96 #define LINE_LINEDEVSTATE                 8L
97 #define LINE_MONITORDIGITS                9L
98 #define LINE_MONITORMEDIA                 10L
99 #define LINE_MONITORTONE                  11L
100 #define LINE_REPLY                        12L
101 #define LINE_REQUEST                      13L
102 #define LINE_CREATE                       19L
103 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
104 #define LINE_AGENTSPECIFIC                21L
105 #define LINE_AGENTSTATUS                  22L
106 #define LINE_APPNEWCALL                   23L
107 #define LINE_PROXYREQUEST                 24L
108 #define LINE_REMOVE                       25L
109 #endif
110 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020002)
111 #define LINE_AGENTSESSIONSTATUS           27L
112 #define LINE_QUEUESTATUS                  28L
113 #define LINE_AGENTSTATUSEX                29L
114 #define LINE_GROUPSTATUS                  30L
115 #define LINE_PROXYSTATUS                  31L
116 #endif
117 #if (TAPI_CURRENT_VERSION >= 0x00030000)
118 #define LINE_APPNEWCALLHUB                32L
119 #define LINE_CALLHUBCLOSE                 33L
120 #define LINE_DEVSPECIFICEX                34L
121 #endif
122 
123 #define TSPI_MESSAGE_BASE                 500L
124 #define LINE_NEWCALL                      TSPI_MESSAGE_BASE
125 #define LINE_CALLDEVSPECIFIC              (TSPI_MESSAGE_BASE + 1L)
126 #define STRINGFORMAT_ASCII                0x00000001
127 #define STRINGFORMAT_DBCS                 0x00000002
128 #define STRINGFORMAT_UNICODE              0x00000003
129 #define STRINGFORMAT_BINARY               0x00000004
130 
131 #define LINEADDRCAPFLAGS_FWDNUMRINGS      0x00000001
132 #define LINEADDRCAPFLAGS_PICKUPGROUPID    0x00000002
133 #define LINEADDRCAPFLAGS_SECURE           0x00000004
134 #define LINEADDRCAPFLAGS_BLOCKIDDEFAULT   0x00000008
135 #define LINEADDRCAPFLAGS_BLOCKIDOVERRIDE  0x00000010
136 #define LINEADDRCAPFLAGS_DIALED           0x00000020
137 #define LINEADDRCAPFLAGS_ORIGOFFHOOK      0x00000040
138 #define LINEADDRCAPFLAGS_DESTOFFHOOK      0x00000080
139 #define LINEADDRCAPFLAGS_FWDCONSULT       0x00000100
140 #define LINEADDRCAPFLAGS_SETUPCONFNULL    0x00000200
141 #define LINEADDRCAPFLAGS_AUTORECONNECT    0x00000400
142 #define LINEADDRCAPFLAGS_COMPLETIONID     0x00000800
143 #define LINEADDRCAPFLAGS_TRANSFERHELD     0x00001000
144 #define LINEADDRCAPFLAGS_TRANSFERMAKE     0x00002000
145 #define LINEADDRCAPFLAGS_CONFERENCEHELD   0x00004000
146 #define LINEADDRCAPFLAGS_CONFERENCEMAKE   0x00008000
147 #define LINEADDRCAPFLAGS_PARTIALDIAL      0x00010000
148 #define LINEADDRCAPFLAGS_FWDSTATUSVALID   0x00020000
149 #define LINEADDRCAPFLAGS_FWDINTEXTADDR    0x00040000
150 #define LINEADDRCAPFLAGS_FWDBUSYNAADDR    0x00080000
151 #define LINEADDRCAPFLAGS_ACCEPTTOALERT    0x00100000
152 #define LINEADDRCAPFLAGS_CONFDROP         0x00200000
153 #define LINEADDRCAPFLAGS_PICKUPCALLWAIT   0x00400000
154 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
155 #define LINEADDRCAPFLAGS_PREDICTIVEDIALER 0x00800000
156 #define LINEADDRCAPFLAGS_QUEUE            0x01000000
157 #define LINEADDRCAPFLAGS_ROUTEPOINT       0x02000000
158 #define LINEADDRCAPFLAGS_HOLDMAKESNEW     0x04000000
159 #define LINEADDRCAPFLAGS_NOINTERNALCALLS  0x08000000
160 #define LINEADDRCAPFLAGS_NOEXTERNALCALLS  0x10000000
161 #define LINEADDRCAPFLAGS_SETCALLINGID     0x20000000
162 #endif
163 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
164 #define LINEADDRCAPFLAGS_ACDGROUP         0x40000000
165 #define LINEADDRCAPFLAGS_NOPSTNADDRESSTRANSLATION \
166                                           0x80000000
167 #endif
168 
169 #define LINEADDRESSMODE_ADDRESSID         0x00000001
170 #define LINEADDRESSMODE_DIALABLEADDR      0x00000002
171 #define LINEADDRESSSHARING_PRIVATE        0x00000001
172 #define LINEADDRESSSHARING_BRIDGEDEXCL    0x00000002
173 #define LINEADDRESSSHARING_BRIDGEDNEW     0x00000004
174 #define LINEADDRESSSHARING_BRIDGEDSHARED  0x00000008
175 #define LINEADDRESSSHARING_MONITORED      0x00000010
176 #define LINEADDRESSSTATE_OTHER            0x00000001
177 #define LINEADDRESSSTATE_DEVSPECIFIC      0x00000002
178 #define LINEADDRESSSTATE_INUSEZERO        0x00000004
179 #define LINEADDRESSSTATE_INUSEONE         0x00000008
180 #define LINEADDRESSSTATE_INUSEMANY        0x00000010
181 #define LINEADDRESSSTATE_NUMCALLS         0x00000020
182 #define LINEADDRESSSTATE_FORWARD          0x00000040
183 #define LINEADDRESSSTATE_TERMINALS        0x00000080
184 
185 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
186 #define LINEADDRESSTYPE_PHONENUMBER       0x00000001
187 #define LINEADDRESSTYPE_SDP               0x00000002
188 #define LINEADDRESSTYPE_EMAILNAME         0x00000004
189 #define LINEADDRESSTYPE_DOMAINNAME        0x00000008
190 #define LINEADDRESSTYPE_IPADDRESS         0x00000010
191 #endif
192 
193 #define LINEADDRFEATURE_FORWARD           0x00000001
194 #define LINEADDRFEATURE_MAKECALL          0x00000002
195 #define LINEADDRFEATURE_PICKUP            0x00000004
196 #define LINEADDRFEATURE_SETMEDIACONTROL   0x00000008
197 #define LINEADDRFEATURE_SETTERMINAL       0x00000010
198 #define LINEADDRFEATURE_SETUPCONF         0x00000020
199 #define LINEADDRFEATURE_UNCOMPLETECALL    0x00000040
200 #define LINEADDRFEATURE_UNPARK            0x00000080
201 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
202 #define LINEADDRFEATURE_PICKUPHELD        0x00000100
203 #define LINEADDRFEATURE_PICKUPGROUP       0x00000200
204 #define LINEADDRFEATURE_PICKUPDIRECT      0x00000400
205 #define LINEADDRFEATURE_PICKUPWAITING     0x00000800
206 #define LINEADDRFEATURE_FORWARDFWD        0x00001000
207 #define LINEADDRFEATURE_FORWARDDND        0x00002000
208 #endif
209 
210 #define LINEANSWERMODE_NONE               0x00000001
211 #define LINEANSWERMODE_DROP               0x00000002
212 #define LINEANSWERMODE_HOLD               0x00000004
213 
214 #define LINEBEARERMODE_VOICE              0x00000001
215 #define LINEBEARERMODE_SPEECH             0x00000002
216 #define LINEBEARERMODE_MULTIUSE           0x00000004
217 #define LINEBEARERMODE_DATA               0x00000008
218 #define LINEBEARERMODE_ALTSPEECHDATA      0x00000010
219 #define LINEBEARERMODE_NONCALLSIGNALING   0x00000020
220 #define LINEBEARERMODE_PASSTHROUGH        0x00000040
221 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
222 #define LINEBEARERMODE_RESTRICTEDDATA     0x00000080
223 #endif
224 
225 #define LINEBUSYMODE_STATION              0x00000001
226 #define LINEBUSYMODE_TRUNK                0x00000002
227 #define LINEBUSYMODE_UNKNOWN              0x00000004
228 #define LINEBUSYMODE_UNAVAIL              0x00000008
229 
230 #define LINECALLCOMPLCOND_BUSY            0x00000001
231 #define LINECALLCOMPLCOND_NOANSWER        0x00000002
232 
233 #define LINECALLCOMPLMODE_CAMPON          0x00000001
234 #define LINECALLCOMPLMODE_CALLBACK        0x00000002
235 #define LINECALLCOMPLMODE_INTRUDE         0x00000004
236 #define LINECALLCOMPLMODE_MESSAGE         0x00000008
237 
238 #define LINECALLFEATURE_ACCEPT            0x00000001
239 #define LINECALLFEATURE_ADDTOCONF         0x00000002
240 #define LINECALLFEATURE_ANSWER            0x00000004
241 #define LINECALLFEATURE_BLINDTRANSFER     0x00000008
242 #define LINECALLFEATURE_COMPLETECALL      0x00000010
243 #define LINECALLFEATURE_COMPLETETRANSF    0x00000020
244 #define LINECALLFEATURE_DIAL              0x00000040
245 #define LINECALLFEATURE_DROP              0x00000080
246 #define LINECALLFEATURE_GATHERDIGITS      0x00000100
247 #define LINECALLFEATURE_GENERATEDIGITS    0x00000200
248 #define LINECALLFEATURE_GENERATETONE      0x00000400
249 #define LINECALLFEATURE_HOLD              0x00000800
250 #define LINECALLFEATURE_MONITORDIGITS     0x00001000
251 #define LINECALLFEATURE_MONITORMEDIA      0x00002000
252 #define LINECALLFEATURE_MONITORTONES      0x00004000
253 #define LINECALLFEATURE_PARK              0x00008000
254 #define LINECALLFEATURE_PREPAREADDCONF    0x00010000
255 #define LINECALLFEATURE_REDIRECT          0x00020000
256 #define LINECALLFEATURE_REMOVEFROMCONF    0x00040000
257 #define LINECALLFEATURE_SECURECALL        0x00080000
258 #define LINECALLFEATURE_SENDUSERUSER      0x00100000
259 #define LINECALLFEATURE_SETCALLPARAMS     0x00200000
260 #define LINECALLFEATURE_SETMEDIACONTROL   0x00400000
261 #define LINECALLFEATURE_SETTERMINAL       0x00800000
262 #define LINECALLFEATURE_SETUPCONF         0x01000000
263 #define LINECALLFEATURE_SETUPTRANSFER     0x02000000
264 #define LINECALLFEATURE_SWAPHOLD          0x04000000
265 #define LINECALLFEATURE_UNHOLD            0x08000000
266 #define LINECALLFEATURE_RELEASEUSERUSERINFO \
267                                           0x10000000
268 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
269 #define LINECALLFEATURE_SETTREATMENT      0x20000000
270 #define LINECALLFEATURE_SETQOS            0x40000000
271 #define LINECALLFEATURE_SETCALLDATA       0x80000000
272 #endif
273 
274 #define LINECALLINFOSTATE_OTHER           0x00000001
275 #define LINECALLINFOSTATE_DEVSPECIFIC     0x00000002
276 #define LINECALLINFOSTATE_BEARERMODE      0x00000004
277 #define LINECALLINFOSTATE_RATE            0x00000008
278 #define LINECALLINFOSTATE_MEDIAMODE       0x00000010
279 #define LINECALLINFOSTATE_APPSPECIFIC     0x00000020
280 #define LINECALLINFOSTATE_CALLID          0x00000040
281 #define LINECALLINFOSTATE_RELATEDCALLID   0x00000080
282 #define LINECALLINFOSTATE_ORIGIN          0x00000100
283 #define LINECALLINFOSTATE_REASON          0x00000200
284 #define LINECALLINFOSTATE_COMPLETIONID    0x00000400
285 #define LINECALLINFOSTATE_NUMOWNERINCR    0x00000800
286 #define LINECALLINFOSTATE_NUMOWNERDECR    0x00001000
287 #define LINECALLINFOSTATE_NUMMONITORS     0x00002000
288 #define LINECALLINFOSTATE_TRUNK           0x00004000
289 #define LINECALLINFOSTATE_CALLERID        0x00008000
290 #define LINECALLINFOSTATE_CALLEDID        0x00010000
291 #define LINECALLINFOSTATE_CONNECTEDID     0x00020000
292 #define LINECALLINFOSTATE_REDIRECTIONID   0x00040000
293 #define LINECALLINFOSTATE_REDIRECTINGID   0x00080000
294 #define LINECALLINFOSTATE_DISPLAY         0x00100000
295 #define LINECALLINFOSTATE_USERUSERINFO    0x00200000
296 #define LINECALLINFOSTATE_HIGHLEVELCOMP   0x00400000
297 #define LINECALLINFOSTATE_LOWLEVELCOMP    0x00800000
298 #define LINECALLINFOSTATE_CHARGINGINFO    0x01000000
299 #define LINECALLINFOSTATE_TERMINAL        0x02000000
300 #define LINECALLINFOSTATE_DIALPARAMS      0x04000000
301 #define LINECALLINFOSTATE_MONITORMODES    0x08000000
302 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
303 #define LINECALLINFOSTATE_TREATMENT       0x10000000
304 #define LINECALLINFOSTATE_QOS             0x20000000
305 #define LINECALLINFOSTATE_CALLDATA        0x40000000
306 #endif
307 
308 #define LINECALLORIGIN_OUTBOUND           0x00000001
309 #define LINECALLORIGIN_INTERNAL           0x00000002
310 #define LINECALLORIGIN_EXTERNAL           0x00000004
311 #define LINECALLORIGIN_UNKNOWN            0x00000010
312 #define LINECALLORIGIN_UNAVAIL            0x00000020
313 #define LINECALLORIGIN_CONFERENCE         0x00000040
314 #define LINECALLORIGIN_INBOUND            0x00000080
315 
316 #define LINECALLPARAMFLAGS_SECURE         0x00000001
317 #define LINECALLPARAMFLAGS_IDLE           0x00000002
318 #define LINECALLPARAMFLAGS_BLOCKID        0x00000004
319 #define LINECALLPARAMFLAGS_ORIGOFFHOOK    0x00000008
320 #define LINECALLPARAMFLAGS_DESTOFFHOOK    0x00000010
321 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
322 #define LINECALLPARAMFLAGS_NOHOLDCONFERENCE \
323                                           0x00000020
324 #define LINECALLPARAMFLAGS_PREDICTIVEDIAL 0x00000040
325 #define LINECALLPARAMFLAGS_ONESTEPTRANSFER \
326                                           0x00000080
327 #endif
328 
329 #define LINECALLPARTYID_BLOCKED           0x00000001
330 #define LINECALLPARTYID_OUTOFAREA         0x00000002
331 #define LINECALLPARTYID_NAME              0x00000004
332 #define LINECALLPARTYID_ADDRESS           0x00000008
333 #define LINECALLPARTYID_PARTIAL           0x00000010
334 #define LINECALLPARTYID_UNKNOWN           0x00000020
335 #define LINECALLPARTYID_UNAVAIL           0x00000040
336 
337 #define LINECALLPRIVILEGE_NONE            0x00000001
338 #define LINECALLPRIVILEGE_MONITOR         0x00000002
339 #define LINECALLPRIVILEGE_OWNER           0x00000004
340 
341 #define LINECALLREASON_DIRECT             0x00000001
342 #define LINECALLREASON_FWDBUSY            0x00000002
343 #define LINECALLREASON_FWDNOANSWER        0x00000004
344 #define LINECALLREASON_FWDUNCOND          0x00000008
345 #define LINECALLREASON_PICKUP             0x00000010
346 #define LINECALLREASON_UNPARK             0x00000020
347 #define LINECALLREASON_REDIRECT           0x00000040
348 #define LINECALLREASON_CALLCOMPLETION     0x00000080
349 #define LINECALLREASON_TRANSFER           0x00000100
350 #define LINECALLREASON_REMINDER           0x00000200
351 #define LINECALLREASON_UNKNOWN            0x00000400
352 #define LINECALLREASON_UNAVAIL            0x00000800
353 #define LINECALLREASON_INTRUDE            0x00001000
354 #define LINECALLREASON_PARKED             0x00002000
355 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
356 #define LINECALLREASON_CAMPEDON           0x00004000
357 #define LINECALLREASON_ROUTEREQUEST       0x00008000
358 #endif
359 
360 #define LINECALLSELECT_LINE               0x00000001
361 #define LINECALLSELECT_ADDRESS            0x00000002
362 #define LINECALLSELECT_CALL               0x00000004
363 #if (NDIS_TAPI_CURRENT_VERSION > 0x00020000)
364 #define LINECALLSELECT_DEVICEID           0x00000008
365 #endif
366 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
367 #define LINECALLSELECT_CALLID             0x00000010
368 #endif
369 
370 #define LINECALLSTATE_IDLE                0x00000001
371 #define LINECALLSTATE_OFFERING            0x00000002
372 #define LINECALLSTATE_ACCEPTED            0x00000004
373 #define LINECALLSTATE_DIALTONE            0x00000008
374 #define LINECALLSTATE_DIALING             0x00000010
375 #define LINECALLSTATE_RINGBACK            0x00000020
376 #define LINECALLSTATE_BUSY                0x00000040
377 #define LINECALLSTATE_SPECIALINFO         0x00000080
378 #define LINECALLSTATE_CONNECTED           0x00000100
379 #define LINECALLSTATE_PROCEEDING          0x00000200
380 #define LINECALLSTATE_ONHOLD              0x00000400
381 #define LINECALLSTATE_CONFERENCED         0x00000800
382 #define LINECALLSTATE_ONHOLDPENDCONF      0x00001000
383 #define LINECALLSTATE_ONHOLDPENDTRANSFER  0x00002000
384 #define LINECALLSTATE_DISCONNECTED        0x00004000
385 #define LINECALLSTATE_UNKNOWN             0x00008000
386 
387 #define LINEDEVCAPFLAGS_CROSSADDRCONF     0x00000001
388 #define LINEDEVCAPFLAGS_HIGHLEVCOMP       0x00000002
389 #define LINEDEVCAPFLAGS_LOWLEVCOMP        0x00000004
390 #define LINEDEVCAPFLAGS_MEDIACONTROL      0x00000008
391 #define LINEDEVCAPFLAGS_MULTIPLEADDR      0x00000010
392 #define LINEDEVCAPFLAGS_CLOSEDROP         0x00000020
393 #define LINEDEVCAPFLAGS_DIALBILLING       0x00000040
394 #define LINEDEVCAPFLAGS_DIALQUIET         0x00000080
395 #define LINEDEVCAPFLAGS_DIALDIALTONE      0x00000100
396 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
397 #define LINEDEVCAPFLAGS_MSP               0x00000200
398 #define LINEDEVCAPFLAGS_CALLHUB           0x00000400
399 #define LINEDEVCAPFLAGS_CALLHUBTRACKING   0x00000800
400 #define LINEDEVCAPFLAGS_PRIVATEOBJECTS    0x00001000
401 #endif
402 
403 #define LINEDEVSTATE_OTHER      0x00000001
404 #define LINEDEVSTATE_RINGING              0x00000002
405 #define LINEDEVSTATE_CONNECTED            0x00000004
406 #define LINEDEVSTATE_DISCONNECTED         0x00000008
407 #define LINEDEVSTATE_MSGWAITON            0x00000010
408 #define LINEDEVSTATE_MSGWAITOFF           0x00000020
409 #define LINEDEVSTATE_INSERVICE            0x00000040
410 #define LINEDEVSTATE_OUTOFSERVICE         0x00000080
411 #define LINEDEVSTATE_MAINTENANCE          0x00000100
412 #define LINEDEVSTATE_OPEN                 0x00000200
413 #define LINEDEVSTATE_CLOSE                0x00000400
414 #define LINEDEVSTATE_NUMCALLS             0x00000800
415 #define LINEDEVSTATE_NUMCOMPLETIONS       0x00001000
416 #define LINEDEVSTATE_TERMINALS            0x00002000
417 #define LINEDEVSTATE_ROAMMODE             0x00004000
418 #define LINEDEVSTATE_BATTERY              0x00008000
419 #define LINEDEVSTATE_SIGNAL               0x00010000
420 #define LINEDEVSTATE_DEVSPECIFIC          0x00020000
421 #define LINEDEVSTATE_REINIT               0x00040000
422 #define LINEDEVSTATE_LOCK                 0x00080000
423 
424 #define LINEDEVSTATUSFLAGS_CONNECTED      0x00000001
425 #define LINEDEVSTATUSFLAGS_MSGWAIT        0x00000002
426 #define LINEDEVSTATUSFLAGS_INSERVICE      0x00000004
427 #define LINEDEVSTATUSFLAGS_LOCKED         0x00000008
428 
429 #define LINEDIALTONEMODE_NORMAL           0x00000001
430 #define LINEDIALTONEMODE_SPECIAL          0x00000002
431 #define LINEDIALTONEMODE_INTERNAL         0x00000004
432 #define LINEDIALTONEMODE_EXTERNAL         0x00000008
433 #define LINEDIALTONEMODE_UNKNOWN          0x00000010
434 #define LINEDIALTONEMODE_UNAVAIL          0x00000020
435 
436 #define LINEDIGITMODE_PULSE               0x00000001
437 #define LINEDIGITMODE_DTMF                0x00000002
438 #define LINEDIGITMODE_DTMFEND             0x00000004
439 
440 #define LINEDISCONNECTMODE_NORMAL         0x00000001
441 #define LINEDISCONNECTMODE_UNKNOWN        0x00000002
442 #define LINEDISCONNECTMODE_REJECT         0x00000004
443 #define LINEDISCONNECTMODE_PICKUP         0x00000008
444 #define LINEDISCONNECTMODE_FORWARDED      0x00000010
445 #define LINEDISCONNECTMODE_BUSY           0x00000020
446 #define LINEDISCONNECTMODE_NOANSWER       0x00000040
447 #define LINEDISCONNECTMODE_BADADDRESS     0x00000080
448 #define LINEDISCONNECTMODE_UNREACHABLE    0x00000100
449 #define LINEDISCONNECTMODE_CONGESTION     0x00000200
450 #define LINEDISCONNECTMODE_INCOMPATIBLE   0x00000400
451 #define LINEDISCONNECTMODE_UNAVAIL        0x00000800
452 #define LINEDISCONNECTMODE_NODIALTONE     0x00001000
453 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
454 #define LINEDISCONNECTMODE_NUMBERCHANGED  0x00002000
455 #define LINEDISCONNECTMODE_OUTOFORDER     0x00004000
456 #define LINEDISCONNECTMODE_TEMPFAILURE    0x00008000
457 #define LINEDISCONNECTMODE_QOSUNAVAIL     0x00010000
458 #define LINEDISCONNECTMODE_BLOCKED        0x00020000
459 #define LINEDISCONNECTMODE_DONOTDISTURB   0x00040000
460 #define LINEDISCONNECTMODE_CANCELLED      0x00080000
461 #endif
462 
463 #define LINEFEATURE_DEVSPECIFIC           0x00000001
464 #define LINEFEATURE_DEVSPECIFICFEAT       0x00000002
465 #define LINEFEATURE_FORWARD               0x00000004
466 #define LINEFEATURE_MAKECALL              0x00000008
467 #define LINEFEATURE_SETMEDIACONTROL       0x00000010
468 #define LINEFEATURE_SETTERMINAL           0x00000020
469 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
470 #define LINEFEATURE_SETDEVSTATUS          0x00000040
471 #define LINEFEATURE_FORWARDFWD            0x00000080
472 #define LINEFEATURE_FORWARDDND            0x00000100
473 #endif
474 
475 #define LINEFORWARDMODE_UNCOND            0x00000001
476 #define LINEFORWARDMODE_UNCONDINTERNAL    0x00000002
477 #define LINEFORWARDMODE_UNCONDEXTERNAL    0x00000004
478 #define LINEFORWARDMODE_UNCONDSPECIFIC    0x00000008
479 #define LINEFORWARDMODE_BUSY              0x00000010
480 #define LINEFORWARDMODE_BUSYINTERNAL      0x00000020
481 #define LINEFORWARDMODE_BUSYEXTERNAL      0x00000040
482 #define LINEFORWARDMODE_BUSYSPECIFIC      0x00000080
483 #define LINEFORWARDMODE_NOANSW            0x00000100
484 #define LINEFORWARDMODE_NOANSWINTERNAL    0x00000200
485 #define LINEFORWARDMODE_NOANSWEXTERNAL    0x00000400
486 #define LINEFORWARDMODE_NOANSWSPECIFIC    0x00000800
487 #define LINEFORWARDMODE_BUSYNA            0x00001000
488 #define LINEFORWARDMODE_BUSYNAINTERNAL    0x00002000
489 #define LINEFORWARDMODE_BUSYNAEXTERNAL    0x00004000
490 #define LINEFORWARDMODE_BUSYNASPECIFIC    0x00008000
491 
492 #define LINEGATHERTERM_BUFFERFULL         0x00000001
493 #define LINEGATHERTERM_TERMDIGIT          0x00000002
494 #define LINEGATHERTERM_FIRSTTIMEOUT       0x00000004
495 #define LINEGATHERTERM_INTERTIMEOUT       0x00000008
496 #define LINEGATHERTERM_CANCEL             0x00000010
497 
498 #define LINEGENERATETERM_DONE             0x00000001
499 #define LINEGENERATETERM_CANCEL           0x00000002
500 
501 #define LINEMEDIACONTROL_NONE             0x00000001
502 #define LINEMEDIACONTROL_START            0x00000002
503 #define LINEMEDIACONTROL_RESET            0x00000004
504 #define LINEMEDIACONTROL_PAUSE            0x00000008
505 #define LINEMEDIACONTROL_RESUME           0x00000010
506 #define LINEMEDIACONTROL_RATEUP           0x00000020
507 #define LINEMEDIACONTROL_RATEDOWN         0x00000040
508 #define LINEMEDIACONTROL_RATENORMAL       0x00000080
509 #define LINEMEDIACONTROL_VOLUMEUP         0x00000100
510 #define LINEMEDIACONTROL_VOLUMEDOWN       0x00000200
511 #define LINEMEDIACONTROL_VOLUMENORMAL     0x00000400
512 
513 #define LINEMEDIAMODE_UNKNOWN             0x00000002
514 #define LINEMEDIAMODE_INTERACTIVEVOICE    0x00000004
515 #define LINEMEDIAMODE_AUTOMATEDVOICE      0x00000008
516 #define LINEMEDIAMODE_DATAMODEM           0x00000010
517 #define LINEMEDIAMODE_G3FAX               0x00000020
518 #define LINEMEDIAMODE_TDD                 0x00000040
519 #define LINEMEDIAMODE_G4FAX               0x00000080
520 #define LINEMEDIAMODE_DIGITALDATA         0x00000100
521 #define LINEMEDIAMODE_TELETEX             0x00000200
522 #define LINEMEDIAMODE_VIDEOTEX            0x00000400
523 #define LINEMEDIAMODE_TELEX               0x00000800
524 #define LINEMEDIAMODE_MIXED               0x00001000
525 #define LINEMEDIAMODE_ADSI                0x00002000
526 
527 #define LINEMEDIAMODE_VOICEVIEW           0x00004000
528 #define LAST_LINEMEDIAMODE                0x00004000
529 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020001)
530 #define LINEMEDIAMODE_VIDEO               0x00008000
531 #define LAST_LINEMEDIAMODE                0x00008000
532 #endif
533 
534 #define LINEPARKMODE_DIRECTED             0x00000001
535 #define LINEPARKMODE_NONDIRECTED          0x00000002
536 
537 #define LINEREMOVEFROMCONF_NONE           0x00000001
538 #define LINEREMOVEFROMCONF_LAST           0x00000002
539 #define LINEREMOVEFROMCONF_ANY            0x00000003
540 
541 #define LINEREQUESTMODE_MAKECALL          0x00000001
542 #define LINEREQUESTMODE_MEDIACALL         0x00000002
543 #define LINEREQUESTMODE_DROP              0x00000004
544 
545 #define LAST_LINEREQUESTMODE              LINEREQUESTMODE_MEDIACALL
546 
547 #define LINEROAMMODE_UNKNOWN              0x00000001
548 #define LINEROAMMODE_UNAVAIL              0x00000002
549 #define LINEROAMMODE_HOME                 0x00000004
550 #define LINEROAMMODE_ROAMA                0x00000008
551 #define LINEROAMMODE_ROAMB                0x00000010
552 
553 #define LINESPECIALINFO_NOCIRCUIT         0x00000001
554 #define LINESPECIALINFO_CUSTIRREG         0x00000002
555 #define LINESPECIALINFO_REORDER           0x00000004
556 #define LINESPECIALINFO_UNKNOWN           0x00000008
557 #define LINESPECIALINFO_UNAVAIL           0x00000010
558 
559 #define LINETERMDEV_PHONE                 0x00000001
560 #define LINETERMDEV_HEADSET               0x00000002
561 #define LINETERMDEV_SPEAKER               0x00000004
562 
563 #define LINETERMMODE_BUTTONS              0x00000001
564 #define LINETERMMODE_LAMPS                0x00000002
565 #define LINETERMMODE_DISPLAY              0x00000004
566 #define LINETERMMODE_RINGER               0x00000008
567 #define LINETERMMODE_HOOKSWITCH           0x00000010
568 #define LINETERMMODE_MEDIATOLINE          0x00000020
569 #define LINETERMMODE_MEDIAFROMLINE        0x00000040
570 #define LINETERMMODE_MEDIABIDIRECT        0x00000080
571 
572 #define LINETERMSHARING_PRIVATE           0x00000001
573 #define LINETERMSHARING_SHAREDEXCL        0x00000002
574 #define LINETERMSHARING_SHAREDCONF        0x00000004
575 
576 #define LINETONEMODE_CUSTOM               0x00000001
577 #define LINETONEMODE_RINGBACK             0x00000002
578 #define LINETONEMODE_BUSY                 0x00000004
579 #define LINETONEMODE_BEEP                 0x00000008
580 #define LINETONEMODE_BILLING              0x00000010
581 
582 #define LINETRANSFERMODE_TRANSFER         0x00000001
583 #define LINETRANSFERMODE_CONFERENCE       0x00000002
584 
585 #define LINETOLLLISTOPTION_ADD            0x00000001
586 #define LINETOLLLISTOPTION_REMOVE         0x00000002
587 
588 #define LINETRANSLATEOPTION_CARDOVERRIDE  0x00000001
589 
590 #define LINETRANSLATERESULT_CANONICAL     0x00000001
591 #define LINETRANSLATERESULT_INTERNATIONAL 0x00000002
592 #define LINETRANSLATERESULT_LONGDISTANCE  0x00000004
593 #define LINETRANSLATERESULT_LOCAL         0x00000008
594 #define LINETRANSLATERESULT_INTOLLLIST    0x00000010
595 #define LINETRANSLATERESULT_NOTINTOLLLIST 0x00000020
596 #define LINETRANSLATERESULT_DIALBILLING   0x00000040
597 #define LINETRANSLATERESULT_DIALQUIET     0x00000080
598 #define LINETRANSLATERESULT_DIALDIALTONE  0x00000100
599 #define LINETRANSLATERESULT_DIALPROMPT    0x00000200
600 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
601 #define LINETRANSLATERESULT_VOICEDETECT   0x00000400
602 #endif
603 
604 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
605 #define LINETRANSLATERESULT_NOTRANSLATION 0x00000800
606 #endif
607 
608 
609 typedef struct  _NDIS_VAR_DATA_DESC {
610 	USHORT  Length;
611 	USHORT  MaximumLength;
612 	LONG  Offset;
613 } NDIS_VAR_DATA_DESC, *PNDIS_VAR_DATA_DESC;
614 
615 typedef struct _LINE_DIAL_PARAMS {
616 	ULONG  ulDialPause;
617 	ULONG  ulDialSpeed;
618 	ULONG  ulDigitDuration;
619 	ULONG  ulWaitForDialtone;
620 } LINE_DIAL_PARAMS, *PLINE_DIAL_PARAMS;
621 
622 typedef struct _LINE_ADDRESS_CAPS {
623 	ULONG  ulTotalSize;
624 	ULONG  ulNeededSize;
625 	ULONG  ulUsedSize;
626 	ULONG  ulLineDeviceID;
627 	ULONG  ulAddressSize;
628 	ULONG  ulAddressOffset;
629 	ULONG  ulDevSpecificSize;
630 	ULONG  ulDevSpecificOffset;
631 	ULONG  ulAddressSharing;
632 	ULONG  ulAddressStates;
633 	ULONG  ulCallInfoStates;
634 	ULONG  ulCallerIDFlags;
635 	ULONG  ulCalledIDFlags;
636 	ULONG  ulConnectedIDFlags;
637 	ULONG  ulRedirectionIDFlags;
638 	ULONG  ulRedirectingIDFlags;
639 	ULONG  ulCallStates;
640 	ULONG  ulDialToneModes;
641 	ULONG  ulBusyModes;
642 	ULONG  ulSpecialInfo;
643 	ULONG  ulDisconnectModes;
644 	ULONG  ulMaxNumActiveCalls;
645 	ULONG  ulMaxNumOnHoldCalls;
646 	ULONG  ulMaxNumOnHoldPendingCalls;
647 	ULONG  ulMaxNumConference;
648 	ULONG  ulMaxNumTransConf;
649 	ULONG  ulAddrCapFlags;
650 	ULONG  ulCallFeatures;
651 	ULONG  ulRemoveFromConfCaps;
652 	ULONG  ulRemoveFromConfState;
653 	ULONG  ulTransferModes;
654 	ULONG  ulParkModes;
655 	ULONG  ulForwardModes;
656 	ULONG  ulMaxForwardEntries;
657 	ULONG  ulMaxSpecificEntries;
658 	ULONG  ulMinFwdNumRings;
659 	ULONG  ulMaxFwdNumRings;
660 	ULONG  ulMaxCallCompletions;
661 	ULONG  ulCallCompletionConds;
662 	ULONG  ulCallCompletionModes;
663 	ULONG  ulNumCompletionMessages;
664 	ULONG  ulCompletionMsgTextEntrySize;
665 	ULONG  ulCompletionMsgTextSize;
666 	ULONG  ulCompletionMsgTextOffset;
667 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00010004)
668 	ULONG  ulAddressFeatures;
669 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
670 	ULONG  ulPredictiveAutoTransferStates;
671 	ULONG  ulNumCallTreatments;
672 	ULONG  ulCallTreatmentListSize;
673 	ULONG  ulCallTreatmentListOffset;
674 	ULONG  ulDeviceClassesSize;
675 	ULONG  ulDeviceClassesOffset;
676 	ULONG  ulMaxCallDataSize;
677 	ULONG  ulCallFeatures2;
678 	ULONG  ulMaxNoAnswerTimeout;
679 	ULONG  ulConnectedModes;
680 	ULONG  ulOfferingModes;
681 	ULONG  ulAvailableMediaModes;
682 #endif
683 #endif
684 } LINE_ADDRESS_CAPS, *PLINE_ADDRESS_CAPS;
685 
686 typedef struct _LINE_ADDRESS_STATUS {
687 	ULONG  ulTotalSize;
688 	ULONG  ulNeededSize;
689 	ULONG  ulUsedSize;
690 	ULONG  ulNumInUse;
691 	ULONG  ulNumActiveCalls;
692 	ULONG  ulNumOnHoldCalls;
693 	ULONG  ulNumOnHoldPendCalls;
694 	ULONG  ulAddressFeatures;
695 	ULONG  ulNumRingsNoAnswer;
696 	ULONG  ulForwardNumEntries;
697 	ULONG  ulForwardSize;
698 	ULONG  ulForwardOffset;
699 	ULONG  ulTerminalModesSize;
700 	ULONG  ulTerminalModesOffset;
701 	ULONG  ulDevSpecificSize;
702 	ULONG  ulDevSpecificOffset;
703 } LINE_ADDRESS_STATUS, *PLINE_ADDRESS_STATUS;
704 
705 typedef struct _LINE_CALL_INFO {
706 	ULONG  ulTotalSize;
707 	ULONG  ulNeededSize;
708 	ULONG  ulUsedSize;
709 	ULONG  hLine;
710 	ULONG  ulLineDeviceID;
711 	ULONG  ulAddressID;
712 	ULONG  ulBearerMode;
713 	ULONG  ulRate;
714 	ULONG  ulMediaMode;
715 	ULONG  ulAppSpecific;
716 	ULONG  ulCallID;
717 	ULONG  ulRelatedCallID;
718 	ULONG  ulCallParamFlags;
719 	ULONG  ulCallStates;
720 	ULONG  ulMonitorDigitModes;
721 	ULONG  ulMonitorMediaModes;
722 	LINE_DIAL_PARAMS  DialParams;
723 	ULONG  ulOrigin;
724 	ULONG  ulReason;
725 	ULONG  ulCompletionID;
726 	ULONG  ulNumOwners;
727 	ULONG  ulNumMonitors;
728 	ULONG  ulCountryCode;
729 	ULONG  ulTrunk;
730 	ULONG  ulCallerIDFlags;
731 	ULONG  ulCallerIDSize;
732 	ULONG  ulCallerIDOffset;
733 	ULONG  ulCallerIDNameSize;
734 	ULONG  ulCallerIDNameOffset;
735 	ULONG  ulCalledIDFlags;
736 	ULONG  ulCalledIDSize;
737 	ULONG  ulCalledIDOffset;
738 	ULONG  ulCalledIDNameSize;
739 	ULONG  ulCalledIDNameOffset;
740 	ULONG  ulConnectedIDFlags;
741 	ULONG  ulConnectedIDSize;
742 	ULONG  ulConnectedIDOffset;
743 	ULONG  ulConnectedIDNameSize;
744 	ULONG  ulConnectedIDNameOffset;
745 	ULONG  ulRedirectionIDFlags;
746 	ULONG  ulRedirectionIDSize;
747 	ULONG  ulRedirectionIDOffset;
748 	ULONG  ulRedirectionIDNameSize;
749 	ULONG  ulRedirectionIDNameOffset;
750 	ULONG  ulRedirectingIDFlags;
751 	ULONG  ulRedirectingIDSize;
752 	ULONG  ulRedirectingIDOffset;
753 	ULONG  ulRedirectingIDNameSize;
754 	ULONG  ulRedirectingIDNameOffset;
755 	ULONG  ulAppNameSize;
756 	ULONG  ulAppNameOffset;
757 	ULONG  ulDisplayableAddressSize;
758 	ULONG  ulDisplayableAddressOffset;
759 	ULONG  ulCalledPartySize;
760 	ULONG  ulCalledPartyOffset;
761 	ULONG  ulCommentSize;
762 	ULONG  ulCommentOffset;
763 	ULONG  ulDisplaySize;
764 	ULONG  ulDisplayOffset;
765 	ULONG  ulUserUserInfoSize;
766 	ULONG  ulUserUserInfoOffset;
767 	ULONG  ulHighLevelCompSize;
768 	ULONG  ulHighLevelCompOffset;
769 	ULONG  ulLowLevelCompSize;
770 	ULONG  ulLowLevelCompOffset;
771 	ULONG  ulChargingInfoSize;
772 	ULONG  ulChargingInfoOffset;
773 	ULONG  ulTerminalModesSize;
774 	ULONG  ulTerminalModesOffset;
775 	ULONG  ulDevSpecificSize;
776 	ULONG  ulDevSpecificOffset;
777 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
778 	ULONG  ulCallTreatment;
779 	ULONG  ulCallDataSize;
780 	ULONG  ulCallDataOffset;
781 	ULONG  ulSendingFlowspecSize;
782 	ULONG  ulSendingFlowspecOffset;
783 	ULONG  ulReceivingFlowspecSize;
784 	ULONG  ulReceivingFlowspecOffset;
785 #endif
786 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
787 	ULONG  ulCallerIDAddressType;
788 	ULONG  ulCalledIDAddressType;
789 	ULONG  ulConnectedIDAddressType;
790 	ULONG  ulRedirectionIDAddressType;
791 	ULONG  ulRedirectingIDAddressType;
792 #endif
793 } LINE_CALL_INFO, *PLINE_CALL_INFO;
794 
795 typedef struct _LINE_CALL_PARAMS {
796   ULONG  ulTotalSize;
797 	ULONG  ulBearerMode;
798 	ULONG  ulMinRate;
799 	ULONG  ulMaxRate;
800 	ULONG  ulMediaMode;
801 	ULONG  ulCallParamFlags;
802 	ULONG  ulAddressMode;
803 	ULONG  ulAddressID;
804 	LINE_DIAL_PARAMS  DialParams;
805 	ULONG  ulOrigAddressSize;
806 	ULONG  ulOrigAddressOffset;
807 	ULONG  ulDisplayableAddressSize;
808 	ULONG  ulDisplayableAddressOffset;
809 	ULONG  ulCalledPartySize;
810 	ULONG  ulCalledPartyOffset;
811 	ULONG  ulCommentSize;
812 	ULONG  ulCommentOffset;
813 	ULONG  ulUserUserInfoSize;
814 	ULONG  ulUserUserInfoOffset;
815 	ULONG  ulHighLevelCompSize;
816 	ULONG  ulHighLevelCompOffset;
817 	ULONG  ulLowLevelCompSize;
818 	ULONG  ulLowLevelCompOffset;
819 	ULONG  ulDevSpecificSize;
820 	ULONG  ulDevSpecificOffset;
821 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
822 	ULONG  ulPredictiveAutoTransferStates;
823 	ULONG  ulTargetAddressSize;
824 	ULONG  ulTargetAddressOffset;
825 	ULONG  ulSendingFlowspecSize;
826 	ULONG  ulSendingFlowspecOffset;
827 	ULONG  ulReceivingFlowspecSize;
828 	ULONG  ulReceivingFlowspecOffset;
829 	ULONG  ulDeviceClassSize;
830 	ULONG  ulDeviceClassOffset;
831 	ULONG  ulDeviceConfigSize;
832 	ULONG  ulDeviceConfigOffset;
833 	ULONG  ulCallDataSize;
834 	ULONG  ulCallDataOffset;
835 	ULONG  ulNoAnswerTimeout;
836 	ULONG  ulCallingPartyIDSize;
837 	ULONG  ulCallingPartyIDOffset;
838 #endif
839 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
840   ULONG  ulAddressType;
841 #endif
842 } LINE_CALL_PARAMS, *PLINE_CALL_PARAMS;
843 
844 typedef struct _LINE_CALL_STATUS {
845 	ULONG  ulTotalSize;
846 	ULONG  ulNeededSize;
847 	ULONG  ulUsedSize;
848 	ULONG  ulCallState;
849 	ULONG  ulCallStateMode;
850 	ULONG  ulCallPrivilege;
851 	ULONG  ulCallFeatures;
852 	ULONG  ulDevSpecificSize;
853 	ULONG  ulDevSpecificOffset;
854 } LINE_CALL_STATUS, *PLINE_CALL_STATUS;
855 
856 typedef struct _LINE_DEV_CAPS {
857 	ULONG  ulTotalSize;
858 	ULONG  ulNeededSize;
859 	ULONG  ulUsedSize;
860 	ULONG  ulProviderInfoSize;
861 	ULONG  ulProviderInfoOffset;
862 	ULONG  ulSwitchInfoSize;
863 	ULONG  ulSwitchInfoOffset;
864 	ULONG  ulPermanentLineID;
865 	ULONG  ulLineNameSize;
866 	ULONG  ulLineNameOffset;
867 	ULONG  ulStringFormat;
868 	ULONG  ulAddressModes;
869 	ULONG  ulNumAddresses;
870 	ULONG  ulBearerModes;
871 	ULONG  ulMaxRate;
872 	ULONG  ulMediaModes;
873 	ULONG  ulGenerateToneModes;
874 	ULONG  ulGenerateToneMaxNumFreq;
875 	ULONG  ulGenerateDigitModes;
876 	ULONG  ulMonitorToneMaxNumFreq;
877 	ULONG  ulMonitorToneMaxNumEntries;
878 	ULONG  ulMonitorDigitModes;
879 	ULONG  ulGatherDigitsMinTimeout;
880 	ULONG  ulGatherDigitsMaxTimeout;
881 	ULONG  ulMedCtlDigitMaxListSize;
882 	ULONG  ulMedCtlMediaMaxListSize;
883 	ULONG  ulMedCtlToneMaxListSize;
884 	ULONG  ulMedCtlCallStateMaxListSize;
885 	ULONG  ulDevCapFlags;
886 	ULONG  ulMaxNumActiveCalls;
887 	ULONG  ulAnswerMode;
888 	ULONG  ulRingModes;
889 	ULONG  ulLineStates;
890 	ULONG  ulUUIAcceptSize;
891 	ULONG  ulUUIAnswerSize;
892 	ULONG  ulUUIMakeCallSize;
893 	ULONG  ulUUIDropSize;
894 	ULONG  ulUUISendUserUserInfoSize;
895 	ULONG  ulUUICallInfoSize;
896 	LINE_DIAL_PARAMS  MinDialParams;
897 	LINE_DIAL_PARAMS  MaxDialParams;
898 	LINE_DIAL_PARAMS  DefaultDialParams;
899 	ULONG  ulNumTerminals;
900 	ULONG  ulTerminalCapsSize;
901 	ULONG  ulTerminalCapsOffset;
902 	ULONG  ulTerminalTextEntrySize;
903 	ULONG  ulTerminalTextSize;
904 	ULONG  ulTerminalTextOffset;
905 	ULONG  ulDevSpecificSize;
906 	ULONG  ulDevSpecificOffset;
907 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00010004)
908 	ULONG  ulLineFeatures;
909 #endif
910 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
911 	ULONG  ulSettableDevStatus;
912 	ULONG  ulDeviceClassesSize;
913 	ULONG  ulDeviceClassesOffset;
914 #endif
915 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020002)
916   GUID  PermanentLineGuid;
917 #endif
918 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
919 	ULONG  ulAddressTypes;
920 	GUID  ProtocolGuid;
921 	ULONG  ulAvailableTracking;
922 #endif
923 } LINE_DEV_CAPS, *PLINE_DEV_CAPS;
924 
925 typedef struct _LINE_DEV_STATUS {
926 	ULONG  ulTotalSize;
927 	ULONG  ulNeededSize;
928 	ULONG  ulUsedSize;
929 	ULONG  ulNumOpens;
930 	ULONG  ulOpenMediaModes;
931 	ULONG  ulNumActiveCalls;
932 	ULONG  ulNumOnHoldCalls;
933 	ULONG  ulNumOnHoldPendCalls;
934 	ULONG  ulLineFeatures;
935 	ULONG  ulNumCallCompletions;
936 	ULONG  ulRingMode;
937 	ULONG  ulSignalLevel;
938 	ULONG  ulBatteryLevel;
939 	ULONG  ulRoamMode;
940 	ULONG  ulDevStatusFlags;
941 	ULONG  ulTerminalModesSize;
942 	ULONG  ulTerminalModesOffset;
943 	ULONG  ulDevSpecificSize;
944 	ULONG  ulDevSpecificOffset;
945 } LINE_DEV_STATUS, *PLINE_DEV_STATUS;
946 
947 typedef struct _LINE_EXTENSION_ID {
948 	ULONG  ulExtensionID0;
949 	ULONG  ulExtensionID1;
950 	ULONG  ulExtensionID2;
951 	ULONG  ulExtensionID3;
952 } LINE_EXTENSION_ID, *PLINE_EXTENSION_ID;
953 
954 typedef struct _VAR_STRING {
955 	ULONG  ulTotalSize;
956 	ULONG  ulNeededSize;
957 	ULONG  ulUsedSize;
958 	ULONG  ulStringFormat;
959 	ULONG  ulStringSize;
960 	ULONG  ulStringOffset;
961 } VAR_STRING, *PVAR_STRING;
962 
963 typedef struct _NDIS_TAPI_ANSWER {
964   IN ULONG  ulRequestID;
965   IN HDRV_CALL  hdCall;
966   IN ULONG  ulUserUserInfoSize;
967   IN UCHAR  UserUserInfo[1];
968 } NDIS_TAPI_ANSWER, *PNDIS_TAPI_ANSWER;
969 
970 typedef struct _NDIS_TAPI_CLOSE {
971   IN ULONG  ulRequestID;
972   IN HDRV_LINE  hdLine;
973 } NDIS_TAPI_CLOSE, *PNDIS_TAPI_CLOSE;
974 
975 typedef struct _NDIS_TAPI_CLOSE_CALL {
976   IN ULONG  ulRequestID;
977   IN HDRV_CALL  hdCall;
978 } NDIS_TAPI_CLOSE_CALL, *PNDIS_TAPI_CLOSE_CALL;
979 
980 typedef struct _NDIS_TAPI_CONDITIONAL_MEDIA_DETECTION {
981   IN ULONG  ulRequestID;
982   IN HDRV_LINE  hdLine;
983   IN ULONG  ulMediaModes;
984   IN LINE_CALL_PARAMS  LineCallParams;
985 } NDIS_TAPI_CONDITIONAL_MEDIA_DETECTION, *PNDIS_TAPI_CONDITIONAL_MEDIA_DETECTION;
986 
987 typedef struct _NDIS_TAPI_DROP {
988   IN ULONG  ulRequestID;
989   IN HDRV_CALL  hdCall;
990   IN ULONG  ulUserUserInfoSize;
991   IN UCHAR  UserUserInfo[1];
992 } NDIS_TAPI_DROP, *PNDIS_TAPI_DROP;
993 
994 typedef struct _NDIS_TAPI_PROVIDER_SHUTDOWN {
995   IN ULONG  ulRequestID;
996 } NDIS_TAPI_PROVIDER_SHUTDOWN, *PNDIS_TAPI_PROVIDER_SHUTDOWN;
997 
998 typedef struct _NDIS_TAPI_SET_APP_SPECIFIC {
999   IN ULONG  ulRequestID;
1000   IN HDRV_CALL  hdCall;
1001   IN ULONG  ulAppSpecific;
1002 } NDIS_TAPI_SET_APP_SPECIFIC, *PNDIS_TAPI_SET_APP_SPECIFIC;
1003 
1004 typedef struct _NDIS_TAPI_SET_CALL_PARAMS {
1005   IN ULONG  ulRequestID;
1006   IN HDRV_CALL  hdCall;
1007   IN ULONG  ulBearerMode;
1008   IN ULONG  ulMinRate;
1009   IN ULONG  ulMaxRate;
1010   IN BOOLEAN  bSetLineDialParams;
1011   IN LINE_DIAL_PARAMS  LineDialParams;
1012 } NDIS_TAPI_SET_CALL_PARAMS, *PNDIS_TAPI_SET_CALL_PARAMS;
1013 
1014 typedef struct _NDIS_TAPI_SET_DEFAULT_MEDIA_DETECTION {
1015   IN ULONG  ulRequestID;
1016   IN HDRV_LINE  hdLine;
1017   IN ULONG  ulMediaModes;
1018 } NDIS_TAPI_SET_DEFAULT_MEDIA_DETECTION, *PNDIS_TAPI_SET_DEFAULT_MEDIA_DETECTION;
1019 
1020 typedef struct _NDIS_TAPI_SET_DEV_CONFIG {
1021   IN ULONG  ulRequestID;
1022   IN ULONG  ulDeviceID;
1023   IN ULONG  ulDeviceClassSize;
1024   IN ULONG  ulDeviceClassOffset;
1025   IN ULONG  ulDeviceConfigSize;
1026   IN UCHAR  DeviceConfig[1];
1027 } NDIS_TAPI_SET_DEV_CONFIG, *PNDIS_TAPI_SET_DEV_CONFIG;
1028 
1029 typedef struct _NDIS_TAPI_SET_MEDIA_MODE {
1030   IN ULONG  ulRequestID;
1031   IN HDRV_CALL  hdCall;
1032   IN ULONG  ulMediaMode;
1033 } NDIS_TAPI_SET_MEDIA_MODE, *PNDIS_TAPI_SET_MEDIA_MODE;
1034 
1035 typedef struct _NDIS_TAPI_SET_STATUS_MESSAGES {
1036   IN ULONG  ulRequestID;
1037   IN HDRV_LINE  hdLine;
1038   IN ULONG  ulLineStates;
1039   IN ULONG  ulAddressStates;
1040 } NDIS_TAPI_SET_STATUS_MESSAGES, *PNDIS_TAPI_SET_STATUS_MESSAGES;
1041 
1042 typedef struct _NDIS_TAPI_ACCEPT {
1043   IN ULONG  ulRequestID;
1044   IN HDRV_CALL  hdCall;
1045   IN ULONG  ulUserUserInfoSize;
1046   IN UCHAR  UserUserInfo[1];
1047 } NDIS_TAPI_ACCEPT, *PNDIS_TAPI_ACCEPT;
1048 
1049 typedef struct _NDIS_TAPI_DIAL {
1050   IN ULONG  ulRequestID;
1051   IN HDRV_CALL  hdCall;
1052   IN ULONG  ulDestAddressSize;
1053   IN CHAR  szDestAddress[1];
1054 } NDIS_TAPI_DIAL, *PNDIS_TAPI_DIAL;
1055 
1056 typedef struct _NDIS_TAPI_EVENT {
1057   IN HTAPI_LINE  htLine;
1058   IN HTAPI_CALL  htCall;
1059   IN ULONG  ulMsg;
1060   IN ULONG  ulParam1;
1061   IN ULONG  ulParam2;
1062   IN ULONG  ulParam3;
1063 } NDIS_TAPI_EVENT, *PNDIS_TAPI_EVENT;
1064 
1065 typedef struct _NDIS_TAPI_OPEN {
1066   IN ULONG  ulRequestID;
1067   IN ULONG  ulDeviceID;
1068   IN HTAPI_LINE  htLine;
1069   OUT HDRV_LINE  hdLine;
1070 } NDIS_TAPI_OPEN, *PNDIS_TAPI_OPEN;
1071 
1072 typedef struct _NDIS_TAPI_SECURE_CALL {
1073   IN ULONG  ulRequestID;
1074   IN HDRV_CALL  hdCall;
1075 } NDIS_TAPI_SECURE_CALL, *PNDIS_TAPI_SECURE_CALL;
1076 
1077 typedef struct _NDIS_TAPI_SELECT_EXT_VERSION {
1078   IN ULONG  ulRequestID;
1079   IN HDRV_LINE  hdLine;
1080   IN ULONG  ulExtVersion;
1081 } NDIS_TAPI_SELECT_EXT_VERSION, *PNDIS_TAPI_SELECT_EXT_VERSION;
1082 
1083 typedef struct _NDIS_TAPI_SEND_USER_USER_INFO {
1084   IN ULONG  ulRequestID;
1085   IN HDRV_CALL  hdCall;
1086   IN ULONG  ulUserUserInfoSize;
1087   IN UCHAR  UserUserInfo[1];
1088 } NDIS_TAPI_SEND_USER_USER_INFO, *PNDIS_TAPI_SEND_USER_USER_INFO;
1089 
1090 
1091 typedef struct _NDIS_TAPI_CONFIG_DIALOG {
1092   IN ULONG  ulRequestID;
1093   IN ULONG  ulDeviceID;
1094   IN ULONG  ulDeviceClassSize;
1095   IN ULONG  ulDeviceClassOffset;
1096   IN ULONG  ulLibraryNameTotalSize;
1097   OUT ULONG ulLibraryNameNeededSize;
1098   OUT CHAR  szLibraryName[1];
1099 } NDIS_TAPI_CONFIG_DIALOG, *PNDIS_TAPI_CONFIG_DIALOG;
1100 
1101 typedef struct _NDIS_TAPI_DEV_SPECIFIC {
1102   IN ULONG  ulRequestID;
1103   IN HDRV_LINE  hdLine;
1104   IN ULONG  ulAddressID;
1105   IN HDRV_CALL  hdCall;
1106   IN OUT ULONG  ulParamsSize;
1107   IN OUT UCHAR  Params[1];
1108 } NDIS_TAPI_DEV_SPECIFIC, *PNDIS_TAPI_DEV_SPECIFIC;
1109 
1110 typedef struct _NDIS_TAPI_GET_ADDRESS_CAPS {
1111   IN ULONG  ulRequestID;
1112   IN ULONG  ulDeviceID;
1113   IN ULONG  ulAddressID;
1114   IN ULONG  ulExtVersion;
1115   OUT LINE_ADDRESS_CAPS  LineAddressCaps;
1116 } NDIS_TAPI_GET_ADDRESS_CAPS, *PNDIS_TAPI_GET_ADDRESS_CAPS;
1117 
1118 typedef struct _NDIS_TAPI_GET_ADDRESS_ID {
1119   IN ULONG  ulRequestID;
1120   IN HDRV_LINE  hdLine;
1121   OUT ULONG  ulAddressID;
1122   IN ULONG  ulAddressMode;
1123   IN ULONG  ulAddressSize;
1124   IN CHAR  szAddress[1];
1125 } NDIS_TAPI_GET_ADDRESS_ID, *PNDIS_TAPI_GET_ADDRESS_ID;
1126 
1127 typedef struct _NDIS_TAPI_GET_ADDRESS_STATUS {
1128   IN ULONG  ulRequestID;
1129   IN HDRV_LINE  hdLine;
1130   IN ULONG  ulAddressID;
1131   OUT LINE_ADDRESS_STATUS  LineAddressStatus;
1132 } NDIS_TAPI_GET_ADDRESS_STATUS, *PNDIS_TAPI_GET_ADDRESS_STATUS;
1133 
1134 typedef struct _NDIS_TAPI_GET_CALL_ADDRESS_ID {
1135   IN ULONG  ulRequestID;
1136   IN HDRV_CALL  hdCall;
1137   OUT ULONG  ulAddressID;
1138 } NDIS_TAPI_GET_CALL_ADDRESS_ID, *PNDIS_TAPI_GET_CALL_ADDRESS_ID;
1139 
1140 typedef struct _NDIS_TAPI_GET_CALL_INFO {
1141   ULONG  ulRequestID;
1142   IN HDRV_CALL  hdCall;
1143   OUT LINE_CALL_INFO  LineCallInfo;
1144 } NDIS_TAPI_GET_CALL_INFO, *PNDIS_TAPI_GET_CALL_INFO;
1145 
1146 typedef struct _NDIS_TAPI_GET_CALL_STATUS {
1147   IN ULONG  ulRequestID;
1148   IN HDRV_CALL  hdCall;
1149   OUT LINE_CALL_STATUS  LineCallStatus;
1150 } NDIS_TAPI_GET_CALL_STATUS, *PNDIS_TAPI_GET_CALL_STATUS;
1151 
1152 typedef struct _NDIS_TAPI_GET_DEV_CAPS {
1153   IN ULONG  ulRequestID;
1154   IN ULONG  ulDeviceID;
1155   IN ULONG  ulExtVersion;
1156   OUT LINE_DEV_CAPS  LineDevCaps;
1157 } NDIS_TAPI_GET_DEV_CAPS, *PNDIS_TAPI_GET_DEV_CAPS;
1158 
1159 typedef struct _NDIS_TAPI_GET_DEV_CONFIG {
1160   IN ULONG  ulRequestID;
1161   IN ULONG  ulDeviceID;
1162   IN ULONG  ulDeviceClassSize;
1163   IN ULONG  ulDeviceClassOffset;
1164   OUT VAR_STRING  DeviceConfig;
1165 } NDIS_TAPI_GET_DEV_CONFIG, *PNDIS_TAPI_GET_DEV_CONFIG;
1166 
1167 typedef struct _NDIS_TAPI_GET_EXTENSION_ID {
1168   IN ULONG  ulRequestID;
1169   IN ULONG  ulDeviceID;
1170   OUT LINE_EXTENSION_ID  LineExtensionID;
1171 } NDIS_TAPI_GET_EXTENSION_ID, *PNDIS_TAPI_GET_EXTENSION_ID;
1172 
1173 typedef struct _NDIS_TAPI_GET_ID {
1174   IN ULONG  ulRequestID;
1175   IN HDRV_LINE  hdLine;
1176   IN ULONG  ulAddressID;
1177   IN HDRV_CALL  hdCall;
1178   IN ULONG  ulSelect;
1179   IN ULONG  ulDeviceClassSize;
1180   IN ULONG  ulDeviceClassOffset;
1181   OUT VAR_STRING  DeviceID;
1182 } NDIS_TAPI_GET_ID, *PNDIS_TAPI_GET_ID;
1183 
1184 typedef struct _NDIS_TAPI_GET_LINE_DEV_STATUS {
1185   IN ULONG  ulRequestID;
1186   IN HDRV_LINE  hdLine;
1187   OUT LINE_DEV_STATUS  LineDevStatus;
1188 } NDIS_TAPI_GET_LINE_DEV_STATUS, *PNDIS_TAPI_GET_LINE_DEV_STATUS;
1189 
1190 typedef struct _NDIS_TAPI_MAKE_CALL {
1191   IN ULONG  ulRequestID;
1192   IN HDRV_LINE  hdLine;
1193   IN HTAPI_CALL  htCall;
1194   OUT HDRV_CALL  hdCall;
1195   IN ULONG  ulDestAddressSize;
1196   IN ULONG  ulDestAddressOffset;
1197   IN BOOLEAN  bUseDefaultLineCallParams;
1198   IN LINE_CALL_PARAMS  LineCallParams;
1199 } NDIS_TAPI_MAKE_CALL, *PNDIS_TAPI_MAKE_CALL;
1200 
1201 typedef struct _NDIS_TAPI_NEGOTIATE_EXT_VERSION {
1202   IN ULONG  ulRequestID;
1203   IN ULONG  ulDeviceID;
1204   IN ULONG  ulLowVersion;
1205   IN ULONG  ulHighVersion;
1206   OUT ULONG  ulExtVersion;
1207 } NDIS_TAPI_NEGOTIATE_EXT_VERSION, *PNDIS_TAPI_NEGOTIATE_EXT_VERSION;
1208 
1209 typedef struct _NDIS_TAPI_PROVIDER_INITIALIZE {
1210   IN ULONG  ulRequestID;
1211   IN ULONG  ulDeviceIDBase;
1212   OUT ULONG  ulNumLineDevs;
1213   OUT ULONG  ulProviderID;
1214 } NDIS_TAPI_PROVIDER_INITIALIZE, *PNDIS_TAPI_PROVIDER_INITIALIZE;
1215 
1216 
1217 #define CO_TAPI_VERSION                   NDIS_TAPI_CURRENT_VERSION
1218 
1219 #define CO_TAPI_FLAG_OUTGOING_CALL          0x00000001
1220 #define CO_TAPI_FLAG_INCOMING_CALL          0x00000002
1221 #define CO_TAPI_FLAG_USE_DEFAULT_CALLPARAMS	0x00000004
1222 
1223 #define AF_TAPI_SAP_TYPE                  0x00008000
1224 
1225 typedef struct _CO_TAPI_ADDRESS_CAPS {
1226   IN ULONG  ulLineID;
1227   IN ULONG  ulAddressID;
1228   OUT ULONG  ulFlags;
1229   OUT LINE_ADDRESS_CAPS  LineAddressCaps;
1230 } CO_TAPI_ADDRESS_CAPS, *PCO_TAPI_ADDRESS_CAPS;
1231 
1232 /* CO_TAPI_CM_CAPS.ulFlags constants */
1233 #define CO_TAPI_FLAG_PER_LINE_CAPS        0x00000001
1234 
1235 typedef struct _CO_TAPI_CM_CAPS {
1236   OUT ULONG  ulCoTapiVersion;
1237   OUT ULONG  ulNumLines;
1238   OUT ULONG  ulFlags;
1239 } CO_TAPI_CM_CAPS, *PCO_TAPI_CM_CAPS;
1240 
1241 typedef struct _CO_TAPI_CALL_DIAGNOSTICS {
1242   OUT ULONG  ulOrigin;
1243   OUT ULONG  ulReason;
1244   OUT NDIS_VAR_DATA_DESC  DiagInfo;
1245 } CO_TAPI_CALL_DIAGNOSTICS, *PCO_TAPI_CALL_DIAGNOSTICS;
1246 
1247 
1248 /* CO_TAPI_LINE_CAPS.ulFlags constants */
1249 #define CO_TAPI_FLAG_PER_ADDRESS_CAPS     0x00000001
1250 
1251 typedef struct _CO_TAPI_LINE_CAPS {
1252   IN ULONG  ulLineID;
1253   OUT ULONG  ulFlags;
1254   OUT LINE_DEV_CAPS  LineDevCaps;
1255 } CO_TAPI_LINE_CAPS, *PCO_TAPI_LINE_CAPS;
1256 
1257 typedef struct _CO_TAPI_TRANSLATE_NDIS_CALLPARAMS {
1258   IN ULONG  ulFlags;
1259   IN NDIS_VAR_DATA_DESC  NdisCallParams;
1260   OUT NDIS_VAR_DATA_DESC  LineCallInfo;
1261 } CO_TAPI_TRANSLATE_NDIS_CALLPARAMS, *PCO_TAPI_TRANSLATE_NDIS_CALLPARAMS;
1262 
1263 typedef struct _CO_TAPI_TRANSLATE_TAPI_CALLPARAMS {
1264   IN ULONG  ulLineID;
1265   IN ULONG  ulAddressID;
1266   IN ULONG  ulFlags;
1267   IN NDIS_VAR_DATA_DESC  DestAddress;
1268   IN NDIS_VAR_DATA_DESC  LineCallParams;
1269   OUT NDIS_VAR_DATA_DESC  NdisCallParams;
1270 } CO_TAPI_TRANSLATE_TAPI_CALLPARAMS, *PCO_TAPI_TRANSLATE_TAPI_CALLPARAMS;
1271 
1272 /* CO_TAPI_TRANSLATE_SAP.ulLineID constants */
1273 #define CO_TAPI_LINE_ID_UNSPECIFIED       0xFFFFFFFF
1274 
1275 /* CO_TAPI_TRANSLATE_SAP.ulAddressID constants */
1276 #define CO_TAPI_ADDRESS_ID_UNSPECIFIED    0xFFFFFFFF
1277 
1278 typedef struct _CO_TAPI_TRANSLATE_SAP {
1279   IN ULONG  ulLineID;
1280   IN ULONG  ulAddressID;
1281   IN ULONG  ulMediaModes;
1282   IN ULONG  Reserved;
1283   OUT ULONG  NumberOfSaps;
1284   OUT NDIS_VAR_DATA_DESC  NdisSapParams[1];
1285 } CO_AF_TAPI_SAP, *PCO_AF_TAPI_SAP;
1286 
1287 typedef struct _CO_AF_TAPI_INCOMING_CALL_PARAMETERS {
1288   IN  ULONG  ulLineID;
1289   IN  ULONG  ulAddressID;
1290   IN  ULONG  ulFlags;
1291   IN  NDIS_VAR_DATA_DESC  LineCallInfo;
1292 } CO_AF_TAPI_INCOMING_CALL_PARAMETERS, *PCO_AF_TAPI_INCOMING_CALL_PARAMETERS;
1293 
1294 typedef struct _CO_AF_TAPI_MAKE_CALL_PARAMETERS {
1295   IN  ULONG  ulLineID;
1296   IN  ULONG  ulAddressID;
1297   IN  ULONG  ulFlags;
1298   IN  NDIS_VAR_DATA_DESC  DestAddress;
1299   IN  NDIS_VAR_DATA_DESC  LineCallParams;
1300 } CO_AF_TAPI_MAKE_CALL_PARAMETERS, *PCO_AF_TAPI_MAKE_CALL_PARAMETERS;
1301 
1302 #ifdef __cplusplus
1303 }
1304 #endif
1305 
1306 #endif /* _NDIS_TAPI_ */
1307 
1308