xref: /reactos/sdk/include/ddk/ndistapi.h (revision 5100859e)
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 <chorns@users.sourceforge.net>
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 typedef struct _NDIS_VAR_DATA_DESC {
609   USHORT Length;
610   USHORT MaximumLength;
611   LONG Offset;
612 } NDIS_VAR_DATA_DESC, *PNDIS_VAR_DATA_DESC;
613 
614 typedef struct _LINE_DIAL_PARAMS {
615   ULONG ulDialPause;
616   ULONG ulDialSpeed;
617   ULONG ulDigitDuration;
618   ULONG ulWaitForDialtone;
619 } LINE_DIAL_PARAMS, *PLINE_DIAL_PARAMS;
620 
621 typedef struct _LINE_ADDRESS_CAPS {
622   ULONG ulTotalSize;
623   ULONG ulNeededSize;
624   ULONG ulUsedSize;
625   ULONG ulLineDeviceID;
626   ULONG ulAddressSize;
627   ULONG ulAddressOffset;
628   ULONG ulDevSpecificSize;
629   ULONG ulDevSpecificOffset;
630   ULONG ulAddressSharing;
631   ULONG ulAddressStates;
632   ULONG ulCallInfoStates;
633   ULONG ulCallerIDFlags;
634   ULONG ulCalledIDFlags;
635   ULONG ulConnectedIDFlags;
636   ULONG ulRedirectionIDFlags;
637   ULONG ulRedirectingIDFlags;
638   ULONG ulCallStates;
639   ULONG ulDialToneModes;
640   ULONG ulBusyModes;
641   ULONG ulSpecialInfo;
642   ULONG ulDisconnectModes;
643   ULONG ulMaxNumActiveCalls;
644   ULONG ulMaxNumOnHoldCalls;
645   ULONG ulMaxNumOnHoldPendingCalls;
646   ULONG ulMaxNumConference;
647   ULONG ulMaxNumTransConf;
648   ULONG ulAddrCapFlags;
649   ULONG ulCallFeatures;
650   ULONG ulRemoveFromConfCaps;
651   ULONG ulRemoveFromConfState;
652   ULONG ulTransferModes;
653   ULONG ulParkModes;
654   ULONG ulForwardModes;
655   ULONG ulMaxForwardEntries;
656   ULONG ulMaxSpecificEntries;
657   ULONG ulMinFwdNumRings;
658   ULONG ulMaxFwdNumRings;
659   ULONG ulMaxCallCompletions;
660   ULONG ulCallCompletionConds;
661   ULONG ulCallCompletionModes;
662   ULONG ulNumCompletionMessages;
663   ULONG ulCompletionMsgTextEntrySize;
664   ULONG ulCompletionMsgTextSize;
665   ULONG ulCompletionMsgTextOffset;
666 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00010004)
667   ULONG ulAddressFeatures;
668 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
669   ULONG ulPredictiveAutoTransferStates;
670   ULONG ulNumCallTreatments;
671   ULONG ulCallTreatmentListSize;
672   ULONG ulCallTreatmentListOffset;
673   ULONG ulDeviceClassesSize;
674   ULONG ulDeviceClassesOffset;
675   ULONG ulMaxCallDataSize;
676   ULONG ulCallFeatures2;
677   ULONG ulMaxNoAnswerTimeout;
678   ULONG ulConnectedModes;
679   ULONG ulOfferingModes;
680   ULONG ulAvailableMediaModes;
681 #endif
682 #endif /* (NDIS_TAPI_CURRENT_VERSION >= 0x00010004) */
683 } LINE_ADDRESS_CAPS, *PLINE_ADDRESS_CAPS;
684 
685 typedef struct _LINE_ADDRESS_STATUS {
686   ULONG ulTotalSize;
687   ULONG ulNeededSize;
688   ULONG ulUsedSize;
689   ULONG ulNumInUse;
690   ULONG ulNumActiveCalls;
691   ULONG ulNumOnHoldCalls;
692   ULONG ulNumOnHoldPendCalls;
693   ULONG ulAddressFeatures;
694   ULONG ulNumRingsNoAnswer;
695   ULONG ulForwardNumEntries;
696   ULONG ulForwardSize;
697   ULONG ulForwardOffset;
698   ULONG ulTerminalModesSize;
699   ULONG ulTerminalModesOffset;
700   ULONG ulDevSpecificSize;
701   ULONG ulDevSpecificOffset;
702 } LINE_ADDRESS_STATUS, *PLINE_ADDRESS_STATUS;
703 
704 typedef struct _LINE_CALL_INFO {
705   ULONG ulTotalSize;
706   ULONG ulNeededSize;
707   ULONG ulUsedSize;
708   ULONG hLine;
709   ULONG ulLineDeviceID;
710   ULONG ulAddressID;
711   ULONG ulBearerMode;
712   ULONG ulRate;
713   ULONG ulMediaMode;
714   ULONG ulAppSpecific;
715   ULONG ulCallID;
716   ULONG ulRelatedCallID;
717   ULONG ulCallParamFlags;
718   ULONG ulCallStates;
719   ULONG ulMonitorDigitModes;
720   ULONG ulMonitorMediaModes;
721   LINE_DIAL_PARAMS DialParams;
722   ULONG ulOrigin;
723   ULONG ulReason;
724   ULONG ulCompletionID;
725   ULONG ulNumOwners;
726   ULONG ulNumMonitors;
727   ULONG ulCountryCode;
728   ULONG ulTrunk;
729   ULONG ulCallerIDFlags;
730   ULONG ulCallerIDSize;
731   ULONG ulCallerIDOffset;
732   ULONG ulCallerIDNameSize;
733   ULONG ulCallerIDNameOffset;
734   ULONG ulCalledIDFlags;
735   ULONG ulCalledIDSize;
736   ULONG ulCalledIDOffset;
737   ULONG ulCalledIDNameSize;
738   ULONG ulCalledIDNameOffset;
739   ULONG ulConnectedIDFlags;
740   ULONG ulConnectedIDSize;
741   ULONG ulConnectedIDOffset;
742   ULONG ulConnectedIDNameSize;
743   ULONG ulConnectedIDNameOffset;
744   ULONG ulRedirectionIDFlags;
745   ULONG ulRedirectionIDSize;
746   ULONG ulRedirectionIDOffset;
747   ULONG ulRedirectionIDNameSize;
748   ULONG ulRedirectionIDNameOffset;
749   ULONG ulRedirectingIDFlags;
750   ULONG ulRedirectingIDSize;
751   ULONG ulRedirectingIDOffset;
752   ULONG ulRedirectingIDNameSize;
753   ULONG ulRedirectingIDNameOffset;
754   ULONG ulAppNameSize;
755   ULONG ulAppNameOffset;
756   ULONG ulDisplayableAddressSize;
757   ULONG ulDisplayableAddressOffset;
758   ULONG ulCalledPartySize;
759   ULONG ulCalledPartyOffset;
760   ULONG ulCommentSize;
761   ULONG ulCommentOffset;
762   ULONG ulDisplaySize;
763   ULONG ulDisplayOffset;
764   ULONG ulUserUserInfoSize;
765   ULONG ulUserUserInfoOffset;
766   ULONG ulHighLevelCompSize;
767   ULONG ulHighLevelCompOffset;
768   ULONG ulLowLevelCompSize;
769   ULONG ulLowLevelCompOffset;
770   ULONG ulChargingInfoSize;
771   ULONG ulChargingInfoOffset;
772   ULONG ulTerminalModesSize;
773   ULONG ulTerminalModesOffset;
774   ULONG ulDevSpecificSize;
775   ULONG ulDevSpecificOffset;
776 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
777   ULONG ulCallTreatment;
778   ULONG ulCallDataSize;
779   ULONG ulCallDataOffset;
780   ULONG ulSendingFlowspecSize;
781   ULONG ulSendingFlowspecOffset;
782   ULONG ulReceivingFlowspecSize;
783   ULONG ulReceivingFlowspecOffset;
784 #endif
785 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
786   ULONG ulCallerIDAddressType;
787   ULONG ulCalledIDAddressType;
788   ULONG ulConnectedIDAddressType;
789   ULONG ulRedirectionIDAddressType;
790   ULONG ulRedirectingIDAddressType;
791 #endif
792 } LINE_CALL_INFO, *PLINE_CALL_INFO;
793 
794 typedef struct _LINE_CALL_PARAMS {
795   ULONG ulTotalSize;
796   ULONG ulBearerMode;
797   ULONG ulMinRate;
798   ULONG ulMaxRate;
799   ULONG ulMediaMode;
800   ULONG ulCallParamFlags;
801   ULONG ulAddressMode;
802   ULONG ulAddressID;
803   LINE_DIAL_PARAMS DialParams;
804   ULONG ulOrigAddressSize;
805   ULONG ulOrigAddressOffset;
806   ULONG ulDisplayableAddressSize;
807   ULONG ulDisplayableAddressOffset;
808   ULONG ulCalledPartySize;
809   ULONG ulCalledPartyOffset;
810   ULONG ulCommentSize;
811   ULONG ulCommentOffset;
812   ULONG ulUserUserInfoSize;
813   ULONG ulUserUserInfoOffset;
814   ULONG ulHighLevelCompSize;
815   ULONG ulHighLevelCompOffset;
816   ULONG ulLowLevelCompSize;
817   ULONG ulLowLevelCompOffset;
818   ULONG ulDevSpecificSize;
819   ULONG ulDevSpecificOffset;
820 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
821   ULONG ulPredictiveAutoTransferStates;
822   ULONG ulTargetAddressSize;
823   ULONG ulTargetAddressOffset;
824   ULONG ulSendingFlowspecSize;
825   ULONG ulSendingFlowspecOffset;
826   ULONG ulReceivingFlowspecSize;
827   ULONG ulReceivingFlowspecOffset;
828   ULONG ulDeviceClassSize;
829   ULONG ulDeviceClassOffset;
830   ULONG ulDeviceConfigSize;
831   ULONG ulDeviceConfigOffset;
832   ULONG ulCallDataSize;
833   ULONG ulCallDataOffset;
834   ULONG ulNoAnswerTimeout;
835   ULONG ulCallingPartyIDSize;
836   ULONG ulCallingPartyIDOffset;
837 #endif
838 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
839   ULONG ulAddressType;
840 #endif
841 } LINE_CALL_PARAMS, *PLINE_CALL_PARAMS;
842 
843 typedef struct _LINE_CALL_STATUS {
844   ULONG ulTotalSize;
845   ULONG ulNeededSize;
846   ULONG ulUsedSize;
847   ULONG ulCallState;
848   ULONG ulCallStateMode;
849   ULONG ulCallPrivilege;
850   ULONG ulCallFeatures;
851   ULONG ulDevSpecificSize;
852   ULONG ulDevSpecificOffset;
853 } LINE_CALL_STATUS, *PLINE_CALL_STATUS;
854 
855 typedef struct _LINE_DEV_CAPS {
856   ULONG ulTotalSize;
857   ULONG ulNeededSize;
858   ULONG ulUsedSize;
859   ULONG ulProviderInfoSize;
860   ULONG ulProviderInfoOffset;
861   ULONG ulSwitchInfoSize;
862   ULONG ulSwitchInfoOffset;
863   ULONG ulPermanentLineID;
864   ULONG ulLineNameSize;
865   ULONG ulLineNameOffset;
866   ULONG ulStringFormat;
867   ULONG ulAddressModes;
868   ULONG ulNumAddresses;
869   ULONG ulBearerModes;
870   ULONG ulMaxRate;
871   ULONG ulMediaModes;
872   ULONG ulGenerateToneModes;
873   ULONG ulGenerateToneMaxNumFreq;
874   ULONG ulGenerateDigitModes;
875   ULONG ulMonitorToneMaxNumFreq;
876   ULONG ulMonitorToneMaxNumEntries;
877   ULONG ulMonitorDigitModes;
878   ULONG ulGatherDigitsMinTimeout;
879   ULONG ulGatherDigitsMaxTimeout;
880   ULONG ulMedCtlDigitMaxListSize;
881   ULONG ulMedCtlMediaMaxListSize;
882   ULONG ulMedCtlToneMaxListSize;
883   ULONG ulMedCtlCallStateMaxListSize;
884   ULONG ulDevCapFlags;
885   ULONG ulMaxNumActiveCalls;
886   ULONG ulAnswerMode;
887   ULONG ulRingModes;
888   ULONG ulLineStates;
889   ULONG ulUUIAcceptSize;
890   ULONG ulUUIAnswerSize;
891   ULONG ulUUIMakeCallSize;
892   ULONG ulUUIDropSize;
893   ULONG ulUUISendUserUserInfoSize;
894   ULONG ulUUICallInfoSize;
895   LINE_DIAL_PARAMS MinDialParams;
896   LINE_DIAL_PARAMS MaxDialParams;
897   LINE_DIAL_PARAMS DefaultDialParams;
898   ULONG ulNumTerminals;
899   ULONG ulTerminalCapsSize;
900   ULONG ulTerminalCapsOffset;
901   ULONG ulTerminalTextEntrySize;
902   ULONG ulTerminalTextSize;
903   ULONG ulTerminalTextOffset;
904   ULONG ulDevSpecificSize;
905   ULONG ulDevSpecificOffset;
906 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00010004)
907   ULONG ulLineFeatures;
908 #endif
909 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
910   ULONG ulSettableDevStatus;
911   ULONG ulDeviceClassesSize;
912   ULONG ulDeviceClassesOffset;
913 #endif
914 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020002)
915   GUID PermanentLineGuid;
916 #endif
917 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
918   ULONG ulAddressTypes;
919   GUID ProtocolGuid;
920   ULONG ulAvailableTracking;
921 #endif
922 } LINE_DEV_CAPS, *PLINE_DEV_CAPS;
923 
924 typedef struct _LINE_DEV_STATUS {
925   ULONG ulTotalSize;
926   ULONG ulNeededSize;
927   ULONG ulUsedSize;
928   ULONG ulNumOpens;
929   ULONG ulOpenMediaModes;
930   ULONG ulNumActiveCalls;
931   ULONG ulNumOnHoldCalls;
932   ULONG ulNumOnHoldPendCalls;
933   ULONG ulLineFeatures;
934   ULONG ulNumCallCompletions;
935   ULONG ulRingMode;
936   ULONG ulSignalLevel;
937   ULONG ulBatteryLevel;
938   ULONG ulRoamMode;
939   ULONG ulDevStatusFlags;
940   ULONG ulTerminalModesSize;
941   ULONG ulTerminalModesOffset;
942   ULONG ulDevSpecificSize;
943   ULONG ulDevSpecificOffset;
944 } LINE_DEV_STATUS, *PLINE_DEV_STATUS;
945 
946 typedef struct _LINE_EXTENSION_ID {
947   ULONG ulExtensionID0;
948   ULONG ulExtensionID1;
949   ULONG ulExtensionID2;
950   ULONG ulExtensionID3;
951 } LINE_EXTENSION_ID, *PLINE_EXTENSION_ID;
952 
953 typedef struct _VAR_STRING {
954   ULONG ulTotalSize;
955   ULONG ulNeededSize;
956   ULONG ulUsedSize;
957   ULONG ulStringFormat;
958   ULONG ulStringSize;
959   ULONG ulStringOffset;
960 } VAR_STRING, *PVAR_STRING;
961 
962 typedef struct _NDIS_TAPI_ANSWER {
963   _In_ ULONG ulRequestID;
964   _In_ HDRV_CALL hdCall;
965   _In_ ULONG ulUserUserInfoSize;
966   _In_ UCHAR UserUserInfo[1];
967 } NDIS_TAPI_ANSWER, *PNDIS_TAPI_ANSWER;
968 
969 typedef struct _NDIS_TAPI_CLOSE {
970   _In_ ULONG ulRequestID;
971   _In_ HDRV_LINE hdLine;
972 } NDIS_TAPI_CLOSE, *PNDIS_TAPI_CLOSE;
973 
974 typedef struct _NDIS_TAPI_CLOSE_CALL {
975   _In_ ULONG ulRequestID;
976   _In_ HDRV_CALL hdCall;
977 } NDIS_TAPI_CLOSE_CALL, *PNDIS_TAPI_CLOSE_CALL;
978 
979 typedef struct _NDIS_TAPI_CONDITIONAL_MEDIA_DETECTION {
980   _In_ ULONG ulRequestID;
981   _In_ HDRV_LINE hdLine;
982   _In_ ULONG ulMediaModes;
983   _In_ LINE_CALL_PARAMS LineCallParams;
984 } NDIS_TAPI_CONDITIONAL_MEDIA_DETECTION, *PNDIS_TAPI_CONDITIONAL_MEDIA_DETECTION;
985 
986 typedef struct _NDIS_TAPI_DROP {
987   _In_ ULONG ulRequestID;
988   _In_ HDRV_CALL hdCall;
989   _In_ ULONG ulUserUserInfoSize;
990   _In_ UCHAR UserUserInfo[1];
991 } NDIS_TAPI_DROP, *PNDIS_TAPI_DROP;
992 
993 typedef struct _NDIS_TAPI_PROVIDER_SHUTDOWN {
994   _In_ ULONG ulRequestID;
995 } NDIS_TAPI_PROVIDER_SHUTDOWN, *PNDIS_TAPI_PROVIDER_SHUTDOWN;
996 
997 typedef struct _NDIS_TAPI_SET_APP_SPECIFIC {
998   _In_ ULONG ulRequestID;
999   _In_ HDRV_CALL hdCall;
1000   _In_ ULONG ulAppSpecific;
1001 } NDIS_TAPI_SET_APP_SPECIFIC, *PNDIS_TAPI_SET_APP_SPECIFIC;
1002 
1003 typedef struct _NDIS_TAPI_SET_CALL_PARAMS {
1004   _In_ ULONG ulRequestID;
1005   _In_ HDRV_CALL hdCall;
1006   _In_ ULONG ulBearerMode;
1007   _In_ ULONG ulMinRate;
1008   _In_ ULONG ulMaxRate;
1009   _In_ BOOLEAN bSetLineDialParams;
1010   _In_ LINE_DIAL_PARAMS LineDialParams;
1011 } NDIS_TAPI_SET_CALL_PARAMS, *PNDIS_TAPI_SET_CALL_PARAMS;
1012 
1013 typedef struct _NDIS_TAPI_SET_DEFAULT_MEDIA_DETECTION {
1014   _In_ ULONG ulRequestID;
1015   _In_ HDRV_LINE hdLine;
1016   _In_ ULONG ulMediaModes;
1017 } NDIS_TAPI_SET_DEFAULT_MEDIA_DETECTION, *PNDIS_TAPI_SET_DEFAULT_MEDIA_DETECTION;
1018 
1019 typedef struct _NDIS_TAPI_SET_DEV_CONFIG {
1020   _In_ ULONG ulRequestID;
1021   _In_ ULONG ulDeviceID;
1022   _In_ ULONG ulDeviceClassSize;
1023   _In_ ULONG ulDeviceClassOffset;
1024   _In_ ULONG ulDeviceConfigSize;
1025   _In_ UCHAR DeviceConfig[1];
1026 } NDIS_TAPI_SET_DEV_CONFIG, *PNDIS_TAPI_SET_DEV_CONFIG;
1027 
1028 typedef struct _NDIS_TAPI_SET_MEDIA_MODE {
1029   _In_ ULONG ulRequestID;
1030   _In_ HDRV_CALL hdCall;
1031   _In_ ULONG ulMediaMode;
1032 } NDIS_TAPI_SET_MEDIA_MODE, *PNDIS_TAPI_SET_MEDIA_MODE;
1033 
1034 typedef struct _NDIS_TAPI_SET_STATUS_MESSAGES {
1035   _In_ ULONG ulRequestID;
1036   _In_ HDRV_LINE hdLine;
1037   _In_ ULONG ulLineStates;
1038   _In_ ULONG ulAddressStates;
1039 } NDIS_TAPI_SET_STATUS_MESSAGES, *PNDIS_TAPI_SET_STATUS_MESSAGES;
1040 
1041 typedef struct _NDIS_TAPI_ACCEPT {
1042   _In_ ULONG ulRequestID;
1043   _In_ HDRV_CALL hdCall;
1044   _In_ ULONG ulUserUserInfoSize;
1045   _In_ UCHAR UserUserInfo[1];
1046 } NDIS_TAPI_ACCEPT, *PNDIS_TAPI_ACCEPT;
1047 
1048 typedef struct _NDIS_TAPI_DIAL {
1049   _In_ ULONG ulRequestID;
1050   _In_ HDRV_CALL hdCall;
1051   _In_ ULONG ulDestAddressSize;
1052   _In_ CHAR szDestAddress[1];
1053 } NDIS_TAPI_DIAL, *PNDIS_TAPI_DIAL;
1054 
1055 typedef struct _NDIS_TAPI_EVENT {
1056   _In_ HTAPI_LINE htLine;
1057   _In_ HTAPI_CALL htCall;
1058   _In_ ULONG ulMsg;
1059   _In_ ULONG ulParam1;
1060   _In_ ULONG ulParam2;
1061   _In_ ULONG ulParam3;
1062 } NDIS_TAPI_EVENT, *PNDIS_TAPI_EVENT;
1063 
1064 typedef struct _NDIS_TAPI_OPEN {
1065   _In_ ULONG ulRequestID;
1066   _In_ ULONG ulDeviceID;
1067   _In_ HTAPI_LINE htLine;
1068   _Out_ HDRV_LINE hdLine;
1069 } NDIS_TAPI_OPEN, *PNDIS_TAPI_OPEN;
1070 
1071 typedef struct _NDIS_TAPI_SECURE_CALL {
1072   _In_ ULONG ulRequestID;
1073   _In_ HDRV_CALL hdCall;
1074 } NDIS_TAPI_SECURE_CALL, *PNDIS_TAPI_SECURE_CALL;
1075 
1076 typedef struct _NDIS_TAPI_SELECT_EXT_VERSION {
1077   _In_ ULONG ulRequestID;
1078   _In_ HDRV_LINE hdLine;
1079   _In_ ULONG ulExtVersion;
1080 } NDIS_TAPI_SELECT_EXT_VERSION, *PNDIS_TAPI_SELECT_EXT_VERSION;
1081 
1082 typedef struct _NDIS_TAPI_SEND_USER_USER_INFO {
1083   _In_ ULONG ulRequestID;
1084   _In_ HDRV_CALL hdCall;
1085   _In_ ULONG ulUserUserInfoSize;
1086   _In_ UCHAR UserUserInfo[1];
1087 } NDIS_TAPI_SEND_USER_USER_INFO, *PNDIS_TAPI_SEND_USER_USER_INFO;
1088 
1089 typedef struct _NDIS_TAPI_CONFIG_DIALOG {
1090   _In_ ULONG ulRequestID;
1091   _In_ ULONG ulDeviceID;
1092   _In_ ULONG ulDeviceClassSize;
1093   _In_ ULONG ulDeviceClassOffset;
1094   _In_ ULONG ulLibraryNameTotalSize;
1095   _Out_ ULONG ulLibraryNameNeededSize;
1096   _Out_ CHAR szLibraryName[1];
1097 } NDIS_TAPI_CONFIG_DIALOG, *PNDIS_TAPI_CONFIG_DIALOG;
1098 
1099 typedef struct _NDIS_TAPI_DEV_SPECIFIC {
1100   _In_ ULONG ulRequestID;
1101   _In_ HDRV_LINE hdLine;
1102   _In_ ULONG ulAddressID;
1103   _In_ HDRV_CALL hdCall;
1104   _Inout_ ULONG ulParamsSize;
1105   _Inout_ UCHAR Params[1];
1106 } NDIS_TAPI_DEV_SPECIFIC, *PNDIS_TAPI_DEV_SPECIFIC;
1107 
1108 typedef struct _NDIS_TAPI_GET_ADDRESS_CAPS {
1109   _In_ ULONG ulRequestID;
1110   _In_ ULONG ulDeviceID;
1111   _In_ ULONG ulAddressID;
1112   _In_ ULONG ulExtVersion;
1113   _Out_ LINE_ADDRESS_CAPS LineAddressCaps;
1114 } NDIS_TAPI_GET_ADDRESS_CAPS, *PNDIS_TAPI_GET_ADDRESS_CAPS;
1115 
1116 typedef struct _NDIS_TAPI_GET_ADDRESS_ID {
1117   _In_ ULONG ulRequestID;
1118   _In_ HDRV_LINE hdLine;
1119   _Out_ ULONG ulAddressID;
1120   _In_ ULONG ulAddressMode;
1121   _In_ ULONG ulAddressSize;
1122   _In_ CHAR szAddress[1];
1123 } NDIS_TAPI_GET_ADDRESS_ID, *PNDIS_TAPI_GET_ADDRESS_ID;
1124 
1125 typedef struct _NDIS_TAPI_GET_ADDRESS_STATUS {
1126   _In_ ULONG ulRequestID;
1127   _In_ HDRV_LINE hdLine;
1128   _In_ ULONG ulAddressID;
1129   _Out_ LINE_ADDRESS_STATUS LineAddressStatus;
1130 } NDIS_TAPI_GET_ADDRESS_STATUS, *PNDIS_TAPI_GET_ADDRESS_STATUS;
1131 
1132 typedef struct _NDIS_TAPI_GET_CALL_ADDRESS_ID {
1133   _In_ ULONG ulRequestID;
1134   _In_ HDRV_CALL hdCall;
1135   _Out_ ULONG ulAddressID;
1136 } NDIS_TAPI_GET_CALL_ADDRESS_ID, *PNDIS_TAPI_GET_CALL_ADDRESS_ID;
1137 
1138 typedef struct _NDIS_TAPI_GET_CALL_INFO {
1139   _In_ ULONG ulRequestID;
1140   _In_ HDRV_CALL hdCall;
1141   _Out_ LINE_CALL_INFO LineCallInfo;
1142 } NDIS_TAPI_GET_CALL_INFO, *PNDIS_TAPI_GET_CALL_INFO;
1143 
1144 typedef struct _NDIS_TAPI_GET_CALL_STATUS {
1145   _In_ ULONG ulRequestID;
1146   _In_ HDRV_CALL hdCall;
1147   _Out_ LINE_CALL_STATUS LineCallStatus;
1148 } NDIS_TAPI_GET_CALL_STATUS, *PNDIS_TAPI_GET_CALL_STATUS;
1149 
1150 typedef struct _NDIS_TAPI_GET_DEV_CAPS {
1151   _In_ ULONG ulRequestID;
1152   _In_ ULONG ulDeviceID;
1153   _In_ ULONG ulExtVersion;
1154   _Out_ LINE_DEV_CAPS LineDevCaps;
1155 } NDIS_TAPI_GET_DEV_CAPS, *PNDIS_TAPI_GET_DEV_CAPS;
1156 
1157 typedef struct _NDIS_TAPI_GET_DEV_CONFIG {
1158   _In_ ULONG ulRequestID;
1159   _In_ ULONG ulDeviceID;
1160   _In_ ULONG ulDeviceClassSize;
1161   _In_ ULONG ulDeviceClassOffset;
1162   _Out_ VAR_STRING DeviceConfig;
1163 } NDIS_TAPI_GET_DEV_CONFIG, *PNDIS_TAPI_GET_DEV_CONFIG;
1164 
1165 typedef struct _NDIS_TAPI_GET_EXTENSION_ID {
1166   _In_ ULONG ulRequestID;
1167   _In_ ULONG ulDeviceID;
1168   _Out_ LINE_EXTENSION_ID LineExtensionID;
1169 } NDIS_TAPI_GET_EXTENSION_ID, *PNDIS_TAPI_GET_EXTENSION_ID;
1170 
1171 typedef struct _NDIS_TAPI_GET_ID {
1172   _In_ ULONG ulRequestID;
1173   _In_ HDRV_LINE hdLine;
1174   _In_ ULONG ulAddressID;
1175   _In_ HDRV_CALL hdCall;
1176   _In_ ULONG ulSelect;
1177   _In_ ULONG ulDeviceClassSize;
1178   _In_ ULONG ulDeviceClassOffset;
1179   _Out_ VAR_STRING DeviceID;
1180 } NDIS_TAPI_GET_ID, *PNDIS_TAPI_GET_ID;
1181 
1182 typedef struct _NDIS_TAPI_GET_LINE_DEV_STATUS {
1183   _In_ ULONG ulRequestID;
1184   _In_ HDRV_LINE hdLine;
1185   _Out_ LINE_DEV_STATUS LineDevStatus;
1186 } NDIS_TAPI_GET_LINE_DEV_STATUS, *PNDIS_TAPI_GET_LINE_DEV_STATUS;
1187 
1188 typedef struct _NDIS_TAPI_MAKE_CALL {
1189   _In_ ULONG ulRequestID;
1190   _In_ HDRV_LINE hdLine;
1191   _In_ HTAPI_CALL htCall;
1192   _Out_ HDRV_CALL hdCall;
1193   _In_ ULONG ulDestAddressSize;
1194   _In_ ULONG ulDestAddressOffset;
1195   _In_ BOOLEAN bUseDefaultLineCallParams;
1196   _In_ LINE_CALL_PARAMS LineCallParams;
1197 } NDIS_TAPI_MAKE_CALL, *PNDIS_TAPI_MAKE_CALL;
1198 
1199 typedef struct _NDIS_TAPI_NEGOTIATE_EXT_VERSION {
1200   _In_ ULONG ulRequestID;
1201   _In_ ULONG ulDeviceID;
1202   _In_ ULONG ulLowVersion;
1203   _In_ ULONG ulHighVersion;
1204   _Out_ ULONG ulExtVersion;
1205 } NDIS_TAPI_NEGOTIATE_EXT_VERSION, *PNDIS_TAPI_NEGOTIATE_EXT_VERSION;
1206 
1207 typedef struct _NDIS_TAPI_PROVIDER_INITIALIZE {
1208   _In_ ULONG ulRequestID;
1209   _In_ ULONG ulDeviceIDBase;
1210   _Out_ ULONG ulNumLineDevs;
1211   _Out_ ULONG ulProviderID;
1212 } NDIS_TAPI_PROVIDER_INITIALIZE, *PNDIS_TAPI_PROVIDER_INITIALIZE;
1213 
1214 #define CO_TAPI_VERSION                   NDIS_TAPI_CURRENT_VERSION
1215 
1216 #define CO_TAPI_FLAG_OUTGOING_CALL          0x00000001
1217 #define CO_TAPI_FLAG_INCOMING_CALL          0x00000002
1218 #define CO_TAPI_FLAG_USE_DEFAULT_CALLPARAMS 0x00000004
1219 
1220 #define AF_TAPI_SAP_TYPE                    0x00008000
1221 
1222 typedef struct _CO_TAPI_ADDRESS_CAPS {
1223   _In_ ULONG ulLineID;
1224   _In_ ULONG ulAddressID;
1225   _Out_ ULONG ulFlags;
1226   _Out_ LINE_ADDRESS_CAPS LineAddressCaps;
1227 } CO_TAPI_ADDRESS_CAPS, *PCO_TAPI_ADDRESS_CAPS;
1228 
1229 /* CO_TAPI_CM_CAPS.ulFlags constants */
1230 #define CO_TAPI_FLAG_PER_LINE_CAPS        0x00000001
1231 
1232 typedef struct _CO_TAPI_CM_CAPS {
1233   _Out_ ULONG ulCoTapiVersion;
1234   _Out_ ULONG ulNumLines;
1235   _Out_ ULONG ulFlags;
1236 } CO_TAPI_CM_CAPS, *PCO_TAPI_CM_CAPS;
1237 
1238 typedef struct _CO_TAPI_CALL_DIAGNOSTICS {
1239   _Out_ ULONG ulOrigin;
1240   _Out_ ULONG ulReason;
1241   _Out_ NDIS_VAR_DATA_DESC DiagInfo;
1242 } CO_TAPI_CALL_DIAGNOSTICS, *PCO_TAPI_CALL_DIAGNOSTICS;
1243 
1244 /* CO_TAPI_LINE_CAPS.ulFlags constants */
1245 #define CO_TAPI_FLAG_PER_ADDRESS_CAPS     0x00000001
1246 
1247 typedef struct _CO_TAPI_LINE_CAPS {
1248   _In_ ULONG ulLineID;
1249   _Out_ ULONG ulFlags;
1250   _Out_ LINE_DEV_CAPS LineDevCaps;
1251 } CO_TAPI_LINE_CAPS, *PCO_TAPI_LINE_CAPS;
1252 
1253 typedef struct _CO_TAPI_TRANSLATE_NDIS_CALLPARAMS {
1254   _In_ ULONG ulFlags;
1255   _In_ NDIS_VAR_DATA_DESC NdisCallParams;
1256   _Out_ NDIS_VAR_DATA_DESC LineCallInfo;
1257 } CO_TAPI_TRANSLATE_NDIS_CALLPARAMS, *PCO_TAPI_TRANSLATE_NDIS_CALLPARAMS;
1258 
1259 typedef struct _CO_TAPI_TRANSLATE_TAPI_CALLPARAMS {
1260   _In_ ULONG ulLineID;
1261   _In_ ULONG ulAddressID;
1262   _In_ ULONG ulFlags;
1263   _In_ NDIS_VAR_DATA_DESC DestAddress;
1264   _In_ NDIS_VAR_DATA_DESC LineCallParams;
1265   _Out_ NDIS_VAR_DATA_DESC NdisCallParams;
1266 } CO_TAPI_TRANSLATE_TAPI_CALLPARAMS, *PCO_TAPI_TRANSLATE_TAPI_CALLPARAMS;
1267 
1268 /* CO_TAPI_TRANSLATE_SAP.ulLineID constants */
1269 #define CO_TAPI_LINE_ID_UNSPECIFIED       0xFFFFFFFF
1270 
1271 /* CO_TAPI_TRANSLATE_SAP.ulAddressID constants */
1272 #define CO_TAPI_ADDRESS_ID_UNSPECIFIED    0xFFFFFFFF
1273 
1274 typedef struct _CO_TAPI_TRANSLATE_SAP {
1275   _In_ ULONG ulLineID;
1276   _In_ ULONG ulAddressID;
1277   _In_ ULONG ulMediaModes;
1278   _In_ ULONG Reserved;
1279   _Out_ ULONG NumberOfSaps;
1280   _Out_ NDIS_VAR_DATA_DESC NdisSapParams[1];
1281 } CO_AF_TAPI_SAP, *PCO_AF_TAPI_SAP;
1282 
1283 typedef struct _CO_AF_TAPI_INCOMING_CALL_PARAMETERS {
1284   _In_ ULONG ulLineID;
1285   _In_ ULONG ulAddressID;
1286   _In_ ULONG ulFlags;
1287   _In_ NDIS_VAR_DATA_DESC LineCallInfo;
1288 } CO_AF_TAPI_INCOMING_CALL_PARAMETERS, *PCO_AF_TAPI_INCOMING_CALL_PARAMETERS;
1289 
1290 typedef struct _CO_AF_TAPI_MAKE_CALL_PARAMETERS {
1291   _In_ ULONG ulLineID;
1292   _In_ ULONG ulAddressID;
1293   _In_ ULONG ulFlags;
1294   _In_ NDIS_VAR_DATA_DESC DestAddress;
1295   _In_ NDIS_VAR_DATA_DESC LineCallParams;
1296 } CO_AF_TAPI_MAKE_CALL_PARAMETERS, *PCO_AF_TAPI_MAKE_CALL_PARAMETERS;
1297 
1298 #ifdef __cplusplus
1299 }
1300 #endif
1301 
1302 #endif /* _NDIS_TAPI_ */
1303