QTIoctl.h

Go to the documentation of this file.
00001 /*
00002         QTIoctl.h
00003 
00004         Copyright (c) 1996-1999, Quicknet Technologies, Inc.
00005         All Rights Reserved.
00006 
00007         DeviceIoControl codes for Internet PhoneJACK, LineJACK, etc. drivers.
00008 
00009         -----------------------------------------------------------------
00010 
00011         $Header: /cvsroot/openh323/opal/include/lids/QTIoctl.h,v 2.1 2001/10/04 00:40:31 robertj Exp $
00012 */
00013 
00014 #ifndef _QTIOCTL_H_
00015 #define _QTIOCTL_H_
00016 
00017 //
00018 // The following #defines come from <winioctl.h>.
00019 //
00020 
00021 //
00022 //- Beginning of included from <winioctl.h> section ------------------------------
00023 //
00024 // Macro definition for defining IOCTL and FSCTL function control codes.  Note
00025 // that function codes 0-2047 are reserved for Microsoft Corporation, and
00026 // 2048-4095 are reserved for customers.
00027 //
00028 #undef CTL_CODE
00029 #define CTL_CODE( DeviceType, Function, Method, Access ) (                 \
00030     ((DWORD)(DeviceType) << 16) | ((DWORD)(Access) << 14) | ((DWORD)(Function) << 2) | (DWORD)(Method) \
00031 )
00032 
00033 //
00034 // Define the method codes for how buffers are passed for I/O and FS controls
00035 //
00036 
00037 #define METHOD_BUFFERED                 0
00038 #define METHOD_IN_DIRECT                1
00039 #define METHOD_OUT_DIRECT               2
00040 #define METHOD_NEITHER                  3
00041 
00042 //
00043 // Define the access check value for any access
00044 //
00045 //
00046 // The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in
00047 // ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these
00048 // constants *MUST* always be in sync.
00049 //
00050 
00051 
00052 #define FILE_ANY_ACCESS                 0
00053 #define FILE_READ_ACCESS          ( 0x0001 )    // file & pipe
00054 #define FILE_WRITE_ACCESS         ( 0x0002 )    // file & pipe
00055 
00056 //
00057 //- End of included from <winioctl.h> section ------------------------------
00058 //
00059 
00060 #define FILE_READ_WRITE_ACCESS (FILE_WRITE_ACCESS|FILE_READ_ACCESS)
00061 #define ARG_DWORD       0x400
00062 #define ARG_VOID        0
00063 
00064 #define MASK_DWORD              ( ARG_DWORD << 2 )
00065 #define MASK_VOID               ( ARG_VOID << 2 )
00066 #define MASK_WRITE              ( FILE_WRITE_ACCESS << 14 )
00067 #define MASK_READ               ( FILE_READ_ACCESS << 14 )
00068 #define MASK_READ_WRITE ( FILE_READ_WRITE_ACCESS << 14 )
00069 
00070 #define IoctlTransferType( Code )       (Code & 3)
00071 #define IoctlDeviceType( Code )         ((Code >> 16) & 0xffff)
00072 #define IoctlRequiredAccess( Code )     ((Code & 0xc000)>>14)
00073 #define IoctlControlCode( Code )        ((Code >> 2) & 0x03ff)
00074 #define IoctlFunctionCode( Code )       ((Code >> 2) & 0x0bff)
00075 #define IoctlIsVoidArg( Code )          ((Code & MASK_DWORD) == MASK_VOID)
00076 #define IoctlIsRead( Code )                     ((Code & MASK_READ) == MASK_READ)
00077 #define IoctlIsWrite( Code )            ((Code & MASK_WRITE) == MASK_WRITE)
00078 #define IoctlIsReadWrite( Code )        ((Code & MASK_READ_WRITE) == MASK_READ_WRITE)
00079 #define IoctlHasArgument( Code )        ((Code & (MASK_WRITE|MASK_DWORD))== (MASK_WRITE|MASK_DWORD))
00080 #define IoctlHasBuffer( Code )          ((Code & MASK_READ_WRITE) != 0)
00081 
00082 #ifndef LPVOID
00083 #ifndef FAR
00084 #define FAR
00085 #endif
00086     typedef void FAR * LPVOID;
00087 #endif
00088 
00089 #ifndef DEVNODE
00090 #define DEVNODE DWORD
00091 #endif
00092 
00094 // Win32 device operations
00095 
00096 #define FILE_DEVICE_DEVICE 0x8009
00097 #define DEVICE_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_DEVICE, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00098 
00099 // Function codes
00100 #define IOCTL_Device_Open DEVICE_CODE( 0, FILE_WRITE_ACCESS, ARG_DWORD) // (ARG_DWORD dwSerialNo)
00101 #define IOCTL_Device_Close DEVICE_CODE( 1, FILE_WRITE_ACCESS, ARG_VOID) // (void)
00102 #define IOCTL_Device_Read DEVICE_CODE( 2, FILE_WRITE_ACCESS, ARG_VOID) // (void)
00103 #define IOCTL_Device_Write DEVICE_CODE( 3, FILE_WRITE_ACCESS, ARG_VOID) // (void)
00104 #define IOCTL_Device_CancelIO DEVICE_CODE( 6, FILE_WRITE_ACCESS, ARG_VOID) // (void)
00105 #define IOCTL_Device_GetSerialNumber DEVICE_CODE( 7, FILE_READ_ACCESS, ARG_VOID) // void
00106 #define IOCTL_Device_GetG729Enable DEVICE_CODE( 8, FILE_READ_ACCESS, ARG_VOID) // void
00107 #define IOCTL_Device_SetG729Enable DEVICE_CODE( 9, FILE_WRITE_ACCESS, ARG_DWORD) // (void)
00108 
00109 //==========================================================================
00110 //==========================================================================
00111 //
00112 //      IOCTL and function codes for Quicknet's Internet PhoneJACK and
00113 //      Internet LineJACK cards.
00114 //
00115 //==========================================================================
00116 //--------------------------------------------------------------------------
00117 //      Codec support
00118 //--------------------------------------------------------------------------
00119 //
00120 #define FILE_DEVICE_CODEC               0x8002
00121 
00122 #define CODEC_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_CODEC, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00123 
00124 #define IOCTL_Codec_SetSetRate          CODEC_IOCTL_CODE( 0, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wSetRate)
00125 #define IOCTL_Codec_GetSetRate          CODEC_IOCTL_CODE( 1, FILE_READ_ACCESS, ARG_VOID)                // (void)
00126 #define IOCTL_Codec_SetINPUT_CODEC      CODEC_IOCTL_CODE( 2, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)
00127 #define IOCTL_Codec_GetINPUT_CODEC      CODEC_IOCTL_CODE( 3, FILE_READ_ACCESS, ARG_VOID)                // (void)
00128 #define IOCTL_Codec_SetOUTPUT_CODEC     CODEC_IOCTL_CODE( 4, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)
00129 #define IOCTL_Codec_GetOUTPUT_CODEC     CODEC_IOCTL_CODE( 5, FILE_READ_ACCESS, ARG_VOID)                // (void)
00130 #define IOCTL_Codec_SetLong                     CODEC_IOCTL_CODE( 6, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)
00131 #define IOCTL_Codec_GetLong                     CODEC_IOCTL_CODE( 7, FILE_READ_ACCESS, ARG_VOID)                // (void)
00132 #define IOCTL_Codec_SetMaster           CODEC_IOCTL_CODE( 8, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)
00133 #define IOCTL_Codec_GetMaster           CODEC_IOCTL_CODE( 9, FILE_READ_ACCESS, ARG_VOID)                // (void)
00134 #define IOCTL_Codec_SetLaw                      CODEC_IOCTL_CODE( 10, FILE_READ_WRITE_ACCESS, ARG_DWORD)        // (WORD wData)
00135 #define IOCTL_Codec_GetLaw                      CODEC_IOCTL_CODE( 11, FILE_READ_ACCESS, ARG_VOID)               // (void)
00136 #define IOCTL_Codec_SetWidth            CODEC_IOCTL_CODE( 12, FILE_READ_WRITE_ACCESS, ARG_DWORD)        // (WORD wData)
00137 #define IOCTL_Codec_GetWidth            CODEC_IOCTL_CODE( 13, FILE_READ_ACCESS, ARG_VOID)               // (void)
00138 #define IOCTL_Codec_SetCO_RATE          CODEC_IOCTL_CODE( 14, FILE_READ_WRITE_ACCESS, ARG_DWORD)        // (WORD wData)
00139 #define IOCTL_Codec_GetCO_RATE          CODEC_IOCTL_CODE( 15, FILE_READ_ACCESS, ARG_VOID)               // (void)
00140 #define IOCTL_Codec_SetFSYNC_RATE       CODEC_IOCTL_CODE( 16, FILE_READ_WRITE_ACCESS, ARG_DWORD)        // (WORD wData)
00141 #define IOCTL_Codec_GetFSYNC_RATE       CODEC_IOCTL_CODE( 17, FILE_READ_ACCESS, ARG_VOID)               // (void)
00142 #define IOCTL_Codec_SetWIDE                     CODEC_IOCTL_CODE( 18, FILE_READ_WRITE_ACCESS, ARG_DWORD)        // (WORD wData)
00143 #define IOCTL_Codec_GetWIDE                     CODEC_IOCTL_CODE( 19, FILE_READ_ACCESS, ARG_VOID)               // (void)
00144 #define IOCTL_Codec_Loopback            CODEC_IOCTL_CODE( 20, FILE_READ_ACCESS, ARG_VOID)               // (void)
00145 #define IOCTL_Codec_SetKHz                      CODEC_IOCTL_CODE( 23, FILE_READ_WRITE_ACCESS, ARG_DWORD)        // (WORD wData)
00146 #define IOCTL_Codec_GetKHz                      CODEC_IOCTL_CODE( 24, FILE_READ_ACCESS, ARG_VOID)               // (void)
00147 #define IOCTL_Codec_SetLegacyKHz        CODEC_IOCTL_CODE( 25, FILE_READ_WRITE_ACCESS, ARG_DWORD)        // (WORD wData)
00148 #define IOCTL_Codec_GetLegacyKHz        CODEC_IOCTL_CODE( 26, FILE_READ_ACCESS, ARG_VOID)               // (void)
00149 #define IOCTL_Codec_SetChannels         CODEC_IOCTL_CODE( 27, FILE_READ_WRITE_ACCESS, ARG_DWORD)        // (WORD wData)
00150 #define IOCTL_Codec_GetChannels         CODEC_IOCTL_CODE( 28, FILE_READ_ACCESS, ARG_VOID)               // (void)
00151 
00152 #define fnCodec_SetSetRate                      IOCTL_Codec_SetSetRate 
00153 #define fnCodec_GetSetRate                      IOCTL_Codec_GetSetRate 
00154 #define fnCodec_SetINPUT_CODEC          IOCTL_Codec_SetINPUT_CODEC 
00155 #define fnCodec_GetINPUT_CODEC          IOCTL_Codec_GetINPUT_CODEC 
00156 #define fnCodec_SetOUTPUT_CODEC         IOCTL_Codec_SetOUTPUT_CODEC 
00157 #define fnCodec_GetOUTPUT_CODEC         IOCTL_Codec_GetOUTPUT_CODEC 
00158 #define fnCodec_SetLong                         IOCTL_Codec_SetLong 
00159 #define fnCodec_GetLong                         IOCTL_Codec_GetLong 
00160 #define fnCodec_SetMaster                       IOCTL_Codec_SetMaster 
00161 #define fnCodec_GetMaster                       IOCTL_Codec_GetMaster 
00162 #define fnCodec_SetLaw                          IOCTL_Codec_SetLaw 
00163 #define fnCodec_GetLaw                          IOCTL_Codec_GetLaw 
00164 #define fnCodec_SetWidth                        IOCTL_Codec_SetWidth 
00165 #define fnCodec_GetWidth                        IOCTL_Codec_GetWidth 
00166 #define fnCodec_SetCO_RATE                      IOCTL_Codec_SetCO_RATE 
00167 #define fnCodec_GetCO_RATE                      IOCTL_Codec_GetCO_RATE 
00168 #define fnCodec_SetFSYNC_RATE           IOCTL_Codec_SetFSYNC_RATE 
00169 #define fnCodec_GetFSYNC_RATE           IOCTL_Codec_GetFSYNC_RATE 
00170 #define fnCodec_SetWIDE                         IOCTL_Codec_SetWIDE 
00171 #define fnCodec_GetWIDE                         IOCTL_Codec_GetWIDE 
00172 #define fnCodec_Loopback                        IOCTL_Codec_Loopback 
00173 #define fnCodec_SetKHz                          IOCTL_Codec_SetKHz 
00174 #define fnCodec_GetKHz                          IOCTL_Codec_GetKHz 
00175 #define fnCodec_SetLegacyKHz            IOCTL_Codec_SetLegacyKHz        
00176 #define fnCodec_GetLegacyKHz            IOCTL_Codec_GetLegacyKHz        
00177 #define fnCodec_SetChannels                     IOCTL_Codec_SetChannels 
00178 #define fnCodec_GetChannels                     IOCTL_Codec_GetChannels 
00179 
00180 //==========================================================================
00181 //--------------------------------------------------------------------------
00182 //      Compression/Decompression support
00183 //--------------------------------------------------------------------------
00184 //
00185 #define FILE_DEVICE_COMPRESS 0x8008
00186 
00187 #define COMPRESS_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_COMPRESS, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00188 
00189 #define IOCTL_Compress_Start            COMPRESS_IOCTL_CODE( 0, FILE_WRITE_ACCESS, ARG_VOID) // (void)
00190 #define IOCTL_Compress_Continue         COMPRESS_IOCTL_CODE( 1, FILE_WRITE_ACCESS, ARG_VOID) // (void)
00191 #define IOCTL_Compress_Stop                     COMPRESS_IOCTL_CODE( 2, FILE_WRITE_ACCESS, ARG_VOID) // (void)
00192 #define IOCTL_Compress_SetRate          COMPRESS_IOCTL_CODE( 3, FILE_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00193 #define IOCTL_Compress_GetRate          COMPRESS_IOCTL_CODE( 4, FILE_READ_ACCESS, ARG_VOID) // (void)
00194 #define IOCTL_Compress_SetTFRMode       COMPRESS_IOCTL_CODE( 5, FILE_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00195 #define IOCTL_Compress_GetTFRMode       COMPRESS_IOCTL_CODE( 6, FILE_READ_ACCESS, ARG_VOID) // (void)
00196 #define IOCTL_Decompress_Start          COMPRESS_IOCTL_CODE( 7, FILE_WRITE_ACCESS, ARG_VOID) // (void)
00197 #define IOCTL_Decompress_Continue       COMPRESS_IOCTL_CODE( 8, FILE_WRITE_ACCESS, ARG_VOID) // (void)
00198 #define IOCTL_Decompress_Stop           COMPRESS_IOCTL_CODE( 9, FILE_WRITE_ACCESS, ARG_VOID) // (void)
00199 #define IOCTL_Decompress_SetRate        COMPRESS_IOCTL_CODE( 10, FILE_WRITE_ACCESS, ARG_VOID) // (ARG_DWORD wNew)
00200 #define IOCTL_Decompress_GetRate        COMPRESS_IOCTL_CODE( 11, FILE_READ_ACCESS, ARG_VOID) // (void)
00201 #define IOCTL_Decompress_SetTFRMode     COMPRESS_IOCTL_CODE( 12, FILE_WRITE_ACCESS, ARG_VOID) // (ARG_DWORD wNew)
00202 #define IOCTL_Decompress_GetTFRMode     COMPRESS_IOCTL_CODE( 13, FILE_READ_ACCESS, ARG_VOID) // (void)
00203 
00204 #define fnCompress_Start                        IOCTL_Compress_Start 
00205 #define fnCompress_Continue                     IOCTL_Compress_Continue 
00206 #define fnCompress_Stop                         IOCTL_Compress_Stop 
00207 #define fnCompress_SetRate                      IOCTL_Compress_SetRate 
00208 #define fnCompress_GetRate                      IOCTL_Compress_GetRate 
00209 #define fnCompress_SetTFRMode           IOCTL_Compress_SetTFRMode 
00210 #define fnCompress_GetTFRMode           IOCTL_Compress_GetTFRMode 
00211 #define fnDecompress_Start                      IOCTL_Decompress_Start 
00212 #define fnDecompress_Continue           IOCTL_Decompress_Continue 
00213 #define fnDecompress_Stop                       IOCTL_Decompress_Stop 
00214 #define fnDecompress_SetRate            IOCTL_Decompress_SetRate 
00215 #define fnDecompress_GetRate            IOCTL_Decompress_GetRate 
00216 #define fnDecompress_SetTFRMode         IOCTL_Decompress_SetTFRMode 
00217 #define fnDecompress_GetTFRMode         IOCTL_Decompress_GetTFRMode 
00218 
00219 //==========================================================================
00220 //--------------------------------------------------------------------------
00221 //      Device support
00222 //--------------------------------------------------------------------------
00223 //
00224 #define FILE_DEVICE_DEVCTRL 0x8007
00225 
00226 #define DEVCTRL_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_DEVCTRL, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00227 
00228 #define IOCTL_DevCtrl_CheckROM                          DEVCTRL_IOCTL_CODE( 0, FILE_READ_ACCESS, ARG_VOID)      // (void)
00229 #define IOCTL_DevCtrl_TestSRAM                          DEVCTRL_IOCTL_CODE( 1, FILE_READ_ACCESS, ARG_VOID)      // (void)
00230 #define IOCTL_DevCtrl_SRAM8Bit                          DEVCTRL_IOCTL_CODE( 2, FILE_READ_ACCESS, ARG_VOID)      // (void)
00231 #define IOCTL_DevCtrl_SRAM16Bit                         DEVCTRL_IOCTL_CODE( 3, FILE_READ_ACCESS, ARG_VOID)      // (void)
00232 #define IOCTL_DevCtrl_GetIdCode                         DEVCTRL_IOCTL_CODE( 4, FILE_READ_ACCESS, ARG_VOID)      // (void)
00233 #define IOCTL_DevCtrl_GetVersionCode            DEVCTRL_IOCTL_CODE( 5, FILE_READ_ACCESS, ARG_VOID)      // (void)
00234 #define IOCTL_DevCtrl_TestCountMode                     DEVCTRL_IOCTL_CODE( 6, FILE_READ_ACCESS, ARG_VOID)      // (void)
00235 #define IOCTL_DevCtrl_TestDigitalMilliwatt      DEVCTRL_IOCTL_CODE( 7, FILE_READ_ACCESS, ARG_VOID)      // (void)
00236 #define IOCTL_DevCtrl_TestLoopback                      DEVCTRL_IOCTL_CODE( 8, FILE_READ_ACCESS, ARG_VOID)      // (void)
00237 #define IOCTL_DevCtrl_TestExit                          DEVCTRL_IOCTL_CODE( 9, FILE_READ_ACCESS, ARG_VOID)      // (void)
00238 #define IOCTL_DevCtrl_Slowdown                          DEVCTRL_IOCTL_CODE( 10, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (WORD)
00239 #define IOCTL_DevCtrl_GPIODirection                     DEVCTRL_IOCTL_CODE( 11, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (WORD)
00240 #define IOCTL_DevCtrl_GPIOWrite                         DEVCTRL_IOCTL_CODE( 12, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (WORD)
00241 #define IOCTL_DevCtrl_GPIORead                          DEVCTRL_IOCTL_CODE( 13, FILE_READ_ACCESS, ARG_VOID)     // (void)
00242 #define IOCTL_DevCtrl_EnableFR                          DEVCTRL_IOCTL_CODE( 14, FILE_READ_ACCESS, ARG_VOID)     // (void)
00243 #define IOCTL_DevCtrl_DisableFR                         DEVCTRL_IOCTL_CODE( 15, FILE_READ_ACCESS, ARG_VOID)     // (void)
00244 #define IOCTL_DevCtrl_ClearFR                           DEVCTRL_IOCTL_CODE( 16, FILE_READ_ACCESS, ARG_VOID)     // (void)
00245 #define IOCTL_DevCtrl_ReadFR                            DEVCTRL_IOCTL_CODE( 17, FILE_READ_ACCESS, ARG_VOID)     // (void)
00246 #define IOCTL_DevCtrl_SetAnalogSource           DEVCTRL_IOCTL_CODE( 18, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (WORD)
00247 #define IOCTL_DevCtrl_GetAnalogSource           DEVCTRL_IOCTL_CODE( 19, FILE_READ_ACCESS, ARG_VOID)     // (void)
00248 #define IOCTL_DevCtrl_SetSLICState                      DEVCTRL_IOCTL_CODE( 20, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (WORD)
00249 #define IOCTL_DevCtrl_GetSLICState                      DEVCTRL_IOCTL_CODE( 21, FILE_READ_ACCESS, ARG_VOID)     // (void)
00250 #define IOCTL_DevCtrl_ReadHookState                     DEVCTRL_IOCTL_CODE( 22, FILE_READ_ACCESS, ARG_VOID)     // (void)
00251 #define IOCTL_DevCtrl_GetOnHook                         DEVCTRL_IOCTL_CODE( 23, FILE_READ_ACCESS, ARG_VOID)     // (void)
00252 #define IOCTL_DevCtrl_SetRingPattern            DEVCTRL_IOCTL_CODE( 24, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (WORD)
00253 #define IOCTL_DevCtrl_SetLineJackMode           DEVCTRL_IOCTL_CODE( 25, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (WORD)
00254 #define IOCTL_DevCtrl_GetLineJackMode           DEVCTRL_IOCTL_CODE( 26, FILE_READ_ACCESS, ARG_VOID)     // (void)
00255 #define IOCTL_DevCtrl_LineSetOnHook                     DEVCTRL_IOCTL_CODE( 27, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (WORD)
00256 #define IOCTL_DevCtrl_LineGetRinging            DEVCTRL_IOCTL_CODE( 28, FILE_READ_ACCESS, ARG_VOID)     // (void)
00257 #define IOCTL_DevCtrl_SetPotsToSlic                     DEVCTRL_IOCTL_CODE( 29, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (WORD)
00258 #define IOCTL_DevCtrl_GetPotsToSlic                     DEVCTRL_IOCTL_CODE( 30, FILE_READ_ACCESS, ARG_VOID)     // (void)
00259 #define IOCTL_DevCtrl_GetLineOnHook                     DEVCTRL_IOCTL_CODE( 31, FILE_READ_ACCESS, ARG_VOID)     // (void)
00260 #define IOCTL_DevCtrl_GetLineCallerOnHook       DEVCTRL_IOCTL_CODE( 32, FILE_READ_ACCESS, ARG_VOID)     // (void)
00261 #define IOCTL_DevCtrl_GetLinePhoneOnHook        DEVCTRL_IOCTL_CODE( 33, FILE_READ_ACCESS, ARG_VOID)     // (void)
00262 #define IOCTL_DevCtrl_SetSpeaker                        DEVCTRL_IOCTL_CODE( 34, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (WORD)
00263 #define IOCTL_DevCtrl_GetLineTestResult         DEVCTRL_IOCTL_CODE( 35, FILE_READ_ACCESS, ARG_VOID)     // (void)
00264 #define IOCTL_DevCtrl_LineTest                          DEVCTRL_IOCTL_CODE( 36, FILE_READ_WRITE_ACCESS, ARG_VOID)       // (void)
00265 #define IOCTL_DevCtrl_Wink                                      DEVCTRL_IOCTL_CODE( 37, FILE_READ_WRITE_ACCESS, ARG_VOID)       // (void)
00266 #define IOCTL_DevCtrl_Flash                                     DEVCTRL_IOCTL_CODE( 38, FILE_READ_WRITE_ACCESS, ARG_VOID)       // (void)
00267 #define IOCTL_DevCtrl_LineGetCallerID           DEVCTRL_IOCTL_CODE( 39, FILE_READ_ACCESS, ARG_VOID)     // char* returned in input buffer
00268 #define IOCTL_DevCtrl_GetAttachedDevices        DEVCTRL_IOCTL_CODE( 40, FILE_READ_ACCESS, ARG_VOID)     // (void)
00269 #define IOCTL_DevCtrl_GetFlashState                     DEVCTRL_IOCTL_CODE( 41, FILE_READ_ACCESS, ARG_VOID)     // (void)
00270 #define IOCTL_DevCtrl_GetCoefficientGroup       DEVCTRL_IOCTL_CODE( 42, FILE_READ_ACCESS, ARG_VOID)     // (void)
00271 #define IOCTL_DevCtrl_SetCoefficientGroup       DEVCTRL_IOCTL_CODE( 43, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00272 #define IOCTL_DevCtrl_GetPhoneType                      DEVCTRL_IOCTL_CODE( 44, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00273 #define IOCTL_DevCtrl_SetPhoneType                      DEVCTRL_IOCTL_CODE( 45, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00274 #define IOCTL_DevCtrl_SetRingCadence            DEVCTRL_IOCTL_CODE( 46, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00275 #define IOCTL_DevCtrl_SetWinkGenTime            DEVCTRL_IOCTL_CODE( 47, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00276 #define IOCTL_DevCtrl_GetWinkGenTime            DEVCTRL_IOCTL_CODE( 48, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00277 #define IOCTL_DevCtrl_SetFlashDetTime           DEVCTRL_IOCTL_CODE( 49, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00278 #define IOCTL_DevCtrl_GetFlashDetTime           DEVCTRL_IOCTL_CODE( 50, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00279 #define IOCTL_DevCtrl_SetLineFlashGenTime       DEVCTRL_IOCTL_CODE( 51, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00280 #define IOCTL_DevCtrl_GetLineFlashGenTime       DEVCTRL_IOCTL_CODE( 52, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00281 #define IOCTL_DevCtrl_SetLineWinkDetTime        DEVCTRL_IOCTL_CODE( 53, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00282 #define IOCTL_DevCtrl_GetLineWinkDetTime        DEVCTRL_IOCTL_CODE( 54, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00283 #define IOCTL_DevCtrl_SetAutoPhoneHookSwitch    DEVCTRL_IOCTL_CODE( 55, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00284 #define IOCTL_DevCtrl_GetAutoPhoneHookSwitch    DEVCTRL_IOCTL_CODE( 56, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00285 #define IOCTL_DevCtrl_SetLEDState                       DEVCTRL_IOCTL_CODE( 57, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (DWORD)
00286 #define IOCTL_DevCtrl_GetLEDState                       DEVCTRL_IOCTL_CODE( 58, FILE_READ_WRITE_ACCESS, ARG_VOID)       // (void)
00287 
00288 #define fnDevCtrl_CheckROM                              IOCTL_DevCtrl_CheckROM 
00289 #define fnDevCtrl_TestSRAM                              IOCTL_DevCtrl_TestSRAM 
00290 #define fnDevCtrl_SRAM8Bit                              IOCTL_DevCtrl_SRAM8Bit 
00291 #define fnDevCtrl_SRAM16Bit                             IOCTL_DevCtrl_SRAM16Bit 
00292 #define fnDevCtrl_GetIdCode                             IOCTL_DevCtrl_GetIdCode 
00293 #define fnDevCtrl_GetVersionCode                IOCTL_DevCtrl_GetVersionCode 
00294 #define fnDevCtrl_TestCountMode                 IOCTL_DevCtrl_TestCountMode 
00295 #define fnDevCtrl_TestDigitalMilliwatt  IOCTL_DevCtrl_TestDigitalMilliwatt 
00296 #define fnDevCtrl_TestLoopback                  IOCTL_DevCtrl_TestLoopback 
00297 #define fnDevCtrl_TestExit                              IOCTL_DevCtrl_TestExit 
00298 #define fnDevCtrl_Slowdown                              IOCTL_DevCtrl_Slowdown 
00299 #define fnDevCtrl_GPIODirection                 IOCTL_DevCtrl_GPIODirection 
00300 #define fnDevCtrl_GPIOWrite                             IOCTL_DevCtrl_GPIOWrite 
00301 #define fnDevCtrl_GPIORead                              IOCTL_DevCtrl_GPIORead 
00302 #define fnDevCtrl_EnableFR                              IOCTL_DevCtrl_EnableFR 
00303 #define fnDevCtrl_DisableFR                             IOCTL_DevCtrl_DisableFR 
00304 #define fnDevCtrl_ClearFR                               IOCTL_DevCtrl_ClearFR 
00305 #define fnDevCtrl_ReadFR                                IOCTL_DevCtrl_ReadFR 
00306 #define fnDevCtrl_SetAnalogSource               IOCTL_DevCtrl_SetAnalogSource 
00307 #define fnDevCtrl_GetAnalogSource               IOCTL_DevCtrl_GetAnalogSource 
00308 #define fnDevCtrl_SetSLICState                  IOCTL_DevCtrl_SetSLICState 
00309 #define fnDevCtrl_GetSLICState                  IOCTL_DevCtrl_GetSLICState 
00310 #define fnDevCtrl_ReadHookState                 IOCTL_DevCtrl_ReadHookState 
00311 #define fnDevCtrl_GetOnHook                             IOCTL_DevCtrl_GetOnHook 
00312 #define fnDevCtrl_SetRingPattern                IOCTL_DevCtrl_SetRingPattern 
00313 #define fnDevCtrl_SetLineJackMode               IOCTL_DevCtrl_SetLineJackMode 
00314 #define fnDevCtrl_GetLineJackMode               IOCTL_DevCtrl_GetLineJackMode 
00315 #define fnDevCtrl_LineSetOnHook                 IOCTL_DevCtrl_LineSetOnHook 
00316 #define fnDevCtrl_LineGetRinging                IOCTL_DevCtrl_LineGetRinging 
00317 #define fnDevCtrl_SetPotsToSlic                 IOCTL_DevCtrl_SetPotsToSlic
00318 #define fnDevCtrl_GetPotsToSlic                 IOCTL_DevCtrl_GetPotsToSlic
00319 #define fnDevCtrl_GetLineOnHook                 IOCTL_DevCtrl_GetLineOnHook
00320 #define fnDevCtrl_GetLineCallerOnHook   IOCTL_DevCtrl_GetLineCallerOnHook
00321 #define fnDevCtrl_GetLinePhoneOnHook    IOCTL_DevCtrl_GetLinePhoneOnHook
00322 #define fnDevCtrl_SetSpeaker                    IOCTL_DevCtrl_SetSpeaker
00323 #define fnDevCtrl_GetLineTestResult             IOCTL_DevCtrl_GetLineTestResult
00324 #define fnDevCtrl_LineTest                              IOCTL_DevCtrl_LineTest
00325 #define fnDevCtrl_Wink                                  IOCTL_DevCtrl_Wink
00326 #define fnDevCtrl_Flash                                 IOCTL_DevCtrl_Flash
00327 #define fnDevCtrl_LineGetCallerID               IOCTL_DevCtrl_LineGetCallerID
00328 #define fnDevCtrl_GetAttachedDevices    IOCTL_DevCtrl_GetAttachedDevices
00329 #define fnDevCtrl_GetFlashState                 IOCTL_DevCtrl_GetFlashState
00330 #define fnDevCtrl_GetCoefficientGroup   IOCTL_DevCtrl_GetCoefficientGroup
00331 #define fnDevCtrl_SetCoefficientGroup   IOCTL_DevCtrl_SetCoefficientGroup
00332 #define fnDevCtrl_GetPhoneType                  IOCTL_DevCtrl_GetPhoneType
00333 #define fnDevCtrl_SetPhoneType                  IOCTL_DevCtrl_SetPhoneType
00334 #define fnDevCtrl_SetRingCadence                IOCTL_DevCtrl_SetRingCadence
00335 #define fnDevCtrl_SetWinkGenTime                IOCTL_DevCtrl_SetWinkGenTime
00336 #define fnDevCtrl_GetWinkGenTime                IOCTL_DevCtrl_GetWinkGenTime
00337 #define fnDevCtrl_SetFlashDetTime               IOCTL_DevCtrl_SetFlashDetTime
00338 #define fnDevCtrl_GetFlashDetTime               IOCTL_DevCtrl_GetFlashDetTime
00339 #define fnDevCtrl_SetLineFlashGenTime   IOCTL_DevCtrl_SetLineFlashGenTime
00340 #define fnDevCtrl_GetLineFlashGenTime   IOCTL_DevCtrl_GetLineFlashGenTime
00341 #define fnDevCtrl_SetLineWinkDetTime    IOCTL_DevCtrl_SetLineWinkDetTime
00342 #define fnDevCtrl_GetLineWinkDetTime    IOCTL_DevCtrl_GetLineWinkDetTime
00343 #define fnDevCtrl_SetAutoPhoneHookSwitch        IOCTL_DevCtrl_SetAutoPhoneHookSwitch
00344 #define fnDevCtrl_GetAutoPhoneHookSwitch        IOCTL_DevCtrl_GetAutoPhoneHookSwitch
00345 #define fnDevCtrl_SetLEDState                   IOCTL_DevCtrl_SetLEDState
00346 #define fnDevCtrl_GetLEDState                   IOCTL_DevCtrl_GetLEDState
00347 
00348 //==========================================================================
00349 //--------------------------------------------------------------------------
00350 //      Filter support
00351 //--------------------------------------------------------------------------
00352 //
00353 #define FILE_DEVICE_FILTER 0x8006
00354 
00355 #define FILTER_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_FILTER, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00356 
00357 #define IOCTL_Filter_SetFilterModeSync  FILTER_IOCTL_CODE( 0, FILE_READ_WRITE_ACCESS, ARG_DWORD)        // (WORD wNew)
00358 #define IOCTL_Filter_SetFilterModeAsync FILTER_IOCTL_CODE( 1, FILE_READ_WRITE_ACCESS, ARG_DWORD)        // (WORD wNew)
00359 #define IOCTL_Filter_GetFilterMode              FILTER_IOCTL_CODE( 2, FILE_READ_ACCESS, ARG_VOID)       // (void)
00360 #define IOCTL_Filter_EnableDTMFDetect   FILTER_IOCTL_CODE( 3, FILE_READ_ACCESS, ARG_VOID)       // (void)
00361 #define IOCTL_Filter_DisableDTMFDetect  FILTER_IOCTL_CODE( 4, FILE_READ_ACCESS, ARG_VOID)       // (void)
00362 #define IOCTL_Filter_IsDTMFValid                FILTER_IOCTL_CODE( 5, FILE_READ_ACCESS, ARG_VOID)       // (void)
00363 #define IOCTL_Filter_GetDTMFDigit               FILTER_IOCTL_CODE( 6, FILE_READ_ACCESS, ARG_VOID)       // (void)
00364 #define IOCTL_Filter_GetFrameCount              FILTER_IOCTL_CODE( 7, FILE_READ_ACCESS, ARG_VOID)       // (void)
00365 #define IOCTL_Filter_IsCPFValid                 FILTER_IOCTL_CODE( 8, FILE_READ_ACCESS, ARG_VOID)       // (void)
00366 #define IOCTL_Filter_SetFilterPrescaler FILTER_IOCTL_CODE( 9, FILE_READ_WRITE_ACCESS, ARG_DWORD)        // (WORD wScale )
00367 #define IOCTL_Filter_GetFilterPrescaler FILTER_IOCTL_CODE( 10, FILE_READ_ACCESS, ARG_VOID)      // (void)
00368 #define IOCTL_Filter_LineMonitor                FILTER_IOCTL_CODE( 11, FILE_READ_ACCESS, ARG_VOID)      // (void)
00369 #define IOCTL_Filter_ProgramFilter              FILTER_IOCTL_CODE( 12, FILE_READ_ACCESS, ARG_VOID)      // (void)
00370 #define IOCTL_Filter_EnableFilter               FILTER_IOCTL_CODE( 13, FILE_READ_ACCESS, ARG_VOID)      // (void)
00371 #define IOCTL_Filter_DisableFilter              FILTER_IOCTL_CODE( 14, FILE_READ_ACCESS, ARG_VOID)      // (void)
00372 #define IOCTL_Filter_DetectToneCadence  FILTER_IOCTL_CODE( 15, FILE_READ_ACCESS, ARG_VOID)      // (void)
00373 #define IOCTL_Filter_StopDetectToneCadence      FILTER_IOCTL_CODE( 16, FILE_READ_ACCESS, ARG_VOID)      // (void)
00374 #define IOCTL_Filter_IsToneCadenceValid FILTER_IOCTL_CODE( 17, FILE_READ_ACCESS, ARG_VOID)      // (void)
00375 
00376 #define fnFilter_SetFilterModeSync              IOCTL_Filter_SetFilterModeSync
00377 #define fnFilter_SetFilterModeAsync             IOCTL_Filter_SetFilterModeAsync
00378 #define fnFilter_GetFilterMode                  IOCTL_Filter_GetFilterMode
00379 #define fnFilter_EnableDTMFDetect               IOCTL_Filter_EnableDTMFDetect
00380 #define fnFilter_DisableDTMFDetect              IOCTL_Filter_DisableDTMFDetect
00381 #define fnFilter_IsDTMFValid                    IOCTL_Filter_IsDTMFValid
00382 #define fnFilter_GetDTMFDigit                   IOCTL_Filter_GetDTMFDigit
00383 #define fnFilter_GetFrameCount                  IOCTL_Filter_GetFrameCount
00384 #define fnFilter_IsCPFValid                             IOCTL_Filter_IsCPFValid
00385 #define fnFilter_SetFilterPrescaler             IOCTL_Filter_SetFilterPrescaler
00386 #define fnFilter_GetFilterPrescaler             IOCTL_Filter_GetFilterPrescaler
00387 #define fnFilter_LineMonitor                    IOCTL_Filter_LineMonitor
00388 #define fnFilter_ProgramFilter                  IOCTL_Filter_ProgramFilter
00389 #define fnFilter_EnableFilter                   IOCTL_Filter_EnableFilter
00390 #define fnFilter_DisableFilter                  IOCTL_Filter_DisableFilter
00391 #define fnFilter_DetectToneCadence              IOCTL_Filter_DetectToneCadence
00392 #define fnFilter_StopDetectToneCadence  IOCTL_Filter_StopDetectToneCadence
00393 #define fnFilter_IsToneCadenceValid             IOCTL_Filter_IsToneCadenceValid
00394 
00395 //==========================================================================
00396 //--------------------------------------------------------------------------
00397 //      Idle support
00398 //--------------------------------------------------------------------------
00399 //
00400 #define FILE_DEVICE_IDLE        0x8000
00401 
00402 #define IDLE_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_IDLE, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00403 
00404 #define IOCTL_Idle_Idle                         IDLE_IOCTL_CODE( 0, FILE_READ_ACCESS, ARG_VOID)                 // (void)
00405 #define IOCTL_Idle_SetMasterGain        IDLE_IOCTL_CODE( 1, FILE_READ_WRITE_ACCESS, ARG_DWORD)  // (WORD wNew)
00406 #define IOCTL_Idle_GetMasterGain        IDLE_IOCTL_CODE( 2, FILE_READ_ACCESS, ARG_VOID)                 // (void)
00407 #define IOCTL_Idle_SetSyncToneMode      IDLE_IOCTL_CODE( 3, FILE_READ_ACCESS, ARG_VOID)                 // (void)
00408 #define IOCTL_Idle_SetAsyncToneMode     IDLE_IOCTL_CODE( 4, FILE_READ_ACCESS, ARG_VOID)                 // (void)
00409 #define IOCTL_Idle_SetToneIndex         IDLE_IOCTL_CODE( 5, FILE_READ_WRITE_ACCESS, ARG_DWORD)  // (WORD wNew)
00410 #define IOCTL_Idle_GetToneIndex         IDLE_IOCTL_CODE( 6, FILE_READ_ACCESS, ARG_VOID)                 // (void)
00411 #define IOCTL_Idle_GetToneMode          IDLE_IOCTL_CODE( 7, FILE_READ_ACCESS, ARG_VOID)                 // (void)
00412 #define IOCTL_Idle_SetToneOnPeriod      IDLE_IOCTL_CODE( 8, FILE_READ_WRITE_ACCESS, ARG_DWORD)  // (WORD wNew)
00413 #define IOCTL_Idle_GetToneOnPeriod      IDLE_IOCTL_CODE( 9, FILE_READ_ACCESS, ARG_VOID)                 // (void)
00414 #define IOCTL_Idle_SetToneOffPeriod     IDLE_IOCTL_CODE( 10, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00415 #define IOCTL_Idle_GetToneOffPeriod     IDLE_IOCTL_CODE( 11, FILE_READ_ACCESS, ARG_VOID)                // (void)
00416 #define IOCTL_Idle_GetToneState         IDLE_IOCTL_CODE( 12, FILE_READ_ACCESS, ARG_VOID)                // (void)
00417 #define IOCTL_Idle_GenerateTone         IDLE_IOCTL_CODE( 13, FILE_READ_ACCESS, ARG_VOID)                // (void)
00418 #define IOCTL_Idle_NewToneInit          IDLE_IOCTL_CODE( 14, FILE_READ_ACCESS, ARG_VOID)                // (IDLE_NEW_TONE*)
00419 #define IOCTL_Idle_PlayTone                     IDLE_IOCTL_CODE( 15, FILE_READ_ACCESS, ARG_DWORD)               // (IDLE_TONE*)
00420 #define IOCTL_Idle_StopTone                     IDLE_IOCTL_CODE( 16, FILE_READ_ACCESS, ARG_VOID)                // (void)
00421 
00422 #define fnIdle_Idle                                     IOCTL_Idle_Idle
00423 #define fnIdle_SetMasterGain            IOCTL_Idle_SetMasterGain
00424 #define fnIdle_GetMasterGain            IOCTL_Idle_GetMasterGain
00425 #define fnIdle_SetSyncToneMode          IOCTL_Idle_SetSyncToneMode
00426 #define fnIdle_SetAsyncToneMode         IOCTL_Idle_SetAsyncToneMode
00427 #define fnIdle_SetToneIndex                     IOCTL_Idle_SetToneIndex
00428 #define fnIdle_GetToneIndex                     IOCTL_Idle_GetToneIndex
00429 #define fnIdle_GetToneMode                      IOCTL_Idle_GetToneMode
00430 #define fnIdle_SetToneOnPeriod          IOCTL_Idle_SetToneOnPeriod
00431 #define fnIdle_GetToneOnPeriod          IOCTL_Idle_GetToneOnPeriod
00432 #define fnIdle_SetToneOffPeriod         IOCTL_Idle_SetToneOffPeriod
00433 #define fnIdle_GetToneOffPeriod         IOCTL_Idle_GetToneOffPeriod
00434 #define fnIdle_GetToneState                     IOCTL_Idle_GetToneState
00435 #define fnIdle_GenerateTone                     IOCTL_Idle_GenerateTone
00436 #define fnIdle_NewToneInit                      IOCTL_Idle_NewToneInit
00437 #define fnIdle_PlayTone                         IOCTL_Idle_PlayTone
00438 #define fnIdle_StopTone                         IOCTL_Idle_StopTone
00439 
00440 //==========================================================================
00441 //--------------------------------------------------------------------------
00442 //      Mixer support
00443 //--------------------------------------------------------------------------
00444 //
00445 #define FILE_DEVICE_MIXER 0x800A
00446 
00447 #define MIXER_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_MIXER, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00448 
00449 #define IOCTL_Mixer_SetPlaybackLineControls             MIXER_IOCTL_CODE( 0, FILE_READ_WRITE_ACCESS, ARG_VOID)  // MIXER_LINE* pMixerLine 
00450 #define IOCTL_Mixer_GetPlaybackLineControls             MIXER_IOCTL_CODE( 1, FILE_READ_ACCESS, ARG_VOID)                // MIXER_LINE* pMixerLine
00451 #define IOCTL_Mixer_SetRecordLineControls               MIXER_IOCTL_CODE( 2, FILE_READ_WRITE_ACCESS, ARG_VOID)  // MIXER_LINE* pMixerLine
00452 #define IOCTL_Mixer_GetRecordLineControls               MIXER_IOCTL_CODE( 3, FILE_READ_ACCESS, ARG_VOID)                // MIXER_LINE* pMixerLine
00453 #define IOCTL_Mixer_SetOutputMixer                              MIXER_IOCTL_CODE( 4, FILE_READ_WRITE_ACCESS, ARG_VOID)  // MIXER_LINE* pMixerLine
00454 #define IOCTL_Mixer_GetOutputMixer                              MIXER_IOCTL_CODE( 5, FILE_READ_ACCESS, ARG_VOID)                // MIXER_LINE* pMixerLine
00455 #define IOCTL_Mixer_SetInputMixer                               MIXER_IOCTL_CODE( 6, FILE_READ_WRITE_ACCESS, ARG_VOID)  // MIXER_LINE* pMixerLine
00456 #define IOCTL_Mixer_GetInputMixer                               MIXER_IOCTL_CODE( 7, FILE_READ_ACCESS, ARG_VOID)                // MIXER_LINE* pMixerLine
00457 #define IOCTL_Mixer_SetMasterRecordGain                 MIXER_IOCTL_CODE( 8, FILE_READ_WRITE_ACCESS, ARG_DWORD)         // LONG lGain in 1/10 dB
00458 #define IOCTL_Mixer_SetMasterPlaybackGain               MIXER_IOCTL_CODE( 9, FILE_READ_WRITE_ACCESS, ARG_DWORD)         // LONG lGain in 1/10 dB
00459 #define IOCTL_Mixer_SetPSTNRecordGain                   MIXER_IOCTL_CODE( 10, FILE_READ_WRITE_ACCESS, ARG_DWORD)                // LONG lGain in 1/10 dB
00460 #define IOCTL_Mixer_SetPSTNPlaybackGain                 MIXER_IOCTL_CODE( 11, FILE_READ_WRITE_ACCESS, ARG_DWORD)                // LONG lGain in 1/10 dB
00461 
00462 //==========================================================================
00463 //--------------------------------------------------------------------------
00464 //      Playback support
00465 //--------------------------------------------------------------------------
00466 //
00467 #define FILE_DEVICE_PLAYBACK 0x8004
00468 
00469 #define PLAYBACK_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_PLAYBACK, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00470 
00471 #define IOCTL_Playback_SetTFRMode                               PLAYBACK_IOCTL_CODE( 0, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (WORD wNew)
00472 #define IOCTL_Playback_GetTFRMode                               PLAYBACK_IOCTL_CODE( 1, FILE_READ_ACCESS, ARG_VOID)     // (void)
00473 #define IOCTL_Playback_SetPLAYMODE                              PLAYBACK_IOCTL_CODE( 2, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (WORD wNew)
00474 #define IOCTL_Playback_GetPLAYMODE                              PLAYBACK_IOCTL_CODE( 3, FILE_READ_ACCESS, ARG_VOID)     // (void)
00475 #define IOCTL_Playback_GetDTMF_VALID                    PLAYBACK_IOCTL_CODE( 4, FILE_READ_ACCESS, ARG_VOID)     // (void)
00476 #define IOCTL_Playback_GetCPF_VALID                             PLAYBACK_IOCTL_CODE( 5, FILE_READ_ACCESS, ARG_VOID)     // (void)
00477 #define IOCTL_Playback_GetDTMF_DIGIT                    PLAYBACK_IOCTL_CODE( 6, FILE_READ_ACCESS, ARG_VOID)     // (void)
00478 #define IOCTL_Playback_SetRate                                  PLAYBACK_IOCTL_CODE( 7, FILE_READ_WRITE_ACCESS, ARG_DWORD)      // (WORD wNew)
00479 #define IOCTL_Playback_GetRate                                  PLAYBACK_IOCTL_CODE( 8, FILE_READ_ACCESS, ARG_VOID)     // (void)
00480 #define IOCTL_Playback_Start_Old                                PLAYBACK_IOCTL_CODE( 9, FILE_READ_ACCESS, ARG_VOID)     // (void)
00481 //#define IOCTL_Playback_Continue                                       PLAYBACK_IOCTL_CODE( 10, FILE_READ_ACCESS, ARG_VOID)    // (void)
00482 #define IOCTL_Playback_Continue                                 CTL_CODE( FILE_DEVICE_PLAYBACK, 0x80a, METHOD_NEITHER, FILE_READ_ACCESS )       // (void)
00483 #define IOCTL_Playback_Stop                                             PLAYBACK_IOCTL_CODE( 11, FILE_READ_ACCESS, ARG_VOID)    // (void)
00484 #define IOCTL_Playback_SetVolume                                PLAYBACK_IOCTL_CODE( 12, FILE_READ_WRITE_ACCESS, ARG_DWORD)     // (WORD wNew)
00485 #define IOCTL_Playback_GetVolume                                PLAYBACK_IOCTL_CODE( 13, FILE_READ_ACCESS, ARG_DWORD)   // (WORD wNew)
00486 #define IOCTL_Playback_SetSyncMode                              PLAYBACK_IOCTL_CODE( 14, FILE_READ_WRITE_ACCESS, ARG_DWORD)     // (WORD wNew)
00487 #define IOCTL_Playback_GetSyncMode                              PLAYBACK_IOCTL_CODE( 15, FILE_READ_ACCESS, ARG_VOID)    // (void)
00488 #define IOCTL_Playback_SetBufferChannelLimit    PLAYBACK_IOCTL_CODE( 16, FILE_READ_WRITE_ACCESS, ARG_DWORD)     // (WORD wNew)
00489 #define IOCTL_Playback_GetBufferChannelLimit    PLAYBACK_IOCTL_CODE( 17, FILE_READ_ACCESS, ARG_VOID)    // (void)
00490 #define IOCTL_Playback_GetFrameSize                             PLAYBACK_IOCTL_CODE( 18, FILE_READ_ACCESS, ARG_VOID)    // (void)
00491 #define IOCTL_Playback_GetAvgPlaybackLevel              PLAYBACK_IOCTL_CODE( 19, FILE_READ_ACCESS, ARG_VOID)    // (void)
00492 #define IOCTL_Playback_ContinueLogFrame                 PLAYBACK_IOCTL_CODE( 20, FILE_READ_ACCESS, ARG_VOID)    // (void)
00493 #define IOCTL_Playback_Open                                             PLAYBACK_IOCTL_CODE( 21, FILE_READ_ACCESS, ARG_VOID)    // (void)
00494 #define IOCTL_Playback_Close                                    PLAYBACK_IOCTL_CODE( 22, FILE_READ_ACCESS, ARG_DWORD)   // (DWORD)
00495 #define IOCTL_Playback_SetMute                                  PLAYBACK_IOCTL_CODE( 23, FILE_READ_WRITE_ACCESS, ARG_DWORD)     // (WORD wNew)
00496 #define IOCTL_Playback_GetMute                                  PLAYBACK_IOCTL_CODE( 24, FILE_READ_ACCESS, ARG_VOID)    // (void)
00497 #define IOCTL_Playback_GetBufferDepth                   PLAYBACK_IOCTL_CODE( 25, FILE_READ_ACCESS, ARG_VOID)    // (void)
00498 #define IOCTL_Playback_GetPlaybackLevelValue    PLAYBACK_IOCTL_CODE( 26, FILE_READ_ACCESS, ARG_VOID) // (void)
00499 #define IOCTL_Playback_IsPlaying                                PLAYBACK_IOCTL_CODE( 27, FILE_READ_ACCESS, ARG_VOID) // (void)
00500 #define IOCTL_Playback_Start                                    PLAYBACK_IOCTL_CODE( 28, FILE_READ_ACCESS, ARG_VOID)    // (void)
00501 
00502 #define fnPlayback_SetTFRMode                           IOCTL_Playback_SetTFRMode 
00503 #define fnPlayback_GetTFRMode                           IOCTL_Playback_GetTFRMode 
00504 #define fnPlayback_SetPLAYMODE                          IOCTL_Playback_SetPLAYMODE 
00505 #define fnPlayback_GetPLAYMODE                          IOCTL_Playback_GetPLAYMODE 
00506 #define fnPlayback_GetDTMF_VALID                        IOCTL_Playback_GetDTMF_VALID 
00507 #define fnPlayback_GetCPF_VALID                         IOCTL_Playback_GetCPF_VALID 
00508 #define fnPlayback_GetDTMF_DIGIT                        IOCTL_Playback_GetDTMF_DIGIT 
00509 #define fnPlayback_SetRate                                      IOCTL_Playback_SetRate 
00510 #define fnPlayback_GetRate                                      IOCTL_Playback_GetRate 
00511 #define fnPlayback_Start                                        IOCTL_Playback_Start 
00512 #define fnPlayback_Continue                                     IOCTL_Playback_Continue 
00513 #define fnPlayback_Stop                                         IOCTL_Playback_Stop 
00514 #define fnPlayback_SetVolume                            IOCTL_Playback_SetVolume 
00515 #define fnPlayback_GetVolume                            IOCTL_Playback_GetVolume 
00516 #define fnPlayback_SetSyncMode                          IOCTL_Playback_SetSyncMode 
00517 #define fnPlayback_GetSyncMode                          IOCTL_Playback_GetSyncMode 
00518 #define fnPlayback_SetBufferChannelLimit        IOCTL_Playback_SetBufferChannelLimit 
00519 #define fnPlayback_GetBufferChannelLimit        IOCTL_Playback_GetBufferChannelLimit 
00520 #define fnPlayback_GetFrameSize                         IOCTL_Playback_GetFrameSize 
00521 #define fnPlayback_GetAvgPlaybackLevel          IOCTL_Playback_GetAvgPlaybackLevel 
00522 #define fnPlayback_ContinueLogFrame                     IOCTL_Playback_ContinueLogFrame
00523 #define fnPlayback_Open                                         IOCTL_Playback_Open
00524 #define fnPlayback_Close                                        IOCTL_Playback_Close
00525 #define fnPlayback_SetMute                                      IOCTL_Playback_SetMute 
00526 #define fnPlayback_GetMute                                      IOCTL_Playback_GetMute 
00527 #define fnPlayback_GetBufferDepth                       IOCTL_Playback_GetBufferDepth 
00528 #define fnPlayback_GetPlaybackLevelValue        IOCTL_Playback_GetPlaybackLevelValue
00529 #define fnPlayback_IsPlaying                            IOCTL_Playback_IsPlaying
00530 
00531 //==========================================================================
00532 //--------------------------------------------------------------------------
00533 //      Record support
00534 //--------------------------------------------------------------------------
00535 //
00536 #define FILE_DEVICE_RECORD 0x8003
00537 
00538 #define RECORD_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_RECORD, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00539 
00540 #define IOCTL_Record_SetTFRMode                         RECORD_IOCTL_CODE( 0, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00541 #define IOCTL_Record_GetTFRMode                         RECORD_IOCTL_CODE( 1, FILE_READ_ACCESS, ARG_VOID) // (void)
00542 #define IOCTL_Record_SetRECMODE                         RECORD_IOCTL_CODE( 2, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00543 #define IOCTL_Record_GetRECMODE                         RECORD_IOCTL_CODE( 3, FILE_READ_ACCESS, ARG_VOID) // (void)
00544 #define IOCTL_Record_GetPEAK                            RECORD_IOCTL_CODE( 4, FILE_READ_ACCESS, ARG_VOID) // (void)
00545 #define IOCTL_Record_GetDTMF_VALID                      RECORD_IOCTL_CODE( 5, FILE_READ_ACCESS, ARG_VOID) // (void)
00546 #define IOCTL_Record_GetCPF_VALID                       RECORD_IOCTL_CODE( 6, FILE_READ_ACCESS, ARG_VOID) // (void)
00547 #define IOCTL_Record_GetDTMF_DIGIT                      RECORD_IOCTL_CODE( 7, FILE_READ_ACCESS, ARG_VOID) // (void)
00548 #define IOCTL_Record_SetThresholdValue          RECORD_IOCTL_CODE( 8, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00549 #define IOCTL_Record_GetThresholdValue          RECORD_IOCTL_CODE( 9, FILE_READ_ACCESS, ARG_VOID) // (void)
00550 #define IOCTL_Record_GetRecordLevelValue        RECORD_IOCTL_CODE( 10, FILE_READ_ACCESS, ARG_VOID) // (void)
00551 #define IOCTL_Record_Start_Old                          RECORD_IOCTL_CODE( 11, FILE_READ_ACCESS, ARG_VOID) // (void)
00552 //#define       IOCTL_Record_Continue                           RECORD_IOCTL_CODE( 12, FILE_READ_ACCESS, ARG_VOID) // (void)
00553 #define IOCTL_Record_Continue                           CTL_CODE( FILE_DEVICE_RECORD, 0x80c, METHOD_NEITHER, FILE_READ_ACCESS ) // (void)
00554 #define IOCTL_Record_Stop                                       RECORD_IOCTL_CODE( 13, FILE_READ_ACCESS, ARG_VOID) // (void)
00555 #define IOCTL_Record_SetRate                            RECORD_IOCTL_CODE( 14, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00556 #define IOCTL_Record_GetRate                            RECORD_IOCTL_CODE( 15, FILE_READ_ACCESS, ARG_VOID) // (void)
00557 #define IOCTL_Record_SetVolume                          RECORD_IOCTL_CODE( 16, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00558 #define IOCTL_Record_GetVolume                          RECORD_IOCTL_CODE( 17, FILE_READ_ACCESS, ARG_VOID) // (void)
00559 #define IOCTL_Record_SetAGCMinGain                      RECORD_IOCTL_CODE( 18, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00560 #define IOCTL_Record_GetAGCMinGain                      RECORD_IOCTL_CODE( 19, FILE_READ_ACCESS, ARG_VOID) // (void)
00561 #define IOCTL_Record_SetAGCMaxGain                      RECORD_IOCTL_CODE( 20, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00562 #define IOCTL_Record_GetAGCMaxGain                      RECORD_IOCTL_CODE( 21, FILE_READ_ACCESS, ARG_VOID) // (void)
00563 #define IOCTL_Record_SetAGCStartGain            RECORD_IOCTL_CODE( 22, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00564 #define IOCTL_Record_GetAGCStartGain            RECORD_IOCTL_CODE( 23, FILE_READ_ACCESS, ARG_VOID) // (void)
00565 #define IOCTL_Record_SetAGCHoldTime                     RECORD_IOCTL_CODE( 24, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00566 #define IOCTL_Record_GetAGCHoldTime                     RECORD_IOCTL_CODE( 25, FILE_READ_ACCESS, ARG_VOID) // (void)
00567 #define IOCTL_Record_SetAGCAttackTime           RECORD_IOCTL_CODE( 26, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00568 #define IOCTL_Record_GetAGCAttackTime           RECORD_IOCTL_CODE( 27, FILE_READ_ACCESS, ARG_VOID) // (void)
00569 #define IOCTL_Record_SetAGCDecayTime            RECORD_IOCTL_CODE( 28, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00570 #define IOCTL_Record_GetAGCDecayTime            RECORD_IOCTL_CODE( 29, FILE_READ_ACCESS, ARG_VOID) // (void)
00571 #define IOCTL_Record_SetAGCAttackThreshold      RECORD_IOCTL_CODE( 30, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00572 #define IOCTL_Record_GetAGCAttackThreshold      RECORD_IOCTL_CODE( 31, FILE_READ_ACCESS, ARG_VOID) // (void)
00573 #define IOCTL_Record_SetAGCOnOff                        RECORD_IOCTL_CODE( 32, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00574 #define IOCTL_Record_GetAGCOnOff                        RECORD_IOCTL_CODE( 33, FILE_READ_ACCESS, ARG_VOID) // (void)
00575 #define IOCTL_Record_SetSyncMode                        RECORD_IOCTL_CODE( 34, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00576 #define IOCTL_Record_GetSyncMode                        RECORD_IOCTL_CODE( 35, FILE_READ_ACCESS, ARG_VOID) // (void)
00577 #define IOCTL_Record_SetBufferChannelLimit      RECORD_IOCTL_CODE( 36, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00578 #define IOCTL_Record_GetBufferChannelLimit      RECORD_IOCTL_CODE( 37, FILE_READ_ACCESS, ARG_VOID) // (void)
00579 #define IOCTL_Record_GetFrameSize                       RECORD_IOCTL_CODE( 38, FILE_READ_ACCESS, ARG_VOID) // (void)
00580 #define IOCTL_Record_GetAvgRecordLevel          RECORD_IOCTL_CODE( 39, FILE_READ_ACCESS, ARG_VOID) // (void)
00581 #define IOCTL_Record_ContinueLogFrame           RECORD_IOCTL_CODE( 40, FILE_READ_ACCESS, ARG_VOID) // (void)
00582 #define IOCTL_Record_Open                                       RECORD_IOCTL_CODE( 41, FILE_READ_ACCESS, ARG_VOID) // (void)
00583 #define IOCTL_Record_Close                                      RECORD_IOCTL_CODE( 42, FILE_READ_ACCESS, ARG_DWORD) // (DWORD)
00584 #define IOCTL_Record_SetMute                            RECORD_IOCTL_CODE( 43, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00585 #define IOCTL_Record_GetMute                            RECORD_IOCTL_CODE( 44, FILE_READ_ACCESS, ARG_VOID) // (void)
00586 #define IOCTL_Record_EnableVAD                          RECORD_IOCTL_CODE( 45, FILE_READ_ACCESS, ARG_VOID) // (void)
00587 #define IOCTL_Record_DisableVAD                         RECORD_IOCTL_CODE( 46, FILE_READ_ACCESS, ARG_VOID) // (void)
00588 #define IOCTL_Record_SetDisableOnDTMFDetect             RECORD_IOCTL_CODE( 47, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00589 #define IOCTL_Record_GetDisableOnDTMFDetect             RECORD_IOCTL_CODE( 48, FILE_READ_ACCESS, ARG_VOID) // (void)
00590 #define IOCTL_Record_IsRecording                        RECORD_IOCTL_CODE( 49, FILE_READ_ACCESS, ARG_VOID) // (void)
00591 #define IOCTL_Record_Start                                      RECORD_IOCTL_CODE( 50, FILE_READ_ACCESS, ARG_VOID) // (void)
00592 
00593 #define fnRecord_SetTFRMode                             IOCTL_Record_SetTFRMode 
00594 #define fnRecord_GetTFRMode                             IOCTL_Record_GetTFRMode 
00595 #define fnRecord_SetRECMODE                             IOCTL_Record_SetRECMODE 
00596 #define fnRecord_GetRECMODE                             IOCTL_Record_GetRECMODE 
00597 #define fnRecord_GetPEAK                                IOCTL_Record_GetPEAK 
00598 #define fnRecord_GetDTMF_VALID                  IOCTL_Record_GetDTMF_VALID 
00599 #define fnRecord_GetCPF_VALID                   IOCTL_Record_GetCPF_VALID 
00600 #define fnRecord_GetDTMF_DIGIT                  IOCTL_Record_GetDTMF_DIGIT 
00601 #define fnRecord_SetThresholdValue              IOCTL_Record_SetThresholdValue 
00602 #define fnRecord_GetThresholdValue              IOCTL_Record_GetThresholdValue 
00603 #define fnRecord_GetRecordLevelValue    IOCTL_Record_GetRecordLevelValue 
00604 #define fnRecord_Start                                  IOCTL_Record_Start 
00605 #define fnRecord_Continue                               IOCTL_Record_Continue 
00606 #define fnRecord_Stop                                   IOCTL_Record_Stop 
00607 #define fnRecord_SetRate                                IOCTL_Record_SetRate 
00608 #define fnRecord_GetRate                                IOCTL_Record_GetRate 
00609 #define fnRecord_SetVolume                              IOCTL_Record_SetVolume 
00610 #define fnRecord_GetVolume                              IOCTL_Record_GetVolume 
00611 #define fnRecord_SetAGCMinGain                  IOCTL_Record_SetAGCMinGain 
00612 #define fnRecord_GetAGCMinGain                  IOCTL_Record_GetAGCMinGain 
00613 #define fnRecord_SetAGCMaxGain                  IOCTL_Record_SetAGCMaxGain 
00614 #define fnRecord_GetAGCMaxGain                  IOCTL_Record_GetAGCMaxGain 
00615 #define fnRecord_SetAGCStartGain                IOCTL_Record_SetAGCStartGain 
00616 #define fnRecord_GetAGCStartGain                IOCTL_Record_GetAGCStartGain 
00617 #define fnRecord_SetAGCHoldTime                 IOCTL_Record_SetAGCHoldTime 
00618 #define fnRecord_GetAGCHoldTime                 IOCTL_Record_GetAGCHoldTime 
00619 #define fnRecord_SetAGCAttackTime               IOCTL_Record_SetAGCAttackTime 
00620 #define fnRecord_GetAGCAttackTime               IOCTL_Record_GetAGCAttackTime 
00621 #define fnRecord_SetAGCDecayTime                IOCTL_Record_SetAGCDecayTime 
00622 #define fnRecord_GetAGCDecayTime                IOCTL_Record_GetAGCDecayTime 
00623 #define fnRecord_SetAGCAttackThreshold  IOCTL_Record_SetAGCAttackThreshold 
00624 #define fnRecord_GetAGCAttackThreshold  IOCTL_Record_GetAGCAttackThreshold 
00625 #define fnRecord_SetAGCOnOff                    IOCTL_Record_SetAGCOnOff 
00626 #define fnRecord_GetAGCOnOff                    IOCTL_Record_GetAGCOnOff 
00627 #define fnRecord_SetSyncMode                    IOCTL_Record_SetSyncMode 
00628 #define fnRecord_GetSyncMode                    IOCTL_Record_GetSyncMode 
00629 #define fnRecord_SetBufferChannelLimit  IOCTL_Record_SetBufferChannelLimit 
00630 #define fnRecord_GetBufferChannelLimit  IOCTL_Record_GetBufferChannelLimit 
00631 #define fnRecord_GetFrameSize                   IOCTL_Record_GetFrameSize 
00632 #define fnRecord_GetAvgRecordLevel              IOCTL_Record_GetAvgRecordLevel 
00633 #define fnRecord_SetMute                                IOCTL_Record_SetMute 
00634 #define fnRecord_GetMute                                IOCTL_Record_GetMute 
00635 #define fnRecord_ContinueLogFrame       IOCTL_Record_ContinueLogFrame
00636 #define fnRecord_IsRecording            IOCTL_Record_IsRecording
00637 
00638 //==========================================================================
00639 //--------------------------------------------------------------------------
00640 //      Speakerphone support
00641 //--------------------------------------------------------------------------
00642 //
00643 #define FILE_DEVICE_SPEAKERPHONE 0x8005
00644 
00645 #define SPEAKERPHONE_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_SPEAKERPHONE, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00646 
00647 #define IOCTL_Speakerphone_SetSpeakerVolume             SPEAKERPHONE_IOCTL_CODE( 0, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00648 #define IOCTL_Speakerphone_GetSpeakerVolume             SPEAKERPHONE_IOCTL_CODE( 1, FILE_READ_ACCESS, ARG_VOID) // (void)
00649 #define IOCTL_Speakerphone_AECOn                                SPEAKERPHONE_IOCTL_CODE( 2, FILE_READ_ACCESS, ARG_VOID) // (void)
00650 #define IOCTL_Speakerphone_AECOff                               SPEAKERPHONE_IOCTL_CODE( 3, FILE_READ_ACCESS, ARG_VOID) // (void)
00651 #define IOCTL_Speakerphone_AECAdvancedLoOn              SPEAKERPHONE_IOCTL_CODE( 4, FILE_READ_ACCESS, ARG_VOID) // (void)
00652 #define IOCTL_Speakerphone_AECAdvancedHiOn              SPEAKERPHONE_IOCTL_CODE( 5, FILE_READ_ACCESS, ARG_VOID) // (void)
00653 #define IOCTL_Speakerphone_AECAdvancedLoOff             SPEAKERPHONE_IOCTL_CODE( 6, FILE_READ_ACCESS, ARG_VOID) // (void)
00654 #define IOCTL_Speakerphone_AECAdvancedHiOff             SPEAKERPHONE_IOCTL_CODE( 7, FILE_READ_ACCESS, ARG_VOID) // (void)
00655 #define IOCTL_Speakerphone_SetAEC                               SPEAKERPHONE_IOCTL_CODE( 8, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00656 #define IOCTL_Speakerphone_GetAEC                               SPEAKERPHONE_IOCTL_CODE( 9, FILE_READ_ACCESS, ARG_VOID) // (void)
00657 #define IOCTL_Speakerphone_SetBaseFrameSize  SPEAKERPHONE_IOCTL_CODE( 10, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)
00658 #define IOCTL_Speakerphone_GetBaseFrameSize                             SPEAKERPHONE_IOCTL_CODE( 11, FILE_READ_ACCESS, ARG_VOID) // (void)
00659 
00660 #define fnSpeakerphone_SetSpeakerVolume         IOCTL_Speakerphone_SetSpeakerVolume 
00661 #define fnSpeakerphone_GetSpeakerVolume         IOCTL_Speakerphone_GetSpeakerVolume 
00662 #define fnSpeakerphone_AECOn                            IOCTL_Speakerphone_AECOn 
00663 #define fnSpeakerphone_AECOff                           IOCTL_Speakerphone_AECOff 
00664 #define fnSpeakerphone_AECAdvancedLoOn          IOCTL_Speakerphone_AECAdvancedLoOn 
00665 #define fnSpeakerphone_AECAdvancedHiOn          IOCTL_Speakerphone_AECAdvancedHiOn 
00666 #define fnSpeakerphone_AECAdvancedLoOff         IOCTL_Speakerphone_AECAdvancedLoOff 
00667 #define fnSpeakerphone_AECAdvancedHiOff         IOCTL_Speakerphone_AECAdvancedHiOff 
00668 #define fnSpeakerphone_SetAEC                           IOCTL_Speakerphone_SetAEC 
00669 #define fnSpeakerphone_GetAEC                           IOCTL_Speakerphone_GetAEC 
00670 
00671 //==========================================================================
00672 //--------------------------------------------------------------------------
00673 //      Fax support
00674 //--------------------------------------------------------------------------
00675 //
00676 #define FILE_DEVICE_FAX 0x800B
00677 
00678 #define FAX_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_FAX, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00679 
00680 #define IOCTL_Fax_Start                                         FAX_IOCTL_CODE( 0, FILE_READ_ACCESS, ARG_VOID) // (void)
00681 #define IOCTL_Fax_Stop                                          FAX_IOCTL_CODE( 1, FILE_READ_ACCESS, ARG_VOID) // (void)
00682 #define IOCTL_Fax_Write                                         FAX_IOCTL_CODE( 2, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD *buf)
00683 #define IOCTL_Fax_Read                                          FAX_IOCTL_CODE( 3, FILE_READ_ACCESS, ARG_VOID) // (void)
00684 
00685 #define fnFax_Start                                                     IOCTL_Fax_Start 
00686 #define fnFax_Stop                                                      IOCTL_Fax_Stop 
00687 #define fnFax_Fax_Write                                         IOCTL_Fax_Write 
00688 #define fnFax_Read                                                      IOCTL_Fax_Read 
00689 
00690 //==========================================================================
00691 //--------------------------------------------------------------------------
00692 //      FSK support
00693 //--------------------------------------------------------------------------
00694 //
00695 #define FILE_DEVICE_FSK 0x800C
00696 
00697 #define FSK_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_FSK, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00698 
00699 #define IOCTL_FSK_SetMsgData                            FSK_IOCTL_CODE( 0, FILE_READ_WRITE_ACCESS, ARG_DWORD)   // (BYTE*)
00700 
00701 #define fnFSK_SetMsgData                                        IOCTL_FSK_SetMsgData
00702 
00703 //==========================================================================
00704 //--------------------------------------------------------------------------
00705 //      Tone support
00706 //--------------------------------------------------------------------------
00707 //
00708 #define FILE_DEVICE_TONE 0x800D
00709 
00710 #define TONE_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_TONE, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00711 
00712 #define IOCTL_Tone_PlayToneCadence              TONE_IOCTL_CODE( 0, FILE_READ_WRITE_ACCESS, ARG_DWORD)  // (BYTE*)
00713 
00714 #define fnTone_PlayToneCadence                  IOCTL_Tone_PlayToneCadence
00715 
00716 //==========================================================================
00717 //--------------------------------------------------------------------------
00718 //      VxD support
00719 //
00720 //      NOTE: These names will be changed in the future to a generic 'driver'
00721 //        naming convention.
00722 //--------------------------------------------------------------------------
00723 //
00724 #define FILE_DEVICE_VXD 0x8001
00725 
00726 #define VXD_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_VXD, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )
00727 
00728 #define IOCTL_VxD_SetCallback                   VXD_IOCTL_CODE( 0, FILE_READ_WRITE_ACCESS, ARG_VOID)    // (FARPROC pfnCallback) - Callback address
00729 #define IOCTL_VxD_GetInterruptEvents    VXD_IOCTL_CODE( 1, FILE_READ_ACCESS, ARG_VOID)  // (void)
00730 #define IOCTL_VxD_EnableInterrupts              VXD_IOCTL_CODE( 2, FILE_READ_ACCESS, ARG_VOID)  // (void)
00731 #define IOCTL_VxD_DisableInterrupts             VXD_IOCTL_CODE( 3, FILE_READ_ACCESS, ARG_VOID)  // (void)
00732 #define IOCTL_VxD_AddPerformanceStat    VXD_IOCTL_CODE( 4, FILE_READ_WRITE_ACCESS, ARG_DWORD)   // (LPPERF_STAT lpPerfStat)
00733 #define IOCTL_VxD_GetVersion                    VXD_IOCTL_CODE( 5, FILE_READ_ACCESS, ARG_VOID)  // (void)
00734 
00735 #define fnVxD_SetCallback                               IOCTL_VxD_SetCallback
00736 #define fnVxD_GetInterruptEvents                IOCTL_VxD_GetInterruptEvents
00737 #define fnVxD_EnableInterrupts                  IOCTL_VxD_EnableInterrupts
00738 #define fnVxD_DisableInterrupts                 IOCTL_VxD_DisableInterrupts
00739 #define fnVxD_AddPerformanceStat                IOCTL_VxD_AddPerformanceStat
00740 #define fnVxD_GetVersion                                IOCTL_VxD_GetVersion
00741 
00742 #endif
00743 
00744 //      eof: QTIoctl.h

Generated on Mon Sep 25 16:20:10 2006 for OPAL by  doxygen 1.4.7