Browse Source

* some defines from winioctl updated, mantis 15137

git-svn-id: trunk@14216 -
marco 15 years ago
parent
commit
c83ee377c1
3 changed files with 104 additions and 12 deletions
  1. 3 0
      rtl/win/wininc/base.inc
  2. 12 0
      rtl/win/wininc/defines.inc
  3. 89 12
      rtl/win/wininc/struct.inc

+ 3 - 0
rtl/win/wininc/base.inc

@@ -355,6 +355,9 @@
     FINDEX_SEARCH_OPS   = _FINDEX_SEARCH_OPS;
     FINDEX_SEARCH_OPS   = _FINDEX_SEARCH_OPS;
     PFINDEX_SEARCH_OPS  = ^TFINDEX_SEARCH_OPS;
     PFINDEX_SEARCH_OPS  = ^TFINDEX_SEARCH_OPS;
 
 
+    PARTITION_STYLE     = (PARTITION_STYLE_MBR:=0,PARTITION_STYLE_GPT,PARTITION_STYLE_RAW);
+    TPARTITION_STYLE    = PARTITION_STYLE;
+    PPARTITION_STYLE    = ^TPARTITION_STYLE;
 
 
  {
  {
    Macros
    Macros

+ 12 - 0
rtl/win/wininc/defines.inc

@@ -5647,6 +5647,18 @@ const
   FIND_FIRST_EX_CASE_SENSITIVE   = $00000001;
   FIND_FIRST_EX_CASE_SENSITIVE   = $00000001;
   FIND_FIRST_EX_LARGE_FETCH      = $00000002;
   FIND_FIRST_EX_LARGE_FETCH      = $00000002;
 
 
+  GPT_ATTRIBUTE_PLATFORM_REQUIRED  = $0000000000000001;
+
+//
+// The following are GPT partition attributes applicable when the
+// PartitionType is PARTITION_BASIC_DATA_GUID.
+//
+
+  GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER    =qword($8000000000000000);
+  GPT_BASIC_DATA_ATTRIBUTE_HIDDEN             =qword($4000000000000000);
+  GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY        =qword($2000000000000000);
+  GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY          =qword($1000000000000000);
+
 {$endif read_interface}
 {$endif read_interface}
 
 
 {$ifdef read_implementation}
 {$ifdef read_implementation}

+ 89 - 12
rtl/win/wininc/struct.inc

@@ -2250,17 +2250,100 @@ Const
      PDRAWTEXTPARAMS = ^DRAWTEXTPARAMS;
      PDRAWTEXTPARAMS = ^DRAWTEXTPARAMS;
 
 
      PARTITION_INFORMATION = record
      PARTITION_INFORMATION = record
-          PartitionType : BYTE;
-          BootIndicator : BOOLEAN;
-          RecognizedPartition : BOOLEAN;
-          RewritePartition : BOOLEAN;
           StartingOffset : LARGE_INTEGER;
           StartingOffset : LARGE_INTEGER;
-          PartitionLength : LARGE_INTEGER;
-          HiddenSectors : LARGE_INTEGER;
+          PartitionLength: LARGE_INTEGER;
+          HiddenSectors  : DWORD;
+	  PartitionNumber: DWORD;
+          PartitionType  : BYTE;
+	  BootIndicator       : BYTEBOOL;
+          RecognizedPartition : BYTEBOOL;
+          RewritePartition    : BYTEBOOL;
        end;
        end;
      _PARTITION_INFORMATION = PARTITION_INFORMATION;
      _PARTITION_INFORMATION = PARTITION_INFORMATION;
      TPARTITIONINFORMATION = PARTITION_INFORMATION;
      TPARTITIONINFORMATION = PARTITION_INFORMATION;
      PPARTITIONINFORMATION = ^PARTITION_INFORMATION;
      PPARTITIONINFORMATION = ^PARTITION_INFORMATION;
+     
+     PARTITION_INFORMATION_GPT = record
+		                   PartitionType  : TGUID;
+				   PartitionID    : TGUID;
+				   Attributes     : DWORD64;
+				   Name		  : array[0..35] OF WCHAR;
+				  end; 	
+     TPARTITION_INFORMATION_GPT= PARTITION_INFORMATION_GPT;
+     PPARTITION_INFORMATION_GPT= ^PARTITION_INFORMATION_GPT;
+
+     PARTITION_INFORMATION_MBR = record
+		                   PartitionType  : Byte;
+				   BootIndicator  : ByteBool;
+				   RecognizedPartition : ByteBool;
+				   HiddenSectors  : DWORD;
+				  end; 	
+     TPARTITION_INFORMATION_MBR=  PARTITION_INFORMATION_MBR;
+     PPARTITION_INFORMATION_MBR= ^PARTITION_INFORMATION_MBR;
+
+     SET_PARTITION_INFORMATION = record
+          PartitionType : BYTE;
+       end;
+     _SET_PARTITION_INFORMATION = SET_PARTITION_INFORMATION;
+     TSETPARTITIONINFORMATION = SET_PARTITION_INFORMATION;
+     PSETPARTITIONINFORMATION = ^SET_PARTITION_INFORMATION;
+
+     SET_PARTITION_INFORMATION_MBR  = PARTITION_INFORMATION;
+     TSET_PARTITION_INFORMATION_MBR = PARTITION_INFORMATION;
+
+     SET_PARTITION_INFORMATION_GPT  = PARTITION_INFORMATION_GPT;
+     TSET_PARTITION_INFORMATION_GPT = PARTITION_INFORMATION_GPT;
+
+     SET_PARTITION_INFORMATION_EX   = record
+                                      PartitionStyle : TPartition_Style;
+				      case integer of 
+					0 : (mbr : SET_PARTITION_INFORMATION_MBR);
+					1 : (GPT : SET_PARTITION_INFORMATION_GPT);
+				      end;
+     TSET_PARTITION_INFORMATION_EX  = SET_PARTITION_INFORMATION_EX;  
+     PSET_PARTITION_INFORMATION_EX  = ^SET_PARTITION_INFORMATION_EX;  
+
+     CREATE_DISK_GPT = record
+			 DiskID 	   : TGUID;
+			 MaxPartitionCount : DWord;
+		        end;
+     TCREATE_DISK_GPT = CREATE_DISK_GPT;
+     PCREATE_DISK_GPT = ^TCREATE_DISK_GPT;
+
+     CREATE_DISK_MBR = record
+			 Signature 	   : DWord;
+		        end;
+     TCREATE_DISK_MBR = CREATE_DISK_MBR;
+     PCREATE_DISK_MBR = ^TCREATE_DISK_MBR;
+
+     CREATE_DISK  = record
+		       PartitionStyle : TPartition_Style;
+		       case integer of 
+			 0: ( MBR : Create_Disk_MBR);
+		         1: ( GPT : Create_Disk_GPT);	 
+		      end;
+     TCREATE_DISK = CREATE_DISK;
+     PCREATE_DISK = ^TCREATE_DISK;
+    
+     GET_LENGTH_INFORMATION = record
+	                        Length : LARGE_INTEGER;
+			      end;
+     TGET_LENGTH_INFORMATION = GET_LENGTH_INFORMATION; 
+     PGET_LENGTH_INFORMATION = ^GET_LENGTH_INFORMATION;
+
+     PARTITION_INFORMATION_EX = record
+	  PartitionStyle  : TPartition_Style;
+          StartingOffset  : LARGE_INTEGER;
+          PartitionLength : LARGE_INTEGER;
+	  PartitionNumber : DWORD;
+          RewritePartition: BYTEBOOL;
+	  case integer of 
+	    0: ( MBR : PARTITION_INFORMATION_MBR);
+	    1: ( GPT : PARTITION_INFORMATION_GPT);	 
+       end;
+     _PARTITION_INFORMATION_EX = PARTITION_INFORMATION_EX;
+     TPARTITIONINFORMATION_EX  = PARTITION_INFORMATION_EX;
+     PPARTITIONINFORMATION_EX  = ^PARTITION_INFORMATION_EX;
 
 
      DRIVE_LAYOUT_INFORMATION = record
      DRIVE_LAYOUT_INFORMATION = record
           PartitionCount : DWORD;
           PartitionCount : DWORD;
@@ -5822,12 +5905,6 @@ Const
      TSESSIONHEADER = SESSION_HEADER;
      TSESSIONHEADER = SESSION_HEADER;
      PSESSIONHEADER = ^SESSION_HEADER;
      PSESSIONHEADER = ^SESSION_HEADER;
 
 
-     SET_PARTITION_INFORMATION = record
-          PartitionType : BYTE;
-       end;
-     _SET_PARTITION_INFORMATION = SET_PARTITION_INFORMATION;
-     TSETPARTITIONINFORMATION = SET_PARTITION_INFORMATION;
-     PSETPARTITIONINFORMATION = ^SET_PARTITION_INFORMATION;
 
 
      SHCONTF = (SHCONTF_FOLDERS := 32,SHCONTF_NONFOLDERS := 64,
      SHCONTF = (SHCONTF_FOLDERS := 32,SHCONTF_NONFOLDERS := 64,
        SHCONTF_INCLUDEHIDDEN := 128);
        SHCONTF_INCLUDEHIDDEN := 128);