dvbIoctl.h
上传用户:thjx518
上传日期:2022-03-16
资源大小:179k
文件大小:5k
源码类别:

mpeg/mp3

开发平台:

Visual C++

  1. /*++ BUILD Version: 0004    // Increment this if a change has global effects
  2. Copyright (c) 1992-1993  Microsoft Corporation
  3. Module Name:
  4.     devioctl.h
  5. Abstract:
  6.     This module contains
  7. Author:
  8.     Andre Vachon (andreva) 21-Feb-1992
  9. Revision History:
  10. --*/
  11. // begin_winioctl
  12. #ifndef _DEVIOCTL_
  13. #define _DEVIOCTL_
  14. // begin_ntddk begin_nthal
  15. //
  16. // Define the various device type values.  Note that values used by Microsoft
  17. // Corporation are in the range 0-32767, and 32768-65535 are reserved for use
  18. // by customers.
  19. //
  20. #define DEVICE_TYPE ULONG
  21. #define FILE_DEVICE_BEEP                0x00000001
  22. #define FILE_DEVICE_CD_ROM              0x00000002
  23. #define FILE_DEVICE_CD_ROM_FILE_SYSTEM  0x00000003
  24. #define FILE_DEVICE_CONTROLLER          0x00000004
  25. #define FILE_DEVICE_DATALINK            0x00000005
  26. #define FILE_DEVICE_DFS                 0x00000006
  27. #define FILE_DEVICE_DISK                0x00000007
  28. #define FILE_DEVICE_DISK_FILE_SYSTEM    0x00000008
  29. #define FILE_DEVICE_FILE_SYSTEM         0x00000009
  30. #define FILE_DEVICE_INPORT_PORT         0x0000000a
  31. #define FILE_DEVICE_KEYBOARD            0x0000000b
  32. #define FILE_DEVICE_MAILSLOT            0x0000000c
  33. #define FILE_DEVICE_MIDI_IN             0x0000000d
  34. #define FILE_DEVICE_MIDI_OUT            0x0000000e
  35. #define FILE_DEVICE_MOUSE               0x0000000f
  36. #define FILE_DEVICE_MULTI_UNC_PROVIDER  0x00000010
  37. #define FILE_DEVICE_NAMED_PIPE          0x00000011
  38. #define FILE_DEVICE_NETWORK             0x00000012
  39. #define FILE_DEVICE_NETWORK_BROWSER     0x00000013
  40. #define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014
  41. #define FILE_DEVICE_NULL                0x00000015
  42. #define FILE_DEVICE_PARALLEL_PORT       0x00000016
  43. #define FILE_DEVICE_PHYSICAL_NETCARD    0x00000017
  44. #define FILE_DEVICE_PRINTER             0x00000018
  45. #define FILE_DEVICE_SCANNER             0x00000019
  46. #define FILE_DEVICE_SERIAL_MOUSE_PORT   0x0000001a
  47. #define FILE_DEVICE_SERIAL_PORT         0x0000001b
  48. #define FILE_DEVICE_SCREEN              0x0000001c
  49. #define FILE_DEVICE_SOUND               0x0000001d
  50. #define FILE_DEVICE_STREAMS             0x0000001e
  51. #define FILE_DEVICE_TAPE                0x0000001f
  52. #define FILE_DEVICE_TAPE_FILE_SYSTEM    0x00000020
  53. #define FILE_DEVICE_TRANSPORT           0x00000021
  54. #define FILE_DEVICE_UNKNOWN             0x00000022
  55. #define FILE_DEVICE_VIDEO               0x00000023
  56. #define FILE_DEVICE_VIRTUAL_DISK        0x00000024
  57. #define FILE_DEVICE_WAVE_IN             0x00000025
  58. #define FILE_DEVICE_WAVE_OUT            0x00000026
  59. #define FILE_DEVICE_8042_PORT           0x00000027
  60. #define FILE_DEVICE_NETWORK_REDIRECTOR  0x00000028
  61. //
  62. // Macro definition for defining IOCTL and FSCTL function control codes.  Note
  63. // that function codes 0-2047 are reserved for Microsoft Corporation, and
  64. // 2048-4095 are reserved for customers.
  65. //
  66. #define CTL_CODE( DeviceType, Function, Method, Access ) (                 
  67.     ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) 
  68. )
  69. //
  70. // Define the method codes for how buffers are passed for I/O and FS controls
  71. //
  72. #define METHOD_BUFFERED                 0
  73. #define METHOD_IN_DIRECT                1
  74. #define METHOD_OUT_DIRECT               2
  75. #define METHOD_NEITHER                  3
  76. //
  77. // Define the access check value for any access
  78. //
  79. //
  80. // The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in
  81. // ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these
  82. // constants *MUST* always be in sync.
  83. //
  84. #define FILE_ANY_ACCESS                 0
  85. #define FILE_READ_ACCESS          ( 0x0001 )    // file & pipe
  86. #define FILE_WRITE_ACCESS         ( 0x0002 )    // file & pipe
  87. #endif // _DEVIOCTL_
  88. #define MaxPlxDmaChannels 2 // Channels are assigned permanently to transfer directions (if supported)
  89. #define TxDir 0 //
  90. #define RxDir 1
  91. // end_ntddk end_nthal
  92. #define RLSetHigh 1
  93. #define FrSz204 2
  94. #define FILE_DEVICE_DVB_PORT 32768  
  95. // Read channel statistics, zero counters
  96. #define IOCTL_DVB_RD_ST CTL_CODE(FILE_DEVICE_DVB_PORT,2048,METHOD_BUFFERED,FILE_ANY_ACCESS)
  97. // read channel statistics, don't zero counters
  98. #define IOCTL_DVB_RD_ST_NZ CTL_CODE(FILE_DEVICE_DVB_PORT,2050,METHOD_BUFFERED,FILE_ANY_ACCESS)
  99. // read channel configuration
  100. #define IOCTL_DVB_RD_CFG CTL_CODE(FILE_DEVICE_DVB_PORT,2051,METHOD_BUFFERED,FILE_ANY_ACCESS)
  101. #define IOCTL_DVB_SET_CFG CTL_CODE(FILE_DEVICE_DVB_PORT,2049,METHOD_BUFFERED,FILE_ANY_ACCESS)
  102. #define IOCTL_DVB_GET_STATUS CTL_CODE(FILE_DEVICE_DVB_PORT,2052,METHOD_BUFFERED,FILE_ANY_ACCESS)
  103. #define IOCTL_DVB_SET_COMMAND CTL_CODE(FILE_DEVICE_DVB_PORT,2053,METHOD_BUFFERED,FILE_ANY_ACCESS)
  104. #define IOCTL_DVB_RESET_REFRAME CTL_CODE(FILE_DEVICE_DVB_PORT,2056,METHOD_BUFFERED,FILE_ANY_ACCESS)
  105. struct DVBStats {
  106. ULONG StartDma[MaxPlxDmaChannels],
  107. NumLost,NumInts[MaxPlxDmaChannels],
  108. NumFifoErrs[MaxPlxDmaChannels],
  109. NumPciAbts[MaxPlxDmaChannels];
  110.  };
  111. struct DVBCfg {
  112. BOOLEAN DirSupported[MaxPlxDmaChannels];//MaxPlxDmaChannels=2
  113. //[0]表示是否支持发送,[1]表示是否支持接受
  114. int DVB_opens,
  115. OptionFlags,
  116. MaxTransferSize[MaxPlxDmaChannels],//定义接收和发送的缓存大小
  117. MaxBuffers[MaxPlxDmaChannels],//定义接收和发送的缓存数量
  118. FifoAe[MaxPlxDmaChannels],
  119. FifoAf[MaxPlxDmaChannels],
  120. Stuffing;
  121.  };
  122. // end_winioctl