home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 186 / DPCS0803.ISO / Café / Dev-C++ / devcpp4980.exe / $INSTDIR / include / winioctl.h < prev    next >
Encoding:
C/C++ Source or Header  |  2003-05-15  |  13.4 KB  |  315 lines

  1. #ifndef _WINIOCTL_H
  2. #define _WINIOCTL_H
  3. #if __GNUC__ >=3
  4. #pragma GCC system_header
  5. #endif
  6.  
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10. #define HIST_NO_OF_BUCKETS 24
  11. #define HISTOGRAM_BUCKET_SIZE sizeof(HISTOGRAM_BUCKET)
  12. #define DISK_HISTOGRAM_SIZE sizeof(DISK_HISTOGRAM)
  13. #define CTL_CODE(t,f,m,a) (((t)<<16)|((a)<<14)|((f)<<2)|(m))
  14. #define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE
  15. #define IOCTL_STORAGE_CHECK_VERIFY     CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
  16. #define IOCTL_STORAGE_CHECK_VERIFY2    CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS)
  17. #define IOCTL_STORAGE_MEDIA_REMOVAL    CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
  18. #define IOCTL_STORAGE_EJECT_MEDIA      CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
  19. #define IOCTL_STORAGE_LOAD_MEDIA       CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
  20. #define IOCTL_STORAGE_LOAD_MEDIA2      CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS)
  21. #define IOCTL_STORAGE_RESERVE          CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
  22. #define IOCTL_STORAGE_RELEASE          CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
  23. #define IOCTL_STORAGE_FIND_NEW_DEVICES CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
  24. #define IOCTL_STORAGE_EJECTION_CONTROL CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS)
  25. #define IOCTL_STORAGE_MCN_CONTROL      CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS)
  26. #define IOCTL_STORAGE_GET_MEDIA_TYPES  CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)
  27. #define IOCTL_STORAGE_GET_MEDIA_TYPES_EX CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)
  28. #define IOCTL_STORAGE_RESET_BUS        CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)
  29. #define IOCTL_STORAGE_RESET_DEVICE     CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
  30. #define IOCTL_STORAGE_GET_DEVICE_NUMBER CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)
  31. #define IOCTL_STORAGE_PREDICT_FAILURE CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS)
  32. #define IOCTL_DISK_BASE FILE_DEVICE_DISK
  33. #define IOCTL_DISK_GET_DRIVE_GEOMETRY CTL_CODE(IOCTL_DISK_BASE,0,METHOD_BUFFERED, FILE_ANY_ACCESS)
  34. #define IOCTL_DISK_GET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE,1,METHOD_BUFFERED,FILE_READ_ACCESS)
  35. #define IOCTL_DISK_SET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE,2,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
  36. #define IOCTL_DISK_GET_DRIVE_LAYOUT    CTL_CODE(IOCTL_DISK_BASE,3,METHOD_BUFFERED,FILE_READ_ACCESS)
  37. #define IOCTL_DISK_SET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,4,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
  38. #define IOCTL_DISK_VERIFY CTL_CODE(IOCTL_DISK_BASE,5,METHOD_BUFFERED,FILE_ANY_ACCESS)
  39. #define IOCTL_DISK_FORMAT_TRACKS CTL_CODE(IOCTL_DISK_BASE,6,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
  40. #define IOCTL_DISK_REASSIGN_BLOCKS CTL_CODE(IOCTL_DISK_BASE,7,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
  41. #define IOCTL_DISK_PERFORMANCE CTL_CODE(IOCTL_DISK_BASE,8,METHOD_BUFFERED,FILE_ANY_ACCESS)
  42. #define IOCTL_DISK_IS_WRITABLE CTL_CODE(IOCTL_DISK_BASE,9,METHOD_BUFFERED,FILE_ANY_ACCESS)
  43. #define IOCTL_DISK_LOGGING CTL_CODE(IOCTL_DISK_BASE,10,METHOD_BUFFERED,FILE_ANY_ACCESS)
  44. #define IOCTL_DISK_FORMAT_TRACKS_EX CTL_CODE(IOCTL_DISK_BASE,11,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
  45. #define IOCTL_DISK_HISTOGRAM_STRUCTURE CTL_CODE(IOCTL_DISK_BASE,12,METHOD_BUFFERED,FILE_ANY_ACCESS)
  46. #define IOCTL_DISK_HISTOGRAM_DATA CTL_CODE(IOCTL_DISK_BASE,13,METHOD_BUFFERED,FILE_ANY_ACCESS)
  47. #define IOCTL_DISK_HISTOGRAM_RESET CTL_CODE(IOCTL_DISK_BASE,14,METHOD_BUFFERED,FILE_ANY_ACCESS)
  48. #define IOCTL_DISK_REQUEST_STRUCTURE CTL_CODE(IOCTL_DISK_BASE,15,METHOD_BUFFERED,FILE_ANY_ACCESS)
  49. #define IOCTL_DISK_REQUEST_DATA CTL_CODE(IOCTL_DISK_BASE,16,METHOD_BUFFERED,FILE_ANY_ACCESS)
  50. #define IOCTL_DISK_CHECK_VERIFY CTL_CODE(IOCTL_DISK_BASE,0x200,METHOD_BUFFERED,FILE_READ_ACCESS)
  51. #define IOCTL_DISK_MEDIA_REMOVAL CTL_CODE(IOCTL_DISK_BASE,0x201,METHOD_BUFFERED,FILE_READ_ACCESS)
  52. #define IOCTL_DISK_EJECT_MEDIA CTL_CODE(IOCTL_DISK_BASE,0x202,METHOD_BUFFERED,FILE_READ_ACCESS)
  53. #define IOCTL_DISK_LOAD_MEDIA CTL_CODE(IOCTL_DISK_BASE,0x203,METHOD_BUFFERED,FILE_READ_ACCESS)
  54. #define IOCTL_DISK_RESERVE CTL_CODE(IOCTL_DISK_BASE,0x204,METHOD_BUFFERED,FILE_READ_ACCESS)
  55. #define IOCTL_DISK_RELEASE CTL_CODE(IOCTL_DISK_BASE,0x205,METHOD_BUFFERED,FILE_READ_ACCESS)
  56. #define IOCTL_DISK_FIND_NEW_DEVICES CTL_CODE(IOCTL_DISK_BASE,0x206,METHOD_BUFFERED,FILE_READ_ACCESS)
  57. #define IOCTL_DISK_REMOVE_DEVICE CTL_CODE(IOCTL_DISK_BASE,0x207,METHOD_BUFFERED,FILE_READ_ACCESS)
  58. #define IOCTL_DISK_GET_MEDIA_TYPES CTL_CODE(IOCTL_DISK_BASE,0x300,METHOD_BUFFERED,FILE_ANY_ACCESS)
  59. #define IOCTL_DISK_UPDATE_DRIVE_SIZE CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  60. #define IOCTL_SERIAL_LSRMST_INSERT    CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS)
  61. #define FSCTL_LOCK_VOLUME    CTL_CODE(FILE_DEVICE_FILE_SYSTEM,6,METHOD_BUFFERED,FILE_ANY_ACCESS)
  62. #define FSCTL_UNLOCK_VOLUME    CTL_CODE(FILE_DEVICE_FILE_SYSTEM,7,METHOD_BUFFERED,FILE_ANY_ACCESS)
  63. #define FSCTL_DISMOUNT_VOLUME    CTL_CODE(FILE_DEVICE_FILE_SYSTEM,8,METHOD_BUFFERED,FILE_ANY_ACCESS)
  64. #define FSCTL_MOUNT_DBLS_VOLUME    CTL_CODE(FILE_DEVICE_FILE_SYSTEM,13,METHOD_BUFFERED,FILE_ANY_ACCESS)
  65. #define FSCTL_GET_COMPRESSION    CTL_CODE(FILE_DEVICE_FILE_SYSTEM,15,METHOD_BUFFERED,FILE_ANY_ACCESS)
  66. #define FSCTL_SET_COMPRESSION    CTL_CODE(FILE_DEVICE_FILE_SYSTEM,16,METHOD_BUFFERED,FILE_READ_DATA|FILE_WRITE_DATA)
  67. #define FSCTL_READ_COMPRESSION    CTL_CODE(FILE_DEVICE_FILE_SYSTEM,17,METHOD_NEITHER,FILE_READ_DATA)
  68. #define FSCTL_WRITE_COMPRESSION    CTL_CODE(FILE_DEVICE_FILE_SYSTEM,18,METHOD_NEITHER,FILE_WRITE_DATA)
  69. #define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
  70. #define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_WRITE_DATA)
  71. #define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_WRITE_DATA)
  72. #define DEVICE_TYPE DWORD
  73. #define FILE_DEVICE_BEEP    1
  74. #define FILE_DEVICE_CD_ROM    2
  75. #define FILE_DEVICE_CD_ROM_FILE_SYSTEM    3
  76. #define FILE_DEVICE_CONTROLLER    4
  77. #define FILE_DEVICE_DATALINK    5
  78. #define FILE_DEVICE_DFS    6
  79. #define FILE_DEVICE_DISK    7
  80. #define FILE_DEVICE_DISK_FILE_SYSTEM    8
  81. #define FILE_DEVICE_FILE_SYSTEM    9
  82. #define FILE_DEVICE_INPORT_PORT    10
  83. #define FILE_DEVICE_KEYBOARD    11
  84. #define FILE_DEVICE_MAILSLOT    12
  85. #define FILE_DEVICE_MIDI_IN    13
  86. #define FILE_DEVICE_MIDI_OUT    14
  87. #define FILE_DEVICE_MOUSE    15
  88. #define FILE_DEVICE_MULTI_UNC_PROVIDER 16
  89. #define FILE_DEVICE_NAMED_PIPE    17
  90. #define FILE_DEVICE_NETWORK    18
  91. #define FILE_DEVICE_NETWORK_BROWSER    19
  92. #define FILE_DEVICE_NETWORK_FILE_SYSTEM    20
  93. #define FILE_DEVICE_NULL    21
  94. #define FILE_DEVICE_PARALLEL_PORT    22
  95. #define FILE_DEVICE_PHYSICAL_NETCARD    23
  96. #define FILE_DEVICE_PRINTER    24
  97. #define FILE_DEVICE_SCANNER    25
  98. #define FILE_DEVICE_SERIAL_MOUSE_PORT    26
  99. #define FILE_DEVICE_SERIAL_PORT    27
  100. #define FILE_DEVICE_SCREEN    28
  101. #define FILE_DEVICE_SOUND    29
  102. #define FILE_DEVICE_STREAMS    30
  103. #define FILE_DEVICE_TAPE    31
  104. #define FILE_DEVICE_TAPE_FILE_SYSTEM    32
  105. #define FILE_DEVICE_TRANSPORT    33
  106. #define FILE_DEVICE_UNKNOWN    34
  107. #define FILE_DEVICE_VIDEO    35
  108. #define FILE_DEVICE_VIRTUAL_DISK    36
  109. #define FILE_DEVICE_WAVE_IN    37
  110. #define FILE_DEVICE_WAVE_OUT    38
  111. #define FILE_DEVICE_8042_PORT    39
  112. #define FILE_DEVICE_NETWORK_REDIRECTOR    40
  113. #define FILE_DEVICE_BATTERY    41
  114. #define FILE_DEVICE_BUS_EXTENDER    42
  115. #define FILE_DEVICE_MODEM           43
  116. #define FILE_DEVICE_VDM             44
  117. #define FILE_DEVICE_MASS_STORAGE    45
  118. #define FILE_DEVICE_SMB             46
  119. #define FILE_DEVICE_KS              47
  120. #define FILE_DEVICE_CHANGER         48
  121. #define FILE_DEVICE_SMARTCARD       49
  122. #define FILE_DEVICE_ACPI            50
  123. #define FILE_DEVICE_DVD             51
  124. #define FILE_DEVICE_FULLSCREEN_VIDEO 52
  125. #define FILE_DEVICE_DFS_FILE_SYSTEM  53
  126. #define FILE_DEVICE_DFS_VOLUME       54
  127. #define FILE_DEVICE_SERENUM          55
  128. #define FILE_DEVICE_TERMSRV          56
  129. #define FILE_DEVICE_KSEC             57
  130. #define PARTITION_ENTRY_UNUSED    0
  131. #define PARTITION_FAT_12    1
  132. #define PARTITION_XENIX_1    2
  133. #define PARTITION_XENIX_2    3
  134. #define PARTITION_FAT_16    4
  135. #define PARTITION_EXTENDED    5
  136. #define PARTITION_HUGE    6
  137. #define PARTITION_IFS    7
  138. #define PARTITION_FAT32 0x0B
  139. #define PARTITION_FAT32_XINT13 0x0C
  140. #define PARTITION_XINT13 0x0E
  141. #define PARTITION_XINT13_EXTENDED 0x0F
  142. #define PARTITION_PREP    0x41
  143. #define PARTITION_LDM    0x42
  144. #define PARTITION_UNIX    0x63
  145. #define PARTITION_NTFT    128
  146. #define VALID_NTFT    0xC0
  147. #define METHOD_BUFFERED    0
  148. #define METHOD_IN_DIRECT    1
  149. #define METHOD_OUT_DIRECT    2
  150. #define METHOD_NEITHER        3
  151. #define SERIAL_LSRMST_ESCAPE        0
  152. #define SERIAL_LSRMST_LSR_DATA      1
  153. #define SERIAL_LSRMST_LSR_NODATA    2
  154. #define SERIAL_LSRMST_MST    3
  155. #define FILE_ANY_ACCESS     0
  156. #define FILE_READ_ACCESS    1
  157. #define FILE_WRITE_ACCESS    2
  158. #define FILE_SPECIAL_ACCESS (FILE_ANY_ACCESS)
  159. #define DISK_LOGGING_START    0
  160. #define DISK_LOGGING_STOP    1
  161. #define DISK_LOGGING_DUMP    2
  162. #define DISK_BINNING        3
  163. typedef WORD BAD_TRACK_NUMBER,*PBAD_TRACK_NUMBER;
  164. typedef enum _BIN_TYPES {RequestSize,RequestLocation} BIN_TYPES;
  165. typedef struct _BIN_RANGE {
  166.     LARGE_INTEGER StartValue;
  167.     LARGE_INTEGER Length;
  168. } BIN_RANGE,*PBIN_RANGE;
  169. typedef struct _BIN_COUNT {
  170.     BIN_RANGE BinRange;
  171.     DWORD BinCount;
  172. } BIN_COUNT,*PBIN_COUNT;
  173. typedef struct _BIN_RESULTS {
  174.     DWORD NumberOfBins;
  175.     BIN_COUNT BinCounts[1];
  176. } BIN_RESULTS,*PBIN_RESULTS;
  177. typedef enum _MEDIA_TYPE {
  178.     Unknown,
  179.     F5_1Pt2_512,
  180.     F3_1Pt44_512,
  181.     F3_2Pt88_512,
  182.     F3_20Pt8_512,
  183.     F3_720_512,
  184.     F5_360_512,
  185.     F5_320_512,
  186.     F5_320_1024,
  187.     F5_180_512,
  188.     F5_160_512,
  189.     RemovableMedia,
  190.     FixedMedia
  191. } MEDIA_TYPE, *PMEDIA_TYPE ;
  192. typedef struct _DISK_GEOMETRY {
  193.     LARGE_INTEGER Cylinders;
  194.     MEDIA_TYPE MediaType;
  195.     DWORD TracksPerCylinder;
  196.     DWORD SectorsPerTrack;
  197.     DWORD BytesPerSector;
  198. } DISK_GEOMETRY,  *PDISK_GEOMETRY;
  199. typedef struct _DISK_PERFORMANCE {
  200.     LARGE_INTEGER BytesRead;
  201.     LARGE_INTEGER BytesWritten;
  202.     LARGE_INTEGER ReadTime;
  203.     LARGE_INTEGER WriteTime;
  204.     DWORD ReadCount;
  205.     DWORD WriteCount;
  206.     DWORD QueueDepth;
  207. } DISK_PERFORMANCE, *PDISK_PERFORMANCE;
  208. typedef struct _DISK_RECORD {
  209.     LARGE_INTEGER ByteOffset;
  210.     LARGE_INTEGER StartTime;
  211.     LARGE_INTEGER EndTime;
  212.     PVOID VirtualAddress;
  213.     DWORD NumberOfBytes;
  214.     BYTE DeviceNumber;
  215.     BOOLEAN ReadRequest;
  216. } DISK_RECORD,*PDISK_RECORD;
  217. typedef struct _DISK_LOGGING {
  218.     BYTE Function;
  219.     PVOID BufferAddress;
  220.     DWORD BufferSize;
  221. } DISK_LOGGING,*PDISK_LOGGING;
  222. typedef struct _FORMAT_PARAMETERS {
  223.     MEDIA_TYPE MediaType;
  224.     DWORD StartCylinderNumber;
  225.     DWORD EndCylinderNumber;
  226.     DWORD StartHeadNumber;
  227.     DWORD EndHeadNumber;
  228. } FORMAT_PARAMETERS,*PFORMAT_PARAMETERS;
  229. typedef struct _FORMAT_EX_PARAMETERS {
  230.     MEDIA_TYPE MediaType;
  231.     DWORD StartCylinderNumber;
  232.     DWORD EndCylinderNumber;
  233.     DWORD StartHeadNumber;
  234.     DWORD EndHeadNumber;
  235.     WORD FormatGapLength;
  236.     WORD SectorsPerTrack;
  237.     WORD SectorNumber[1];
  238. } FORMAT_EX_PARAMETERS,*PFORMAT_EX_PARAMETERS;
  239. typedef struct _HISTOGRAM_BUCKET {
  240.     DWORD Reads;
  241.     DWORD Writes;
  242. } HISTOGRAM_BUCKET,*PHISTOGRAM_BUCKET;
  243. typedef struct _DISK_HISTOGRAM {
  244.     LARGE_INTEGER DiskSize;
  245.     LARGE_INTEGER Start;
  246.     LARGE_INTEGER End;
  247.     LARGE_INTEGER Average;
  248.     LARGE_INTEGER AverageRead;
  249.     LARGE_INTEGER AverageWrite;
  250.     DWORD Granularity;
  251.     DWORD Size;
  252.     DWORD ReadCount;
  253.     DWORD WriteCount;
  254.     PHISTOGRAM_BUCKET Histogram;
  255. } DISK_HISTOGRAM,*PDISK_HISTOGRAM;
  256. typedef struct _PARTITION_INFORMATION {
  257.     LARGE_INTEGER StartingOffset;
  258.     LARGE_INTEGER PartitionLength;
  259.     DWORD HiddenSectors;
  260.     DWORD PartitionNumber;
  261.     BYTE PartitionType;
  262.     BOOLEAN BootIndicator;
  263.     BOOLEAN RecognizedPartition;
  264.     BOOLEAN RewritePartition;
  265. } PARTITION_INFORMATION,*PPARTITION_INFORMATION;
  266. typedef struct _DRIVE_LAYOUT_INFORMATION {
  267.     DWORD PartitionCount;
  268.     DWORD Signature;
  269.     PARTITION_INFORMATION PartitionEntry[1];
  270. } DRIVE_LAYOUT_INFORMATION, *PDRIVE_LAYOUT_INFORMATION;
  271. typedef struct _PERF_BIN {
  272.     DWORD NumberOfBins;
  273.     DWORD TypeOfBin;
  274.     BIN_RANGE BinsRanges[1];
  275. } PERF_BIN,*PPERF_BIN;
  276. typedef struct _PREVENT_MEDIA_REMOVAL {
  277.     BOOLEAN PreventMediaRemoval;
  278. } PREVENT_MEDIA_REMOVAL,*PPREVENT_MEDIA_REMOVAL;
  279. typedef struct _REASSIGN_BLOCKS {
  280.     WORD Reserved;
  281.     WORD Count;
  282.     DWORD BlockNumber[1];
  283. } REASSIGN_BLOCKS,*PREASSIGN_BLOCKS;
  284. typedef struct _SET_PARTITION_INFORMATION {
  285.     BYTE PartitionType;
  286. } SET_PARTITION_INFORMATION,*PSET_PARTITION_INFORMATION;
  287. typedef struct _VERIFY_INFORMATION {
  288.     LARGE_INTEGER StartingOffset;
  289.     DWORD Length;
  290. } VERIFY_INFORMATION,*PVERIFY_INFORMATION;
  291. #define IsRecognizedPartition(t)\
  292.   (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_12))||\
  293.     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_16))||\
  294.     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_IFS))||\
  295.     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_HUGE))||\
  296.     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32))||\
  297.     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32_XINT13))||\
  298.     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_XINT13))||\
  299.     ((t&~PARTITION_NTFT)==PARTITION_FAT_12)||\
  300.     ((t&~PARTITION_NTFT)==PARTITION_FAT_16)||\
  301.     ((t&~PARTITION_NTFT)==PARTITION_IFS)||\
  302.     ((t&~PARTITION_NTFT)==PARTITION_HUGE)||\
  303.     ((t&~PARTITION_NTFT)==PARTITION_FAT32)||\
  304.     ((t&~PARTITION_NTFT)==PARTITION_FAT32_XINT13)||\
  305.     ((t&~PARTITION_NTFT)==PARTITION_XINT13))
  306. #define IsContainerPartition(t)\
  307.   (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_EXTENDED))||\
  308.     ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_XINT13_EXTENDED))||\
  309.     ((t&~PARTITION_NTFT)==PARTITION_EXTENDED)||\
  310.     ((t&~PARTITION_NTFT)==PARTITION_XINT13_EXTENDED))
  311. #ifdef __cplusplus
  312. }
  313. #endif
  314. #endif
  315.