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