home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / ndistapi.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  48KB  |  1,309 lines

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