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