📄 qtioctl.h
字号:
/* QTIoctl.h Copyright (c) 1996-1999, Quicknet Technologies, Inc. All Rights Reserved. DeviceIoControl codes for Internet PhoneJACK, LineJACK, etc. drivers. ----------------------------------------------------------------- $Header: /home/cvsroot/openh323/include/QTIoctl.h,v 1.2 2000/04/12 23:57:03 robertj Exp $*/#ifndef _QTIOCTL_H_#define _QTIOCTL_H_//// The following #defines come from <winioctl.h>.//////- Beginning of included from <winioctl.h> section ------------------------------//// Macro definition for defining IOCTL and FSCTL function control codes. Note// that function codes 0-2047 are reserved for Microsoft Corporation, and// 2048-4095 are reserved for customers.//#undef CTL_CODE#define CTL_CODE( DeviceType, Function, Method, Access ) ( \ ((DWORD)(DeviceType) << 16) | ((DWORD)(Access) << 14) | ((DWORD)(Function) << 2) | (DWORD)(Method) \)//// Define the method codes for how buffers are passed for I/O and FS controls//#define METHOD_BUFFERED 0#define METHOD_IN_DIRECT 1#define METHOD_OUT_DIRECT 2#define METHOD_NEITHER 3//// Define the access check value for any access////// The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in// ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these// constants *MUST* always be in sync.//#define FILE_ANY_ACCESS 0#define FILE_READ_ACCESS ( 0x0001 ) // file & pipe#define FILE_WRITE_ACCESS ( 0x0002 ) // file & pipe////- End of included from <winioctl.h> section ------------------------------//#define FILE_READ_WRITE_ACCESS (FILE_WRITE_ACCESS|FILE_READ_ACCESS)#define ARG_DWORD 0x400#define ARG_VOID 0#define MASK_DWORD ( ARG_DWORD << 2 )#define MASK_VOID ( ARG_VOID << 2 )#define MASK_WRITE ( FILE_WRITE_ACCESS << 14 )#define MASK_READ ( FILE_READ_ACCESS << 14 )#define MASK_READ_WRITE ( FILE_READ_WRITE_ACCESS << 14 )#define IoctlTransferType( Code ) (Code & 3)#define IoctlDeviceType( Code ) ((Code >> 16) & 0xffff)#define IoctlRequiredAccess( Code ) ((Code & 0xc000)>>14)#define IoctlControlCode( Code ) ((Code >> 2) & 0x03ff)#define IoctlFunctionCode( Code ) ((Code >> 2) & 0x0bff)#define IoctlIsVoidArg( Code ) ((Code & MASK_DWORD) == MASK_VOID)#define IoctlIsRead( Code ) ((Code & MASK_READ) == MASK_READ)#define IoctlIsWrite( Code ) ((Code & MASK_WRITE) == MASK_WRITE)#define IoctlIsReadWrite( Code ) ((Code & MASK_READ_WRITE) == MASK_READ_WRITE)#define IoctlHasArgument( Code ) ((Code & (MASK_WRITE|MASK_DWORD))== (MASK_WRITE|MASK_DWORD))#define IoctlHasBuffer( Code ) ((Code & MASK_READ_WRITE) != 0)#ifndef LPVOID#ifndef FAR#define FAR#endif typedef void FAR * LPVOID;#endif#ifndef DEVNODE#define DEVNODE DWORD#endif/////////////////////////////////////////////////////////////////////////////////////////////////////////// Win32 device operations#define FILE_DEVICE_DEVICE 0x8009#define DEVICE_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_DEVICE, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )// Function codes#define IOCTL_Device_Open DEVICE_CODE( 0, FILE_WRITE_ACCESS, ARG_DWORD) // (ARG_DWORD dwSerialNo)#define IOCTL_Device_Close DEVICE_CODE( 1, FILE_WRITE_ACCESS, ARG_VOID) // (void)#define IOCTL_Device_Read DEVICE_CODE( 2, FILE_WRITE_ACCESS, ARG_VOID) // (void)#define IOCTL_Device_Write DEVICE_CODE( 3, FILE_WRITE_ACCESS, ARG_VOID) // (void)#define IOCTL_Device_CancelIO DEVICE_CODE( 6, FILE_WRITE_ACCESS, ARG_VOID) // (void)#define IOCTL_Device_GetSerialNumber DEVICE_CODE( 7, FILE_READ_ACCESS, ARG_VOID) // void//==========================================================================//==========================================================================//// IOCTL and function codes for Quicknet's Internet PhoneJACK and// Internet LineJACK cards.////==========================================================================//--------------------------------------------------------------------------// Codec support//--------------------------------------------------------------------------//#define FILE_DEVICE_CODEC 0x8002#define CODEC_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_CODEC, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )#define IOCTL_Codec_SetSetRate CODEC_IOCTL_CODE( 0, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wSetRate)#define IOCTL_Codec_GetSetRate CODEC_IOCTL_CODE( 1, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Codec_SetINPUT_CODEC CODEC_IOCTL_CODE( 2, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)#define IOCTL_Codec_GetINPUT_CODEC CODEC_IOCTL_CODE( 3, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Codec_SetOUTPUT_CODEC CODEC_IOCTL_CODE( 4, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)#define IOCTL_Codec_GetOUTPUT_CODEC CODEC_IOCTL_CODE( 5, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Codec_SetLong CODEC_IOCTL_CODE( 6, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)#define IOCTL_Codec_GetLong CODEC_IOCTL_CODE( 7, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Codec_SetMaster CODEC_IOCTL_CODE( 8, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)#define IOCTL_Codec_GetMaster CODEC_IOCTL_CODE( 9, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Codec_SetLaw CODEC_IOCTL_CODE( 10, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)#define IOCTL_Codec_GetLaw CODEC_IOCTL_CODE( 11, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Codec_SetWidth CODEC_IOCTL_CODE( 12, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)#define IOCTL_Codec_GetWidth CODEC_IOCTL_CODE( 13, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Codec_SetCO_RATE CODEC_IOCTL_CODE( 14, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)#define IOCTL_Codec_GetCO_RATE CODEC_IOCTL_CODE( 15, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Codec_SetFSYNC_RATE CODEC_IOCTL_CODE( 16, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)#define IOCTL_Codec_GetFSYNC_RATE CODEC_IOCTL_CODE( 17, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Codec_SetWIDE CODEC_IOCTL_CODE( 18, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)#define IOCTL_Codec_GetWIDE CODEC_IOCTL_CODE( 19, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Codec_Loopback CODEC_IOCTL_CODE( 20, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Codec_SetKHz CODEC_IOCTL_CODE( 23, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)#define IOCTL_Codec_GetKHz CODEC_IOCTL_CODE( 24, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Codec_SetLegacyKHz CODEC_IOCTL_CODE( 25, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)#define IOCTL_Codec_GetLegacyKHz CODEC_IOCTL_CODE( 26, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Codec_SetChannels CODEC_IOCTL_CODE( 27, FILE_READ_WRITE_ACCESS, ARG_DWORD) // (WORD wData)#define IOCTL_Codec_GetChannels CODEC_IOCTL_CODE( 28, FILE_READ_ACCESS, ARG_VOID) // (void)#define fnCodec_SetSetRate IOCTL_Codec_SetSetRate #define fnCodec_GetSetRate IOCTL_Codec_GetSetRate #define fnCodec_SetINPUT_CODEC IOCTL_Codec_SetINPUT_CODEC #define fnCodec_GetINPUT_CODEC IOCTL_Codec_GetINPUT_CODEC #define fnCodec_SetOUTPUT_CODEC IOCTL_Codec_SetOUTPUT_CODEC #define fnCodec_GetOUTPUT_CODEC IOCTL_Codec_GetOUTPUT_CODEC #define fnCodec_SetLong IOCTL_Codec_SetLong #define fnCodec_GetLong IOCTL_Codec_GetLong #define fnCodec_SetMaster IOCTL_Codec_SetMaster #define fnCodec_GetMaster IOCTL_Codec_GetMaster #define fnCodec_SetLaw IOCTL_Codec_SetLaw #define fnCodec_GetLaw IOCTL_Codec_GetLaw #define fnCodec_SetWidth IOCTL_Codec_SetWidth #define fnCodec_GetWidth IOCTL_Codec_GetWidth #define fnCodec_SetCO_RATE IOCTL_Codec_SetCO_RATE #define fnCodec_GetCO_RATE IOCTL_Codec_GetCO_RATE #define fnCodec_SetFSYNC_RATE IOCTL_Codec_SetFSYNC_RATE #define fnCodec_GetFSYNC_RATE IOCTL_Codec_GetFSYNC_RATE #define fnCodec_SetWIDE IOCTL_Codec_SetWIDE #define fnCodec_GetWIDE IOCTL_Codec_GetWIDE #define fnCodec_Loopback IOCTL_Codec_Loopback #define fnCodec_SetKHz IOCTL_Codec_SetKHz #define fnCodec_GetKHz IOCTL_Codec_GetKHz #define fnCodec_SetLegacyKHz IOCTL_Codec_SetLegacyKHz #define fnCodec_GetLegacyKHz IOCTL_Codec_GetLegacyKHz #define fnCodec_SetChannels IOCTL_Codec_SetChannels #define fnCodec_GetChannels IOCTL_Codec_GetChannels //==========================================================================//--------------------------------------------------------------------------// Compression/Decompression support//--------------------------------------------------------------------------//#define FILE_DEVICE_COMPRESS 0x8008#define COMPRESS_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_COMPRESS, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )#define IOCTL_Compress_Start COMPRESS_IOCTL_CODE( 0, FILE_WRITE_ACCESS, ARG_VOID) // (void)#define IOCTL_Compress_Continue COMPRESS_IOCTL_CODE( 1, FILE_WRITE_ACCESS, ARG_VOID) // (void)#define IOCTL_Compress_Stop COMPRESS_IOCTL_CODE( 2, FILE_WRITE_ACCESS, ARG_VOID) // (void)#define IOCTL_Compress_SetRate COMPRESS_IOCTL_CODE( 3, FILE_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)#define IOCTL_Compress_GetRate COMPRESS_IOCTL_CODE( 4, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Compress_SetTFRMode COMPRESS_IOCTL_CODE( 5, FILE_WRITE_ACCESS, ARG_DWORD) // (WORD wNew)#define IOCTL_Compress_GetTFRMode COMPRESS_IOCTL_CODE( 6, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Decompress_Start COMPRESS_IOCTL_CODE( 7, FILE_WRITE_ACCESS, ARG_VOID) // (void)#define IOCTL_Decompress_Continue COMPRESS_IOCTL_CODE( 8, FILE_WRITE_ACCESS, ARG_VOID) // (void)#define IOCTL_Decompress_Stop COMPRESS_IOCTL_CODE( 9, FILE_WRITE_ACCESS, ARG_VOID) // (void)#define IOCTL_Decompress_SetRate COMPRESS_IOCTL_CODE( 10, FILE_WRITE_ACCESS, ARG_VOID) // (ARG_DWORD wNew)#define IOCTL_Decompress_GetRate COMPRESS_IOCTL_CODE( 11, FILE_READ_ACCESS, ARG_VOID) // (void)#define IOCTL_Decompress_SetTFRMode COMPRESS_IOCTL_CODE( 12, FILE_WRITE_ACCESS, ARG_VOID) // (ARG_DWORD wNew)#define IOCTL_Decompress_GetTFRMode COMPRESS_IOCTL_CODE( 13, FILE_READ_ACCESS, ARG_VOID) // (void)#define fnCompress_Start IOCTL_Compress_Start #define fnCompress_Continue IOCTL_Compress_Continue #define fnCompress_Stop IOCTL_Compress_Stop #define fnCompress_SetRate IOCTL_Compress_SetRate #define fnCompress_GetRate IOCTL_Compress_GetRate #define fnCompress_SetTFRMode IOCTL_Compress_SetTFRMode #define fnCompress_GetTFRMode IOCTL_Compress_GetTFRMode #define fnDecompress_Start IOCTL_Decompress_Start #define fnDecompress_Continue IOCTL_Decompress_Continue #define fnDecompress_Stop IOCTL_Decompress_Stop #define fnDecompress_SetRate IOCTL_Decompress_SetRate #define fnDecompress_GetRate IOCTL_Decompress_GetRate #define fnDecompress_SetTFRMode IOCTL_Decompress_SetTFRMode #define fnDecompress_GetTFRMode IOCTL_Decompress_GetTFRMode //==========================================================================//--------------------------------------------------------------------------// Device support//--------------------------------------------------------------------------//#define FILE_DEVICE_DEVCTRL 0x8007#define DEVCTRL_IOCTL_CODE( fn, Access, ArgSize ) CTL_CODE( FILE_DEVICE_DEVCTRL, (0x800 + ArgSize + fn ), METHOD_BUFFERED, Access )#define IOCTL_DevCtrl_CheckROM DEVCTRL_IOCTL_CODE( 0, FILE_READ_ACCESS, ARG_VOID) // (void)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -