Home | History | Annotate | Download | only in ddk
      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 (at) users.sourceforge.net>
     10  *
     11  * THIS SOFTWARE IS NOT COPYRIGHTED
     12  *
     13  * This source code is offered for use in the public domain. You may
     14  * use, modify or distribute it freely.
     15  *
     16  * This code is distributed in the hope that it will be useful but
     17  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
     18  * DISCLAIMED. This includes but is not limited to warranties of
     19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     20  *
     21  */
     22 
     23 #pragma once
     24 
     25 #ifndef _NDIS_TAPI_
     26 #define _NDIS_TAPI_
     27 
     28 #include "ndis.h"
     29 
     30 #ifdef __cplusplus
     31 extern "C" {
     32 #endif
     33 
     34 #ifndef NDIS_TAPI_CURRENT_VERSION
     35 #define NDIS_TAPI_CURRENT_VERSION         0x00010003
     36 #endif
     37 
     38 typedef ULONG_PTR HTAPI_LINE;
     39 typedef ULONG_PTR HDRV_LINE;
     40 typedef ULONG_PTR HTAPI_CALL;
     41 typedef ULONG_PTR HDRV_CALL;
     42 
     43 #define NDIS_STATUS_TAPI_ADDRESSBLOCKED               ((NDIS_STATUS)0xC0012000L)
     44 #define NDIS_STATUS_TAPI_BEARERMODEUNAVAIL            ((NDIS_STATUS)0xC0012001L)
     45 #define NDIS_STATUS_TAPI_CALLUNAVAIL                  ((NDIS_STATUS)0xC0012002L)
     46 #define NDIS_STATUS_TAPI_DIALBILLING                  ((NDIS_STATUS)0xC0012003L)
     47 #define NDIS_STATUS_TAPI_DIALDIALTONE                 ((NDIS_STATUS)0xC0012004L)
     48 #define NDIS_STATUS_TAPI_DIALPROMPT                   ((NDIS_STATUS)0xC0012005L)
     49 #define NDIS_STATUS_TAPI_DIALQUIET                    ((NDIS_STATUS)0xC0012006L)
     50 #define NDIS_STATUS_TAPI_INCOMPATIBLEEXTVERSION       ((NDIS_STATUS)0xC0012007L)
     51 #define NDIS_STATUS_TAPI_INUSE                        ((NDIS_STATUS)0xC0012008L)
     52 #define NDIS_STATUS_TAPI_INVALADDRESS                 ((NDIS_STATUS)0xC0012009L)
     53 #define NDIS_STATUS_TAPI_INVALADDRESSID               ((NDIS_STATUS)0xC001200AL)
     54 #define NDIS_STATUS_TAPI_INVALADDRESSMODE             ((NDIS_STATUS)0xC001200BL)
     55 #define NDIS_STATUS_TAPI_INVALBEARERMODE              ((NDIS_STATUS)0xC001200CL)
     56 #define NDIS_STATUS_TAPI_INVALCALLHANDLE              ((NDIS_STATUS)0xC001200DL)
     57 #define NDIS_STATUS_TAPI_INVALCALLPARAMS              ((NDIS_STATUS)0xC001200EL)
     58 #define NDIS_STATUS_TAPI_INVALCALLSTATE               ((NDIS_STATUS)0xC001200FL)
     59 #define NDIS_STATUS_TAPI_INVALDEVICECLASS             ((NDIS_STATUS)0xC0012010L)
     60 #define NDIS_STATUS_TAPI_INVALLINEHANDLE              ((NDIS_STATUS)0xC0012011L)
     61 #define NDIS_STATUS_TAPI_INVALLINESTATE               ((NDIS_STATUS)0xC0012012L)
     62 #define NDIS_STATUS_TAPI_INVALMEDIAMODE               ((NDIS_STATUS)0xC0012013L)
     63 #define NDIS_STATUS_TAPI_INVALRATE                    ((NDIS_STATUS)0xC0012014L)
     64 #define NDIS_STATUS_TAPI_NODRIVER                     ((NDIS_STATUS)0xC0012015L)
     65 #define NDIS_STATUS_TAPI_OPERATIONUNAVAIL             ((NDIS_STATUS)0xC0012016L)
     66 #define NDIS_STATUS_TAPI_RATEUNAVAIL                  ((NDIS_STATUS)0xC0012017L)
     67 #define NDIS_STATUS_TAPI_RESOURCEUNAVAIL              ((NDIS_STATUS)0xC0012018L)
     68 #define NDIS_STATUS_TAPI_STRUCTURETOOSMALL            ((NDIS_STATUS)0xC0012019L)
     69 #define NDIS_STATUS_TAPI_USERUSERINFOTOOBIG           ((NDIS_STATUS)0xC001201AL)
     70 #define NDIS_STATUS_TAPI_ALLOCATED                    ((NDIS_STATUS)0xC001201BL)
     71 #define NDIS_STATUS_TAPI_INVALADDRESSSTATE            ((NDIS_STATUS)0xC001201CL)
     72 #define NDIS_STATUS_TAPI_INVALPARAM                   ((NDIS_STATUS)0xC001201DL)
     73 #define NDIS_STATUS_TAPI_NODEVICE                     ((NDIS_STATUS)0xC001201EL)
     74 #define NDIS_STATUS_TAPI_DISCONNECTMODE_NORMAL        ((NDIS_STATUS)0xC0012020L)
     75 #define NDIS_STATUS_TAPI_DISCONNECTMODE_UNKNOWN       ((NDIS_STATUS)0xC0012021L)
     76 #define NDIS_STATUS_TAPI_DISCONNECTMODE_REJECT        ((NDIS_STATUS)0xC0012022L)
     77 #define NDIS_STATUS_TAPI_DISCONNECTMODE_PICKUP        ((NDIS_STATUS)0xC0012023L)
     78 #define NDIS_STATUS_TAPI_DISCONNECTMODE_FORWARDED     ((NDIS_STATUS)0xC0012024L)
     79 #define NDIS_STATUS_TAPI_DISCONNECTMODE_BUSY          ((NDIS_STATUS)0xC0012025L)
     80 #define NDIS_STATUS_TAPI_DISCONNECTMODE_NOANSWER      ((NDIS_STATUS)0xC0012026L)
     81 #define NDIS_STATUS_TAPI_DISCONNECTMODE_BADADDRESS    ((NDIS_STATUS)0xC0012027L)
     82 #define NDIS_STATUS_TAPI_DISCONNECTMODE_UNREACHABLE   ((NDIS_STATUS)0xC0012028L)
     83 #define NDIS_STATUS_TAPI_DISCONNECTMODE_CONGESTION    ((NDIS_STATUS)0xC0012029L)
     84 #define NDIS_STATUS_TAPI_DISCONNECTMODE_INCOMPATIBLE  ((NDIS_STATUS)0xC001202AL)
     85 #define NDIS_STATUS_TAPI_DISCONNECTMODE_UNAVAIL       ((NDIS_STATUS)0xC001202BL)
     86 #define NDIS_STATUS_TAPI_RECV_DIGIT                   ((NDIS_STATUS)0x40010020L)
     87 
     88 #define LINE_ADDRESSSTATE                 0L
     89 #define LINE_CALLINFO                     1L
     90 #define LINE_CALLSTATE                    2L
     91 #define LINE_CLOSE                        3L
     92 #define LINE_DEVSPECIFIC                  4L
     93 #define LINE_DEVSPECIFICFEATURE           5L
     94 #define LINE_GATHERDIGITS                 6L
     95 #define LINE_GENERATE                     7L
     96 #define LINE_LINEDEVSTATE                 8L
     97 #define LINE_MONITORDIGITS                9L
     98 #define LINE_MONITORMEDIA                 10L
     99 #define LINE_MONITORTONE                  11L
    100 #define LINE_REPLY                        12L
    101 #define LINE_REQUEST                      13L
    102 #define LINE_CREATE                       19L
    103 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
    104 #define LINE_AGENTSPECIFIC                21L
    105 #define LINE_AGENTSTATUS                  22L
    106 #define LINE_APPNEWCALL                   23L
    107 #define LINE_PROXYREQUEST                 24L
    108 #define LINE_REMOVE                       25L
    109 #endif
    110 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020002)
    111 #define LINE_AGENTSESSIONSTATUS           27L
    112 #define LINE_QUEUESTATUS                  28L
    113 #define LINE_AGENTSTATUSEX                29L
    114 #define LINE_GROUPSTATUS                  30L
    115 #define LINE_PROXYSTATUS                  31L
    116 #endif
    117 #if (TAPI_CURRENT_VERSION >= 0x00030000)
    118 #define LINE_APPNEWCALLHUB                32L
    119 #define LINE_CALLHUBCLOSE                 33L
    120 #define LINE_DEVSPECIFICEX                34L
    121 #endif
    122 
    123 #define TSPI_MESSAGE_BASE                 500L
    124 #define LINE_NEWCALL                      TSPI_MESSAGE_BASE
    125 #define LINE_CALLDEVSPECIFIC              (TSPI_MESSAGE_BASE + 1L)
    126 #define STRINGFORMAT_ASCII                0x00000001
    127 #define STRINGFORMAT_DBCS                 0x00000002
    128 #define STRINGFORMAT_UNICODE              0x00000003
    129 #define STRINGFORMAT_BINARY               0x00000004
    130 
    131 #define LINEADDRCAPFLAGS_FWDNUMRINGS      0x00000001
    132 #define LINEADDRCAPFLAGS_PICKUPGROUPID    0x00000002
    133 #define LINEADDRCAPFLAGS_SECURE           0x00000004
    134 #define LINEADDRCAPFLAGS_BLOCKIDDEFAULT   0x00000008
    135 #define LINEADDRCAPFLAGS_BLOCKIDOVERRIDE  0x00000010
    136 #define LINEADDRCAPFLAGS_DIALED           0x00000020
    137 #define LINEADDRCAPFLAGS_ORIGOFFHOOK      0x00000040
    138 #define LINEADDRCAPFLAGS_DESTOFFHOOK      0x00000080
    139 #define LINEADDRCAPFLAGS_FWDCONSULT       0x00000100
    140 #define LINEADDRCAPFLAGS_SETUPCONFNULL    0x00000200
    141 #define LINEADDRCAPFLAGS_AUTORECONNECT    0x00000400
    142 #define LINEADDRCAPFLAGS_COMPLETIONID     0x00000800
    143 #define LINEADDRCAPFLAGS_TRANSFERHELD     0x00001000
    144 #define LINEADDRCAPFLAGS_TRANSFERMAKE     0x00002000
    145 #define LINEADDRCAPFLAGS_CONFERENCEHELD   0x00004000
    146 #define LINEADDRCAPFLAGS_CONFERENCEMAKE   0x00008000
    147 #define LINEADDRCAPFLAGS_PARTIALDIAL      0x00010000
    148 #define LINEADDRCAPFLAGS_FWDSTATUSVALID   0x00020000
    149 #define LINEADDRCAPFLAGS_FWDINTEXTADDR    0x00040000
    150 #define LINEADDRCAPFLAGS_FWDBUSYNAADDR    0x00080000
    151 #define LINEADDRCAPFLAGS_ACCEPTTOALERT    0x00100000
    152 #define LINEADDRCAPFLAGS_CONFDROP         0x00200000
    153 #define LINEADDRCAPFLAGS_PICKUPCALLWAIT   0x00400000
    154 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
    155 #define LINEADDRCAPFLAGS_PREDICTIVEDIALER 0x00800000
    156 #define LINEADDRCAPFLAGS_QUEUE            0x01000000
    157 #define LINEADDRCAPFLAGS_ROUTEPOINT       0x02000000
    158 #define LINEADDRCAPFLAGS_HOLDMAKESNEW     0x04000000
    159 #define LINEADDRCAPFLAGS_NOINTERNALCALLS  0x08000000
    160 #define LINEADDRCAPFLAGS_NOEXTERNALCALLS  0x10000000
    161 #define LINEADDRCAPFLAGS_SETCALLINGID     0x20000000
    162 #endif
    163 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
    164 #define LINEADDRCAPFLAGS_ACDGROUP         0x40000000
    165 #define LINEADDRCAPFLAGS_NOPSTNADDRESSTRANSLATION \
    166                                           0x80000000
    167 #endif
    168 
    169 #define LINEADDRESSMODE_ADDRESSID         0x00000001
    170 #define LINEADDRESSMODE_DIALABLEADDR      0x00000002
    171 #define LINEADDRESSSHARING_PRIVATE        0x00000001
    172 #define LINEADDRESSSHARING_BRIDGEDEXCL    0x00000002
    173 #define LINEADDRESSSHARING_BRIDGEDNEW     0x00000004
    174 #define LINEADDRESSSHARING_BRIDGEDSHARED  0x00000008
    175 #define LINEADDRESSSHARING_MONITORED      0x00000010
    176 #define LINEADDRESSSTATE_OTHER            0x00000001
    177 #define LINEADDRESSSTATE_DEVSPECIFIC      0x00000002
    178 #define LINEADDRESSSTATE_INUSEZERO        0x00000004
    179 #define LINEADDRESSSTATE_INUSEONE         0x00000008
    180 #define LINEADDRESSSTATE_INUSEMANY        0x00000010
    181 #define LINEADDRESSSTATE_NUMCALLS         0x00000020
    182 #define LINEADDRESSSTATE_FORWARD          0x00000040
    183 #define LINEADDRESSSTATE_TERMINALS        0x00000080
    184 
    185 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
    186 #define LINEADDRESSTYPE_PHONENUMBER       0x00000001
    187 #define LINEADDRESSTYPE_SDP               0x00000002
    188 #define LINEADDRESSTYPE_EMAILNAME         0x00000004
    189 #define LINEADDRESSTYPE_DOMAINNAME        0x00000008
    190 #define LINEADDRESSTYPE_IPADDRESS         0x00000010
    191 #endif
    192 
    193 #define LINEADDRFEATURE_FORWARD           0x00000001
    194 #define LINEADDRFEATURE_MAKECALL          0x00000002
    195 #define LINEADDRFEATURE_PICKUP            0x00000004
    196 #define LINEADDRFEATURE_SETMEDIACONTROL   0x00000008
    197 #define LINEADDRFEATURE_SETTERMINAL       0x00000010
    198 #define LINEADDRFEATURE_SETUPCONF         0x00000020
    199 #define LINEADDRFEATURE_UNCOMPLETECALL    0x00000040
    200 #define LINEADDRFEATURE_UNPARK            0x00000080
    201 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
    202 #define LINEADDRFEATURE_PICKUPHELD        0x00000100
    203 #define LINEADDRFEATURE_PICKUPGROUP       0x00000200
    204 #define LINEADDRFEATURE_PICKUPDIRECT      0x00000400
    205 #define LINEADDRFEATURE_PICKUPWAITING     0x00000800
    206 #define LINEADDRFEATURE_FORWARDFWD        0x00001000
    207 #define LINEADDRFEATURE_FORWARDDND        0x00002000
    208 #endif
    209 
    210 #define LINEANSWERMODE_NONE               0x00000001
    211 #define LINEANSWERMODE_DROP               0x00000002
    212 #define LINEANSWERMODE_HOLD               0x00000004
    213 
    214 #define LINEBEARERMODE_VOICE              0x00000001
    215 #define LINEBEARERMODE_SPEECH             0x00000002
    216 #define LINEBEARERMODE_MULTIUSE           0x00000004
    217 #define LINEBEARERMODE_DATA               0x00000008
    218 #define LINEBEARERMODE_ALTSPEECHDATA      0x00000010
    219 #define LINEBEARERMODE_NONCALLSIGNALING   0x00000020
    220 #define LINEBEARERMODE_PASSTHROUGH        0x00000040
    221 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
    222 #define LINEBEARERMODE_RESTRICTEDDATA     0x00000080
    223 #endif
    224 
    225 #define LINEBUSYMODE_STATION              0x00000001
    226 #define LINEBUSYMODE_TRUNK                0x00000002
    227 #define LINEBUSYMODE_UNKNOWN              0x00000004
    228 #define LINEBUSYMODE_UNAVAIL              0x00000008
    229 
    230 #define LINECALLCOMPLCOND_BUSY            0x00000001
    231 #define LINECALLCOMPLCOND_NOANSWER        0x00000002
    232 
    233 #define LINECALLCOMPLMODE_CAMPON          0x00000001
    234 #define LINECALLCOMPLMODE_CALLBACK        0x00000002
    235 #define LINECALLCOMPLMODE_INTRUDE         0x00000004
    236 #define LINECALLCOMPLMODE_MESSAGE         0x00000008
    237 
    238 #define LINECALLFEATURE_ACCEPT            0x00000001
    239 #define LINECALLFEATURE_ADDTOCONF         0x00000002
    240 #define LINECALLFEATURE_ANSWER            0x00000004
    241 #define LINECALLFEATURE_BLINDTRANSFER     0x00000008
    242 #define LINECALLFEATURE_COMPLETECALL      0x00000010
    243 #define LINECALLFEATURE_COMPLETETRANSF    0x00000020
    244 #define LINECALLFEATURE_DIAL              0x00000040
    245 #define LINECALLFEATURE_DROP              0x00000080
    246 #define LINECALLFEATURE_GATHERDIGITS      0x00000100
    247 #define LINECALLFEATURE_GENERATEDIGITS    0x00000200
    248 #define LINECALLFEATURE_GENERATETONE      0x00000400
    249 #define LINECALLFEATURE_HOLD              0x00000800
    250 #define LINECALLFEATURE_MONITORDIGITS     0x00001000
    251 #define LINECALLFEATURE_MONITORMEDIA      0x00002000
    252 #define LINECALLFEATURE_MONITORTONES      0x00004000
    253 #define LINECALLFEATURE_PARK              0x00008000
    254 #define LINECALLFEATURE_PREPAREADDCONF    0x00010000
    255 #define LINECALLFEATURE_REDIRECT          0x00020000
    256 #define LINECALLFEATURE_REMOVEFROMCONF    0x00040000
    257 #define LINECALLFEATURE_SECURECALL        0x00080000
    258 #define LINECALLFEATURE_SENDUSERUSER      0x00100000
    259 #define LINECALLFEATURE_SETCALLPARAMS     0x00200000
    260 #define LINECALLFEATURE_SETMEDIACONTROL   0x00400000
    261 #define LINECALLFEATURE_SETTERMINAL       0x00800000
    262 #define LINECALLFEATURE_SETUPCONF         0x01000000
    263 #define LINECALLFEATURE_SETUPTRANSFER     0x02000000
    264 #define LINECALLFEATURE_SWAPHOLD          0x04000000
    265 #define LINECALLFEATURE_UNHOLD            0x08000000
    266 #define LINECALLFEATURE_RELEASEUSERUSERINFO \
    267                                           0x10000000
    268 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
    269 #define LINECALLFEATURE_SETTREATMENT      0x20000000
    270 #define LINECALLFEATURE_SETQOS            0x40000000
    271 #define LINECALLFEATURE_SETCALLDATA       0x80000000
    272 #endif
    273 
    274 #define LINECALLINFOSTATE_OTHER           0x00000001
    275 #define LINECALLINFOSTATE_DEVSPECIFIC     0x00000002
    276 #define LINECALLINFOSTATE_BEARERMODE      0x00000004
    277 #define LINECALLINFOSTATE_RATE            0x00000008
    278 #define LINECALLINFOSTATE_MEDIAMODE       0x00000010
    279 #define LINECALLINFOSTATE_APPSPECIFIC     0x00000020
    280 #define LINECALLINFOSTATE_CALLID          0x00000040
    281 #define LINECALLINFOSTATE_RELATEDCALLID   0x00000080
    282 #define LINECALLINFOSTATE_ORIGIN          0x00000100
    283 #define LINECALLINFOSTATE_REASON          0x00000200
    284 #define LINECALLINFOSTATE_COMPLETIONID    0x00000400
    285 #define LINECALLINFOSTATE_NUMOWNERINCR    0x00000800
    286 #define LINECALLINFOSTATE_NUMOWNERDECR    0x00001000
    287 #define LINECALLINFOSTATE_NUMMONITORS     0x00002000
    288 #define LINECALLINFOSTATE_TRUNK           0x00004000
    289 #define LINECALLINFOSTATE_CALLERID        0x00008000
    290 #define LINECALLINFOSTATE_CALLEDID        0x00010000
    291 #define LINECALLINFOSTATE_CONNECTEDID     0x00020000
    292 #define LINECALLINFOSTATE_REDIRECTIONID   0x00040000
    293 #define LINECALLINFOSTATE_REDIRECTINGID   0x00080000
    294 #define LINECALLINFOSTATE_DISPLAY         0x00100000
    295 #define LINECALLINFOSTATE_USERUSERINFO    0x00200000
    296 #define LINECALLINFOSTATE_HIGHLEVELCOMP   0x00400000
    297 #define LINECALLINFOSTATE_LOWLEVELCOMP    0x00800000
    298 #define LINECALLINFOSTATE_CHARGINGINFO    0x01000000
    299 #define LINECALLINFOSTATE_TERMINAL        0x02000000
    300 #define LINECALLINFOSTATE_DIALPARAMS      0x04000000
    301 #define LINECALLINFOSTATE_MONITORMODES    0x08000000
    302 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
    303 #define LINECALLINFOSTATE_TREATMENT       0x10000000
    304 #define LINECALLINFOSTATE_QOS             0x20000000
    305 #define LINECALLINFOSTATE_CALLDATA        0x40000000
    306 #endif
    307 
    308 #define LINECALLORIGIN_OUTBOUND           0x00000001
    309 #define LINECALLORIGIN_INTERNAL           0x00000002
    310 #define LINECALLORIGIN_EXTERNAL           0x00000004
    311 #define LINECALLORIGIN_UNKNOWN            0x00000010
    312 #define LINECALLORIGIN_UNAVAIL            0x00000020
    313 #define LINECALLORIGIN_CONFERENCE         0x00000040
    314 #define LINECALLORIGIN_INBOUND            0x00000080
    315 
    316 #define LINECALLPARAMFLAGS_SECURE         0x00000001
    317 #define LINECALLPARAMFLAGS_IDLE           0x00000002
    318 #define LINECALLPARAMFLAGS_BLOCKID        0x00000004
    319 #define LINECALLPARAMFLAGS_ORIGOFFHOOK    0x00000008
    320 #define LINECALLPARAMFLAGS_DESTOFFHOOK    0x00000010
    321 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
    322 #define LINECALLPARAMFLAGS_NOHOLDCONFERENCE \
    323                                           0x00000020
    324 #define LINECALLPARAMFLAGS_PREDICTIVEDIAL 0x00000040
    325 #define LINECALLPARAMFLAGS_ONESTEPTRANSFER \
    326                                           0x00000080
    327 #endif
    328 
    329 #define LINECALLPARTYID_BLOCKED           0x00000001
    330 #define LINECALLPARTYID_OUTOFAREA         0x00000002
    331 #define LINECALLPARTYID_NAME              0x00000004
    332 #define LINECALLPARTYID_ADDRESS           0x00000008
    333 #define LINECALLPARTYID_PARTIAL           0x00000010
    334 #define LINECALLPARTYID_UNKNOWN           0x00000020
    335 #define LINECALLPARTYID_UNAVAIL           0x00000040
    336 
    337 #define LINECALLPRIVILEGE_NONE            0x00000001
    338 #define LINECALLPRIVILEGE_MONITOR         0x00000002
    339 #define LINECALLPRIVILEGE_OWNER           0x00000004
    340 
    341 #define LINECALLREASON_DIRECT             0x00000001
    342 #define LINECALLREASON_FWDBUSY            0x00000002
    343 #define LINECALLREASON_FWDNOANSWER        0x00000004
    344 #define LINECALLREASON_FWDUNCOND          0x00000008
    345 #define LINECALLREASON_PICKUP             0x00000010
    346 #define LINECALLREASON_UNPARK             0x00000020
    347 #define LINECALLREASON_REDIRECT           0x00000040
    348 #define LINECALLREASON_CALLCOMPLETION     0x00000080
    349 #define LINECALLREASON_TRANSFER           0x00000100
    350 #define LINECALLREASON_REMINDER           0x00000200
    351 #define LINECALLREASON_UNKNOWN            0x00000400
    352 #define LINECALLREASON_UNAVAIL            0x00000800
    353 #define LINECALLREASON_INTRUDE            0x00001000
    354 #define LINECALLREASON_PARKED             0x00002000
    355 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
    356 #define LINECALLREASON_CAMPEDON           0x00004000
    357 #define LINECALLREASON_ROUTEREQUEST       0x00008000
    358 #endif
    359 
    360 #define LINECALLSELECT_LINE               0x00000001
    361 #define LINECALLSELECT_ADDRESS            0x00000002
    362 #define LINECALLSELECT_CALL               0x00000004
    363 #if (NDIS_TAPI_CURRENT_VERSION > 0x00020000)
    364 #define LINECALLSELECT_DEVICEID           0x00000008
    365 #endif
    366 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
    367 #define LINECALLSELECT_CALLID             0x00000010
    368 #endif
    369 
    370 #define LINECALLSTATE_IDLE                0x00000001
    371 #define LINECALLSTATE_OFFERING            0x00000002
    372 #define LINECALLSTATE_ACCEPTED            0x00000004
    373 #define LINECALLSTATE_DIALTONE            0x00000008
    374 #define LINECALLSTATE_DIALING             0x00000010
    375 #define LINECALLSTATE_RINGBACK            0x00000020
    376 #define LINECALLSTATE_BUSY                0x00000040
    377 #define LINECALLSTATE_SPECIALINFO         0x00000080
    378 #define LINECALLSTATE_CONNECTED           0x00000100
    379 #define LINECALLSTATE_PROCEEDING          0x00000200
    380 #define LINECALLSTATE_ONHOLD              0x00000400
    381 #define LINECALLSTATE_CONFERENCED         0x00000800
    382 #define LINECALLSTATE_ONHOLDPENDCONF      0x00001000
    383 #define LINECALLSTATE_ONHOLDPENDTRANSFER  0x00002000
    384 #define LINECALLSTATE_DISCONNECTED        0x00004000
    385 #define LINECALLSTATE_UNKNOWN             0x00008000
    386 
    387 #define LINEDEVCAPFLAGS_CROSSADDRCONF     0x00000001
    388 #define LINEDEVCAPFLAGS_HIGHLEVCOMP       0x00000002
    389 #define LINEDEVCAPFLAGS_LOWLEVCOMP        0x00000004
    390 #define LINEDEVCAPFLAGS_MEDIACONTROL      0x00000008
    391 #define LINEDEVCAPFLAGS_MULTIPLEADDR      0x00000010
    392 #define LINEDEVCAPFLAGS_CLOSEDROP         0x00000020
    393 #define LINEDEVCAPFLAGS_DIALBILLING       0x00000040
    394 #define LINEDEVCAPFLAGS_DIALQUIET         0x00000080
    395 #define LINEDEVCAPFLAGS_DIALDIALTONE      0x00000100
    396 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
    397 #define LINEDEVCAPFLAGS_MSP               0x00000200
    398 #define LINEDEVCAPFLAGS_CALLHUB           0x00000400
    399 #define LINEDEVCAPFLAGS_CALLHUBTRACKING   0x00000800
    400 #define LINEDEVCAPFLAGS_PRIVATEOBJECTS    0x00001000
    401 #endif
    402 
    403 #define LINEDEVSTATE_OTHER      0x00000001
    404 #define LINEDEVSTATE_RINGING              0x00000002
    405 #define LINEDEVSTATE_CONNECTED            0x00000004
    406 #define LINEDEVSTATE_DISCONNECTED         0x00000008
    407 #define LINEDEVSTATE_MSGWAITON            0x00000010
    408 #define LINEDEVSTATE_MSGWAITOFF           0x00000020
    409 #define LINEDEVSTATE_INSERVICE            0x00000040
    410 #define LINEDEVSTATE_OUTOFSERVICE         0x00000080
    411 #define LINEDEVSTATE_MAINTENANCE          0x00000100
    412 #define LINEDEVSTATE_OPEN                 0x00000200
    413 #define LINEDEVSTATE_CLOSE                0x00000400
    414 #define LINEDEVSTATE_NUMCALLS             0x00000800
    415 #define LINEDEVSTATE_NUMCOMPLETIONS       0x00001000
    416 #define LINEDEVSTATE_TERMINALS            0x00002000
    417 #define LINEDEVSTATE_ROAMMODE             0x00004000
    418 #define LINEDEVSTATE_BATTERY              0x00008000
    419 #define LINEDEVSTATE_SIGNAL               0x00010000
    420 #define LINEDEVSTATE_DEVSPECIFIC          0x00020000
    421 #define LINEDEVSTATE_REINIT               0x00040000
    422 #define LINEDEVSTATE_LOCK                 0x00080000
    423 
    424 #define LINEDEVSTATUSFLAGS_CONNECTED      0x00000001
    425 #define LINEDEVSTATUSFLAGS_MSGWAIT        0x00000002
    426 #define LINEDEVSTATUSFLAGS_INSERVICE      0x00000004
    427 #define LINEDEVSTATUSFLAGS_LOCKED         0x00000008
    428 
    429 #define LINEDIALTONEMODE_NORMAL           0x00000001
    430 #define LINEDIALTONEMODE_SPECIAL          0x00000002
    431 #define LINEDIALTONEMODE_INTERNAL         0x00000004
    432 #define LINEDIALTONEMODE_EXTERNAL         0x00000008
    433 #define LINEDIALTONEMODE_UNKNOWN          0x00000010
    434 #define LINEDIALTONEMODE_UNAVAIL          0x00000020
    435 
    436 #define LINEDIGITMODE_PULSE               0x00000001
    437 #define LINEDIGITMODE_DTMF                0x00000002
    438 #define LINEDIGITMODE_DTMFEND             0x00000004
    439 
    440 #define LINEDISCONNECTMODE_NORMAL         0x00000001
    441 #define LINEDISCONNECTMODE_UNKNOWN        0x00000002
    442 #define LINEDISCONNECTMODE_REJECT         0x00000004
    443 #define LINEDISCONNECTMODE_PICKUP         0x00000008
    444 #define LINEDISCONNECTMODE_FORWARDED      0x00000010
    445 #define LINEDISCONNECTMODE_BUSY           0x00000020
    446 #define LINEDISCONNECTMODE_NOANSWER       0x00000040
    447 #define LINEDISCONNECTMODE_BADADDRESS     0x00000080
    448 #define LINEDISCONNECTMODE_UNREACHABLE    0x00000100
    449 #define LINEDISCONNECTMODE_CONGESTION     0x00000200
    450 #define LINEDISCONNECTMODE_INCOMPATIBLE   0x00000400
    451 #define LINEDISCONNECTMODE_UNAVAIL        0x00000800
    452 #define LINEDISCONNECTMODE_NODIALTONE     0x00001000
    453 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
    454 #define LINEDISCONNECTMODE_NUMBERCHANGED  0x00002000
    455 #define LINEDISCONNECTMODE_OUTOFORDER     0x00004000
    456 #define LINEDISCONNECTMODE_TEMPFAILURE    0x00008000
    457 #define LINEDISCONNECTMODE_QOSUNAVAIL     0x00010000
    458 #define LINEDISCONNECTMODE_BLOCKED        0x00020000
    459 #define LINEDISCONNECTMODE_DONOTDISTURB   0x00040000
    460 #define LINEDISCONNECTMODE_CANCELLED      0x00080000
    461 #endif
    462 
    463 #define LINEFEATURE_DEVSPECIFIC           0x00000001
    464 #define LINEFEATURE_DEVSPECIFICFEAT       0x00000002
    465 #define LINEFEATURE_FORWARD               0x00000004
    466 #define LINEFEATURE_MAKECALL              0x00000008
    467 #define LINEFEATURE_SETMEDIACONTROL       0x00000010
    468 #define LINEFEATURE_SETTERMINAL           0x00000020
    469 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
    470 #define LINEFEATURE_SETDEVSTATUS          0x00000040
    471 #define LINEFEATURE_FORWARDFWD            0x00000080
    472 #define LINEFEATURE_FORWARDDND            0x00000100
    473 #endif
    474 
    475 #define LINEFORWARDMODE_UNCOND            0x00000001
    476 #define LINEFORWARDMODE_UNCONDINTERNAL    0x00000002
    477 #define LINEFORWARDMODE_UNCONDEXTERNAL    0x00000004
    478 #define LINEFORWARDMODE_UNCONDSPECIFIC    0x00000008
    479 #define LINEFORWARDMODE_BUSY              0x00000010
    480 #define LINEFORWARDMODE_BUSYINTERNAL      0x00000020
    481 #define LINEFORWARDMODE_BUSYEXTERNAL      0x00000040
    482 #define LINEFORWARDMODE_BUSYSPECIFIC      0x00000080
    483 #define LINEFORWARDMODE_NOANSW            0x00000100
    484 #define LINEFORWARDMODE_NOANSWINTERNAL    0x00000200
    485 #define LINEFORWARDMODE_NOANSWEXTERNAL    0x00000400
    486 #define LINEFORWARDMODE_NOANSWSPECIFIC    0x00000800
    487 #define LINEFORWARDMODE_BUSYNA            0x00001000
    488 #define LINEFORWARDMODE_BUSYNAINTERNAL    0x00002000
    489 #define LINEFORWARDMODE_BUSYNAEXTERNAL    0x00004000
    490 #define LINEFORWARDMODE_BUSYNASPECIFIC    0x00008000
    491 
    492 #define LINEGATHERTERM_BUFFERFULL         0x00000001
    493 #define LINEGATHERTERM_TERMDIGIT          0x00000002
    494 #define LINEGATHERTERM_FIRSTTIMEOUT       0x00000004
    495 #define LINEGATHERTERM_INTERTIMEOUT       0x00000008
    496 #define LINEGATHERTERM_CANCEL             0x00000010
    497 
    498 #define LINEGENERATETERM_DONE             0x00000001
    499 #define LINEGENERATETERM_CANCEL           0x00000002
    500 
    501 #define LINEMEDIACONTROL_NONE             0x00000001
    502 #define LINEMEDIACONTROL_START            0x00000002
    503 #define LINEMEDIACONTROL_RESET            0x00000004
    504 #define LINEMEDIACONTROL_PAUSE            0x00000008
    505 #define LINEMEDIACONTROL_RESUME           0x00000010
    506 #define LINEMEDIACONTROL_RATEUP           0x00000020
    507 #define LINEMEDIACONTROL_RATEDOWN         0x00000040
    508 #define LINEMEDIACONTROL_RATENORMAL       0x00000080
    509 #define LINEMEDIACONTROL_VOLUMEUP         0x00000100
    510 #define LINEMEDIACONTROL_VOLUMEDOWN       0x00000200
    511 #define LINEMEDIACONTROL_VOLUMENORMAL     0x00000400
    512 
    513 #define LINEMEDIAMODE_UNKNOWN             0x00000002
    514 #define LINEMEDIAMODE_INTERACTIVEVOICE    0x00000004
    515 #define LINEMEDIAMODE_AUTOMATEDVOICE      0x00000008
    516 #define LINEMEDIAMODE_DATAMODEM           0x00000010
    517 #define LINEMEDIAMODE_G3FAX               0x00000020
    518 #define LINEMEDIAMODE_TDD                 0x00000040
    519 #define LINEMEDIAMODE_G4FAX               0x00000080
    520 #define LINEMEDIAMODE_DIGITALDATA         0x00000100
    521 #define LINEMEDIAMODE_TELETEX             0x00000200
    522 #define LINEMEDIAMODE_VIDEOTEX            0x00000400
    523 #define LINEMEDIAMODE_TELEX               0x00000800
    524 #define LINEMEDIAMODE_MIXED               0x00001000
    525 #define LINEMEDIAMODE_ADSI                0x00002000
    526 
    527 #define LINEMEDIAMODE_VOICEVIEW           0x00004000
    528 #define LAST_LINEMEDIAMODE                0x00004000
    529 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020001)
    530 #define LINEMEDIAMODE_VIDEO               0x00008000
    531 #define LAST_LINEMEDIAMODE                0x00008000
    532 #endif
    533 
    534 #define LINEPARKMODE_DIRECTED             0x00000001
    535 #define LINEPARKMODE_NONDIRECTED          0x00000002
    536 
    537 #define LINEREMOVEFROMCONF_NONE           0x00000001
    538 #define LINEREMOVEFROMCONF_LAST           0x00000002
    539 #define LINEREMOVEFROMCONF_ANY            0x00000003
    540 
    541 #define LINEREQUESTMODE_MAKECALL          0x00000001
    542 #define LINEREQUESTMODE_MEDIACALL         0x00000002
    543 #define LINEREQUESTMODE_DROP              0x00000004
    544 
    545 #define LAST_LINEREQUESTMODE              LINEREQUESTMODE_MEDIACALL
    546 
    547 #define LINEROAMMODE_UNKNOWN              0x00000001
    548 #define LINEROAMMODE_UNAVAIL              0x00000002
    549 #define LINEROAMMODE_HOME                 0x00000004
    550 #define LINEROAMMODE_ROAMA                0x00000008
    551 #define LINEROAMMODE_ROAMB                0x00000010
    552 
    553 #define LINESPECIALINFO_NOCIRCUIT         0x00000001
    554 #define LINESPECIALINFO_CUSTIRREG         0x00000002
    555 #define LINESPECIALINFO_REORDER           0x00000004
    556 #define LINESPECIALINFO_UNKNOWN           0x00000008
    557 #define LINESPECIALINFO_UNAVAIL           0x00000010
    558 
    559 #define LINETERMDEV_PHONE                 0x00000001
    560 #define LINETERMDEV_HEADSET               0x00000002
    561 #define LINETERMDEV_SPEAKER               0x00000004
    562 
    563 #define LINETERMMODE_BUTTONS              0x00000001
    564 #define LINETERMMODE_LAMPS                0x00000002
    565 #define LINETERMMODE_DISPLAY              0x00000004
    566 #define LINETERMMODE_RINGER               0x00000008
    567 #define LINETERMMODE_HOOKSWITCH           0x00000010
    568 #define LINETERMMODE_MEDIATOLINE          0x00000020
    569 #define LINETERMMODE_MEDIAFROMLINE        0x00000040
    570 #define LINETERMMODE_MEDIABIDIRECT        0x00000080
    571 
    572 #define LINETERMSHARING_PRIVATE           0x00000001
    573 #define LINETERMSHARING_SHAREDEXCL        0x00000002
    574 #define LINETERMSHARING_SHAREDCONF        0x00000004
    575 
    576 #define LINETONEMODE_CUSTOM               0x00000001
    577 #define LINETONEMODE_RINGBACK             0x00000002
    578 #define LINETONEMODE_BUSY                 0x00000004
    579 #define LINETONEMODE_BEEP                 0x00000008
    580 #define LINETONEMODE_BILLING              0x00000010
    581 
    582 #define LINETRANSFERMODE_TRANSFER         0x00000001
    583 #define LINETRANSFERMODE_CONFERENCE       0x00000002
    584 
    585 #define LINETOLLLISTOPTION_ADD            0x00000001
    586 #define LINETOLLLISTOPTION_REMOVE         0x00000002
    587 
    588 #define LINETRANSLATEOPTION_CARDOVERRIDE  0x00000001
    589 
    590 #define LINETRANSLATERESULT_CANONICAL     0x00000001
    591 #define LINETRANSLATERESULT_INTERNATIONAL 0x00000002
    592 #define LINETRANSLATERESULT_LONGDISTANCE  0x00000004
    593 #define LINETRANSLATERESULT_LOCAL         0x00000008
    594 #define LINETRANSLATERESULT_INTOLLLIST    0x00000010
    595 #define LINETRANSLATERESULT_NOTINTOLLLIST 0x00000020
    596 #define LINETRANSLATERESULT_DIALBILLING   0x00000040
    597 #define LINETRANSLATERESULT_DIALQUIET     0x00000080
    598 #define LINETRANSLATERESULT_DIALDIALTONE  0x00000100
    599 #define LINETRANSLATERESULT_DIALPROMPT    0x00000200
    600 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00020000)
    601 #define LINETRANSLATERESULT_VOICEDETECT   0x00000400
    602 #endif
    603 
    604 #if (NDIS_TAPI_CURRENT_VERSION >= 0x00030000)
    605 #define LINETRANSLATERESULT_NOTRANSLATION 0x00000800
    606 #endif
    607 
    608 
    609 typedef struct  _NDIS_VAR_DATA_DESC {
    610 	USHORT  Length;
    611 	USHORT  MaximumLength;
    612 	LONG  Offset;
    613 } NDIS_VAR_DATA_DESC, *PNDIS_VAR_DATA_DESC;
    614 
    615 typedef struct _LINE_DIAL_PARAMS {
    616 	ULONG  ulDialPause;
    617 	ULONG  ulDialSpeed;
    618 	ULONG  ulDigitDuration;
    619 	ULONG  ulWaitForDialtone;
    620 } LINE_DIAL_PARAMS, *PLINE_DIAL_PARAMS;
    621 
    622 typedef 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 
    686 typedef 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 
    705 typedef 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 
    795 typedef 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 
    844 typedef 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 
    856 typedef 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 
    925 typedef 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 
    947 typedef struct _LINE_EXTENSION_ID {
    948 	ULONG  ulExtensionID0;
    949 	ULONG  ulExtensionID1;
    950 	ULONG  ulExtensionID2;
    951 	ULONG  ulExtensionID3;
    952 } LINE_EXTENSION_ID, *PLINE_EXTENSION_ID;
    953 
    954 typedef 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 
    963 typedef 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 
    970 typedef struct _NDIS_TAPI_CLOSE {
    971   IN ULONG  ulRequestID;
    972   IN HDRV_LINE  hdLine;
    973 } NDIS_TAPI_CLOSE, *PNDIS_TAPI_CLOSE;
    974 
    975 typedef struct _NDIS_TAPI_CLOSE_CALL {
    976   IN ULONG  ulRequestID;
    977   IN HDRV_CALL  hdCall;
    978 } NDIS_TAPI_CLOSE_CALL, *PNDIS_TAPI_CLOSE_CALL;
    979 
    980 typedef 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 
    987 typedef 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 
    994 typedef struct _NDIS_TAPI_PROVIDER_SHUTDOWN {
    995   IN ULONG  ulRequestID;
    996 } NDIS_TAPI_PROVIDER_SHUTDOWN, *PNDIS_TAPI_PROVIDER_SHUTDOWN;
    997 
    998 typedef 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 
   1004 typedef 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 
   1014 typedef 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 
   1020 typedef 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 
   1029 typedef 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 
   1035 typedef 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 
   1042 typedef 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 
   1049 typedef 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 
   1056 typedef 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 
   1065 typedef 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 
   1072 typedef struct _NDIS_TAPI_SECURE_CALL {
   1073   IN ULONG  ulRequestID;
   1074   IN HDRV_CALL  hdCall;
   1075 } NDIS_TAPI_SECURE_CALL, *PNDIS_TAPI_SECURE_CALL;
   1076 
   1077 typedef 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 
   1083 typedef 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 
   1091 typedef 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 
   1101 typedef 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 
   1110 typedef 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 
   1118 typedef 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 
   1127 typedef 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 
   1134 typedef 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 
   1140 typedef 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 
   1146 typedef 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 
   1152 typedef 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 
   1159 typedef 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 
   1167 typedef 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 
   1173 typedef 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 
   1184 typedef 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 
   1190 typedef 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 
   1201 typedef 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 
   1209 typedef 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 
   1225 typedef 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 
   1235 typedef 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 
   1241 typedef 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 
   1251 typedef 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 
   1257 typedef 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 
   1263 typedef 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 
   1278 typedef 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 
   1287 typedef 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 
   1294 typedef 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 
   1308