OSDN Git Service

* include/winioctl.h ( NTFS_VOLUME_DATA_BUFFER): Add structure.
authordannysmith <dannysmith>
Mon, 2 Feb 2004 05:48:16 +0000 (05:48 +0000)
committerdannysmith <dannysmith>
Mon, 2 Feb 2004 05:48:16 +0000 (05:48 +0000)
(FSCTL_GET_NTFS_VOLUME_DATA): Add macro.

winsup/w32api/ChangeLog
winsup/w32api/include/winioctl.h

index e5359bc..dd98d12 100644 (file)
@@ -1,5 +1,10 @@
 2004-02-02  Danny Smith  <dannysmith@users.sourceforge.net>
 
+       * include/winioctl.h ( NTFS_VOLUME_DATA_BUFFER): Add structure.
+       (FSCTL_GET_NTFS_VOLUME_DATA): Add macro.
+
+2004-02-02  Danny Smith  <dannysmith@users.sourceforge.net>
+
        * include/commctrl.h (ICC_STANDARD_CLASSES, ICC_LINK_CLASS): Add
        defines.
 
index d32b381..2457d60 100644 (file)
@@ -80,6 +80,7 @@ extern "C" {
 #define FSCTL_SET_COMPRESSION  CTL_CODE(FILE_DEVICE_FILE_SYSTEM,16,METHOD_BUFFERED,FILE_READ_DATA|FILE_WRITE_DATA)
 #define FSCTL_READ_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,17,METHOD_NEITHER,FILE_READ_DATA)
 #define FSCTL_WRITE_COMPRESSION        CTL_CODE(FILE_DEVICE_FILE_SYSTEM,18,METHOD_NEITHER,FILE_WRITE_DATA)
+#define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM,25,METHOD_BUFFERED,FILE_ANY_ACCESS)
 #define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM,27,METHOD_NEITHER,FILE_ANY_ACCESS)
 #define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM,28,METHOD_NEITHER,FILE_ANY_ACCESS)
 #define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,29,METHOD_BUFFERED,FILE_ANY_ACCESS)
@@ -502,6 +503,23 @@ typedef struct {
   LARGE_INTEGER BitmapSize;
   BYTE Buffer[1];
 } VOLUME_BITMAP_BUFFER,*PVOLUME_BITMAP_BUFFER;
+typedef struct {
+  LARGE_INTEGER VolumeSerialNumber;
+  LARGE_INTEGER NumberSectors;
+  LARGE_INTEGER TotalClusters;
+  LARGE_INTEGER FreeClusters;
+  LARGE_INTEGER TotalReserved;
+  DWORD BytesPerSector;
+  DWORD BytesPerCluster;
+  DWORD BytesPerFileRecordSegment;
+  DWORD ClustersPerFileRecordSegment;
+  LARGE_INTEGER MftValidDataLength;
+  LARGE_INTEGER MftStartLcn;
+  LARGE_INTEGER Mft2StartLcn;
+  LARGE_INTEGER MftZoneStart;
+  LARGE_INTEGER MftZoneEnd;
+} NTFS_VOLUME_DATA_BUFFER, *PNTFS_VOLUME_DATA_BUFFER;
+
 #define IsRecognizedPartition(t)\
   (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_12))||\
        ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_16))||\