Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1676 lines
62 KiB

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