https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7ae3d530dbd5ec7f5adffd...
commit 7ae3d530dbd5ec7f5adffdd14da6863c95f0af2c Author: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org AuthorDate: Sun Dec 6 23:42:58 2020 +0100 Commit: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org CommitDate: Sun Dec 6 23:44:10 2020 +0100
[PSDK] Re-arrange DISK/DRIVE/PARTITION layout-related structures in ntdddisk.h and winioctl.h. Add few missing structures in winioctl.h. --- sdk/include/psdk/ntdddisk.h | 226 ++++++++++++++++---------------- sdk/include/psdk/winioctl.h | 309 +++++++++++++++++++++++++------------------- 2 files changed, 295 insertions(+), 240 deletions(-)
diff --git a/sdk/include/psdk/ntdddisk.h b/sdk/include/psdk/ntdddisk.h index 3fe648c4cc3..b1b22d53f40 100644 --- a/sdk/include/psdk/ntdddisk.h +++ b/sdk/include/psdk/ntdddisk.h @@ -355,7 +355,10 @@ extern "C" { ((PartitionType) == PARTITION_XINT13)) #endif
-#if(_WIN32_WINNT >= 0x0500) +#if (_WIN32_WINNT >= 0x0500) +/* Actually it should be > 0x0500, since this is not present in Windows 2000; + * however we keep >= 0x0500 for compatibility with MS PSDK. */ + #define GPT_ATTRIBUTE_PLATFORM_REQUIRED 0x00000001 #define GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY 0x10000000 #define GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY 0x20000000 @@ -398,6 +401,69 @@ typedef enum _MEDIA_TYPE { F3_32M_512 } MEDIA_TYPE, *PMEDIA_TYPE;
+typedef struct _DISK_GEOMETRY { + LARGE_INTEGER Cylinders; + MEDIA_TYPE MediaType; + ULONG TracksPerCylinder; + ULONG SectorsPerTrack; + ULONG BytesPerSector; +} DISK_GEOMETRY, *PDISK_GEOMETRY; + +typedef struct _PARTITION_INFORMATION { + LARGE_INTEGER StartingOffset; + LARGE_INTEGER PartitionLength; + ULONG HiddenSectors; + ULONG PartitionNumber; + UCHAR PartitionType; + BOOLEAN BootIndicator; + BOOLEAN RecognizedPartition; + BOOLEAN RewritePartition; +} PARTITION_INFORMATION, *PPARTITION_INFORMATION; + +typedef struct _DRIVE_LAYOUT_INFORMATION { + ULONG PartitionCount; + ULONG Signature; + PARTITION_INFORMATION PartitionEntry[1]; +} DRIVE_LAYOUT_INFORMATION, *PDRIVE_LAYOUT_INFORMATION; + +typedef struct _SET_PARTITION_INFORMATION { + UCHAR PartitionType; +} SET_PARTITION_INFORMATION, *PSET_PARTITION_INFORMATION; + +#if (_WIN32_WINNT >= 0x0500) +/* Actually it should be > 0x0500, since this is not present in Windows 2000; + * however we keep >= 0x0500 for compatibility with MS PSDK. */ + +typedef enum _PARTITION_STYLE { + PARTITION_STYLE_MBR, + PARTITION_STYLE_GPT, + PARTITION_STYLE_RAW, +#ifdef __REACTOS__ + /* ReactOS custom partition handlers */ + PARTITION_STYLE_BRFR = 128 /* Xbox-BRFR partitioning scheme */ +#endif +} PARTITION_STYLE; + +typedef struct _CREATE_DISK_GPT +{ + GUID DiskId; + ULONG MaxPartitionCount; +} CREATE_DISK_GPT, *PCREATE_DISK_GPT; + +typedef struct _CREATE_DISK_MBR +{ + ULONG Signature; +} CREATE_DISK_MBR, *PCREATE_DISK_MBR; + +typedef struct _CREATE_DISK +{ + PARTITION_STYLE PartitionStyle; + union { + CREATE_DISK_MBR Mbr; + CREATE_DISK_GPT Gpt; + }; +} CREATE_DISK, *PCREATE_DISK; + typedef enum _DETECTION_TYPE { DetectNone, DetectInt13, @@ -434,13 +500,19 @@ typedef struct _DISK_DETECTION_INFO { } DUMMYUNIONNAME; } DISK_DETECTION_INFO, *PDISK_DETECTION_INFO;
-typedef struct _DISK_GEOMETRY { - LARGE_INTEGER Cylinders; - MEDIA_TYPE MediaType; - ULONG TracksPerCylinder; - ULONG SectorsPerTrack; - ULONG BytesPerSector; -} DISK_GEOMETRY, *PDISK_GEOMETRY; +typedef struct _DISK_PARTITION_INFO { + ULONG SizeOfPartitionInfo; + PARTITION_STYLE PartitionStyle; + _ANONYMOUS_UNION union { + struct { + ULONG Signature; + ULONG CheckSum; + } Mbr; + struct { + GUID DiskId; + } Gpt; + } DUMMYUNIONNAME; +} DISK_PARTITION_INFO, *PDISK_PARTITION_INFO;
typedef struct _DISK_GEOMETRY_EX { DISK_GEOMETRY Geometry; @@ -464,17 +536,6 @@ typedef struct _DISK_GEOMETRY_EX { DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo))) #endif
-typedef struct _PARTITION_INFORMATION { - LARGE_INTEGER StartingOffset; - LARGE_INTEGER PartitionLength; - ULONG HiddenSectors; - ULONG PartitionNumber; - UCHAR PartitionType; - BOOLEAN BootIndicator; - BOOLEAN RecognizedPartition; - BOOLEAN RewritePartition; -} PARTITION_INFORMATION, *PPARTITION_INFORMATION; - typedef struct _PARTITION_INFORMATION_GPT { GUID PartitionType; GUID PartitionId; @@ -482,45 +543,6 @@ typedef struct _PARTITION_INFORMATION_GPT { WCHAR Name [36]; } PARTITION_INFORMATION_GPT, *PPARTITION_INFORMATION_GPT;
-typedef enum _PARTITION_STYLE { - PARTITION_STYLE_MBR, - PARTITION_STYLE_GPT, - PARTITION_STYLE_RAW, -#ifdef __REACTOS__ - /* ReactOS custom partition handlers */ - PARTITION_STYLE_BRFR = 128 /* Xbox-BRFR partitioning scheme */ -#endif -} PARTITION_STYLE; - -typedef struct _DISK_PARTITION_INFO { - ULONG SizeOfPartitionInfo; - PARTITION_STYLE PartitionStyle; - _ANONYMOUS_UNION union { - struct { - ULONG Signature; - ULONG CheckSum; - } Mbr; - struct { - GUID DiskId; - } Gpt; - } DUMMYUNIONNAME; -} DISK_PARTITION_INFO, *PDISK_PARTITION_INFO; - -typedef struct _DISK_PERFORMANCE { - LARGE_INTEGER BytesRead; - LARGE_INTEGER BytesWritten; - LARGE_INTEGER ReadTime; - LARGE_INTEGER WriteTime; - LARGE_INTEGER IdleTime; - ULONG ReadCount; - ULONG WriteCount; - ULONG QueueDepth; - ULONG SplitCount; - LARGE_INTEGER QueryTime; - ULONG StorageDeviceNumber; - WCHAR StorageManagerName[8]; -} DISK_PERFORMANCE, *PDISK_PERFORMANCE; - typedef struct _PARTITION_INFORMATION_MBR { UCHAR PartitionType; BOOLEAN BootIndicator; @@ -543,19 +565,6 @@ typedef struct _PARTITION_INFORMATION_EX { } DUMMYUNIONNAME; } PARTITION_INFORMATION_EX, *PPARTITION_INFORMATION_EX;
-typedef struct _DRIVE_LAYOUT_INFORMATION { - ULONG PartitionCount; - ULONG Signature; - PARTITION_INFORMATION PartitionEntry[1]; -} DRIVE_LAYOUT_INFORMATION, *PDRIVE_LAYOUT_INFORMATION; - -typedef struct _DRIVE_LAYOUT_INFORMATION_MBR { - ULONG Signature; -#if (NTDDI_VERSION >= NTDDI_WIN10_RS1) - ULONG CheckSum; -#endif -} DRIVE_LAYOUT_INFORMATION_MBR, *PDRIVE_LAYOUT_INFORMATION_MBR; - typedef struct _DRIVE_LAYOUT_INFORMATION_GPT { GUID DiskId; LARGE_INTEGER StartingUsableOffset; @@ -563,6 +572,13 @@ typedef struct _DRIVE_LAYOUT_INFORMATION_GPT { ULONG MaxPartitionCount; } DRIVE_LAYOUT_INFORMATION_GPT, *PDRIVE_LAYOUT_INFORMATION_GPT;
+typedef struct _DRIVE_LAYOUT_INFORMATION_MBR { + ULONG Signature; +#if (NTDDI_VERSION >= NTDDI_WIN10_RS1) + ULONG CheckSum; +#endif +} DRIVE_LAYOUT_INFORMATION_MBR, *PDRIVE_LAYOUT_INFORMATION_MBR; + typedef struct _DRIVE_LAYOUT_INFORMATION_EX { ULONG PartitionStyle; ULONG PartitionCount; @@ -573,6 +589,34 @@ typedef struct _DRIVE_LAYOUT_INFORMATION_EX { PARTITION_INFORMATION_EX PartitionEntry[1]; } DRIVE_LAYOUT_INFORMATION_EX, *PDRIVE_LAYOUT_INFORMATION_EX;
+typedef SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION_MBR; +typedef PARTITION_INFORMATION_GPT SET_PARTITION_INFORMATION_GPT; + +typedef struct _SET_PARTITION_INFORMATION_EX { + PARTITION_STYLE PartitionStyle; + _ANONYMOUS_UNION union { + SET_PARTITION_INFORMATION_MBR Mbr; + SET_PARTITION_INFORMATION_GPT Gpt; + } DUMMYUNIONNAME; +} SET_PARTITION_INFORMATION_EX, *PSET_PARTITION_INFORMATION_EX; + +#endif // (_WIN32_WINNT >= 0x0500) + +typedef struct _DISK_PERFORMANCE { + LARGE_INTEGER BytesRead; + LARGE_INTEGER BytesWritten; + LARGE_INTEGER ReadTime; + LARGE_INTEGER WriteTime; + LARGE_INTEGER IdleTime; + ULONG ReadCount; + ULONG WriteCount; + ULONG QueueDepth; + ULONG SplitCount; + LARGE_INTEGER QueryTime; + ULONG StorageDeviceNumber; + WCHAR StorageManagerName[8]; +} DISK_PERFORMANCE, *PDISK_PERFORMANCE; + typedef struct _FORMAT_EX_PARAMETERS { MEDIA_TYPE MediaType; ULONG StartCylinderNumber; @@ -608,21 +652,6 @@ typedef struct _REASSIGN_BLOCKS_EX { LARGE_INTEGER BlockNumber[1]; } REASSIGN_BLOCKS_EX, *PREASSIGN_BLOCKS_EX;
-typedef struct _SET_PARTITION_INFORMATION { - UCHAR PartitionType; -} SET_PARTITION_INFORMATION, *PSET_PARTITION_INFORMATION; - -typedef SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION_MBR; -typedef PARTITION_INFORMATION_GPT SET_PARTITION_INFORMATION_GPT; - -typedef struct _SET_PARTITION_INFORMATION_EX { - PARTITION_STYLE PartitionStyle; - _ANONYMOUS_UNION union { - SET_PARTITION_INFORMATION_MBR Mbr; - SET_PARTITION_INFORMATION_GPT Gpt; - } DUMMYUNIONNAME; -} SET_PARTITION_INFORMATION_EX, *PSET_PARTITION_INFORMATION_EX; - typedef struct _VERIFY_INFORMATION { LARGE_INTEGER StartingOffset; ULONG Length; @@ -733,30 +762,7 @@ typedef struct _MAPPED_ADDRESS { } MAPPED_ADDRESS, *PMAPPED_ADDRESS;
- -#if(_WIN32_WINNT >= 0x0500) - -typedef struct _CREATE_DISK_GPT -{ - GUID DiskId; - ULONG MaxPartitionCount; -} CREATE_DISK_GPT, *PCREATE_DISK_GPT; - -typedef struct _CREATE_DISK_MBR -{ - ULONG Signature; -} CREATE_DISK_MBR, *PCREATE_DISK_MBR; - - -typedef struct _CREATE_DISK -{ - PARTITION_STYLE PartitionStyle; - union { - CREATE_DISK_MBR Mbr; - CREATE_DISK_GPT Gpt; - }; -} CREATE_DISK, *PCREATE_DISK; - +#if (_WIN32_WINNT >= 0x0500)
typedef enum { EqualPriority, diff --git a/sdk/include/psdk/winioctl.h b/sdk/include/psdk/winioctl.h index 0ba8f1be885..f10c4b41678 100644 --- a/sdk/include/psdk/winioctl.h +++ b/sdk/include/psdk/winioctl.h @@ -237,50 +237,87 @@ typedef struct _BIN_RESULTS { DWORD NumberOfBins; BIN_COUNT BinCounts[1]; } BIN_RESULTS,*PBIN_RESULTS; + +typedef enum _MEDIA_TYPE { + Unknown, + F5_1Pt2_512, + F3_1Pt44_512, + F3_2Pt88_512, + F3_20Pt8_512, + F3_720_512, + F5_360_512, + F5_320_512, + F5_320_1024, + F5_180_512, + F5_160_512, + RemovableMedia, + FixedMedia, + F3_120M_512, + F3_640_512, + F5_640_512, + F5_720_512, + F3_1Pt2_512, + F3_1Pt23_1024, + F5_1Pt23_1024, + F3_128Mb_512, + F3_230Mb_512, + F8_256_128, + F3_200Mb_512, + F3_240M_512, + F3_32M_512 +} MEDIA_TYPE,*PMEDIA_TYPE; + +typedef struct _DISK_GEOMETRY { + LARGE_INTEGER Cylinders; + MEDIA_TYPE MediaType; + DWORD TracksPerCylinder; + DWORD SectorsPerTrack; + DWORD BytesPerSector; +} DISK_GEOMETRY,*PDISK_GEOMETRY; +typedef struct _PARTITION_INFORMATION { + LARGE_INTEGER StartingOffset; + LARGE_INTEGER PartitionLength; + DWORD HiddenSectors; + DWORD PartitionNumber; + BYTE PartitionType; + BOOLEAN BootIndicator; + BOOLEAN RecognizedPartition; + BOOLEAN RewritePartition; +} PARTITION_INFORMATION,*PPARTITION_INFORMATION; +typedef struct _DRIVE_LAYOUT_INFORMATION { + DWORD PartitionCount; + DWORD Signature; + PARTITION_INFORMATION PartitionEntry[1]; +} DRIVE_LAYOUT_INFORMATION, *PDRIVE_LAYOUT_INFORMATION; +typedef struct _SET_PARTITION_INFORMATION { + BYTE PartitionType; +} SET_PARTITION_INFORMATION,*PSET_PARTITION_INFORMATION; + +#if (_WIN32_WINNT >= 0x0500) +/* Actually it should be > 0x0500, since this is not present in Windows 2000; + * however we keep >= 0x0500 for compatibility with MS PSDK. */ + typedef enum _PARTITION_STYLE { PARTITION_STYLE_MBR, PARTITION_STYLE_GPT, PARTITION_STYLE_RAW } PARTITION_STYLE; -typedef struct { + +typedef struct _CREATE_DISK_GPT { GUID DiskId; DWORD MaxPartitionCount; } CREATE_DISK_GPT,*PCREATE_DISK_GPT; -typedef struct { +typedef struct _CREATE_DISK_MBR { DWORD Signature; } CREATE_DISK_MBR,*PCREATE_DISK_MBR; -typedef struct { +typedef struct _CREATE_DISK { PARTITION_STYLE PartitionStyle; _ANONYMOUS_UNION union { CREATE_DISK_MBR Mbr; CREATE_DISK_GPT Gpt; }; } CREATE_DISK,*PCREATE_DISK; -typedef enum { - EqualPriority, - KeepPrefetchedData, - KeepReadData -} DISK_CACHE_RETENTION_PRIORITY; -typedef struct _DISK_CACHE_INFORMATION { - BOOLEAN ParametersSavable; - BOOLEAN ReadCacheEnabled; - BOOLEAN WriteCacheEnabled; - DISK_CACHE_RETENTION_PRIORITY ReadRetentionPriority; - DISK_CACHE_RETENTION_PRIORITY WriteRetentionPriority; - WORD DisablePrefetchTransferLength; - BOOLEAN PrefetchScalar; - _ANONYMOUS_UNION union { - struct { - WORD Minimum; - WORD Maximum; - WORD MaximumBlocks; - } ScalarPrefetch; - struct { - WORD Minimum; - WORD Maximum; - } BlockPrefetch; - }; -} DISK_CACHE_INFORMATION,*PDISK_CACHE_INFORMATION; + typedef enum _DETECTION_TYPE { DetectNone, DetectInt13, @@ -313,62 +350,133 @@ typedef struct _DISK_DETECTION_INFO { }; }; } DISK_DETECTION_INFO,*PDISK_DETECTION_INFO; -typedef enum _MEDIA_TYPE { - Unknown, - F5_1Pt2_512, - F3_1Pt44_512, - F3_2Pt88_512, - F3_20Pt8_512, - F3_720_512, - F5_360_512, - F5_320_512, - F5_320_1024, - F5_180_512, - F5_160_512, - RemovableMedia, - FixedMedia, - F3_120M_512, - F3_640_512, - F5_640_512, - F5_720_512, - F3_1Pt2_512, - F3_1Pt23_1024, - F5_1Pt23_1024, - F3_128Mb_512, - F3_230Mb_512, - F8_256_128, - F3_200Mb_512, - F3_240M_512, - F3_32M_512 -} MEDIA_TYPE,*PMEDIA_TYPE; -typedef struct _DISK_GEOMETRY { - LARGE_INTEGER Cylinders; - MEDIA_TYPE MediaType; - DWORD TracksPerCylinder; - DWORD SectorsPerTrack; - DWORD BytesPerSector; -} DISK_GEOMETRY,*PDISK_GEOMETRY; +typedef struct _DISK_PARTITION_INFO { + DWORD SizeOfPartitionInfo; + PARTITION_STYLE PartitionStyle; + _ANONYMOUS_UNION union { + struct { + DWORD Signature; + DWORD CheckSum; + } Mbr; + struct { + GUID DiskId; + } Gpt; + }; +} DISK_PARTITION_INFO,*PDISK_PARTITION_INFO; typedef struct _DISK_GEOMETRY_EX { DISK_GEOMETRY Geometry; LARGE_INTEGER DiskSize; BYTE Data[1]; } DISK_GEOMETRY_EX,*PDISK_GEOMETRY_EX; + +#if (NTDDI_VERSION < NTDDI_WS03) +#define DiskGeometryGetPartition(Geometry) \ + ((PDISK_PARTITION_INFO)((Geometry) + 1)) + +#define DiskGeometryGetDetect(Geometry)\ + ((PDISK_DETECTION_INFO)(((PBYTE)DiskGeometryGetPartition(Geometry) + \ + DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo))) +#else +#define DiskGeometryGetPartition(Geometry) \ + ((PDISK_PARTITION_INFO)((Geometry)->Data)) + +#define DiskGeometryGetDetect(Geometry)\ + ((PDISK_DETECTION_INFO)(((ULONG_PTR)DiskGeometryGetPartition(Geometry) + \ + DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo))) +#endif + +typedef struct _PARTITION_INFORMATION_GPT { + GUID PartitionType; + GUID PartitionId; + DWORD64 Attributes; + WCHAR Name[36]; +} PARTITION_INFORMATION_GPT; +typedef struct _PARTITION_INFORMATION_MBR { + BYTE PartitionType; + BOOLEAN BootIndicator; + BOOLEAN RecognizedPartition; + DWORD HiddenSectors; +} PARTITION_INFORMATION_MBR; +typedef struct _PARTITION_INFORMATION_EX { + PARTITION_STYLE PartitionStyle; + LARGE_INTEGER StartingOffset; + LARGE_INTEGER PartitionLength; + DWORD PartitionNumber; + BOOLEAN RewritePartition; +#if (NTDDI_VERSION >= NTDDI_WIN10_RS3) + BOOLEAN IsServicePartition; +#endif + _ANONYMOUS_UNION union { + PARTITION_INFORMATION_MBR Mbr; + PARTITION_INFORMATION_GPT Gpt; + }; +} PARTITION_INFORMATION_EX; + +typedef struct _DRIVE_LAYOUT_INFORMATION_GPT { + GUID DiskId; + LARGE_INTEGER StartingUsableOffset; + LARGE_INTEGER UsableLength; + DWORD MaxPartitionCount; +} DRIVE_LAYOUT_INFORMATION_GPT,*PDRIVE_LAYOUT_INFORMATION_GPT; +typedef struct _DRIVE_LAYOUT_INFORMATION_MBR { + DWORD Signature; +#if (NTDDI_VERSION >= NTDDI_WIN10_RS1) + DWORD CheckSum; +#endif +} DRIVE_LAYOUT_INFORMATION_MBR, *PDRIVE_LAYOUT_INFORMATION_MBR; +typedef struct _DRIVE_LAYOUT_INFORMATION_EX { + DWORD PartitionStyle; + DWORD PartitionCount; + _ANONYMOUS_UNION union { + DRIVE_LAYOUT_INFORMATION_MBR Mbr; + DRIVE_LAYOUT_INFORMATION_GPT Gpt; + }; + PARTITION_INFORMATION_EX PartitionEntry[1]; +} DRIVE_LAYOUT_INFORMATION_EX,*PDRIVE_LAYOUT_INFORMATION_EX; + +typedef SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION_MBR; +typedef PARTITION_INFORMATION_GPT SET_PARTITION_INFORMATION_GPT; + +typedef struct _SET_PARTITION_INFORMATION_EX { + PARTITION_STYLE PartitionStyle; + _ANONYMOUS_UNION union { + SET_PARTITION_INFORMATION_MBR Mbr; + SET_PARTITION_INFORMATION_GPT Gpt; + } DUMMYUNIONNAME; +} SET_PARTITION_INFORMATION_EX, *PSET_PARTITION_INFORMATION_EX; + +#endif // (_WIN32_WINNT >= 0x0500) + typedef struct _DISK_GROW_PARTITION { DWORD PartitionNumber; LARGE_INTEGER BytesToGrow; } DISK_GROW_PARTITION, *PDISK_GROW_PARTITION; -typedef struct _DISK_PARTITION_INFO { - DWORD SizeOfPartitionInfo; - PARTITION_STYLE PartitionStyle; +typedef enum { + EqualPriority, + KeepPrefetchedData, + KeepReadData +} DISK_CACHE_RETENTION_PRIORITY; +typedef struct _DISK_CACHE_INFORMATION { + BOOLEAN ParametersSavable; + BOOLEAN ReadCacheEnabled; + BOOLEAN WriteCacheEnabled; + DISK_CACHE_RETENTION_PRIORITY ReadRetentionPriority; + DISK_CACHE_RETENTION_PRIORITY WriteRetentionPriority; + WORD DisablePrefetchTransferLength; + BOOLEAN PrefetchScalar; _ANONYMOUS_UNION union { struct { - DWORD Signature; - } Mbr; + WORD Minimum; + WORD Maximum; + WORD MaximumBlocks; + } ScalarPrefetch; struct { - GUID DiskId; - } Gpt; + WORD Minimum; + WORD Maximum; + } BlockPrefetch; }; -} DISK_PARTITION_INFO,*PDISK_PARTITION_INFO; +} DISK_CACHE_INFORMATION,*PDISK_CACHE_INFORMATION; + typedef struct _DISK_PERFORMANCE { LARGE_INTEGER BytesRead; LARGE_INTEGER BytesWritten; @@ -448,62 +556,6 @@ typedef struct _VOLUME_DISK_EXTENTS { DWORD NumberOfDiskExtents; DISK_EXTENT Extents[1]; } VOLUME_DISK_EXTENTS,*PVOLUME_DISK_EXTENTS; -typedef struct _PARTITION_INFORMATION { - LARGE_INTEGER StartingOffset; - LARGE_INTEGER PartitionLength; - DWORD HiddenSectors; - DWORD PartitionNumber; - BYTE PartitionType; - BOOLEAN BootIndicator; - BOOLEAN RecognizedPartition; - BOOLEAN RewritePartition; -} PARTITION_INFORMATION,*PPARTITION_INFORMATION; -typedef struct _DRIVE_LAYOUT_INFORMATION { - DWORD PartitionCount; - DWORD Signature; - PARTITION_INFORMATION PartitionEntry[1]; -} DRIVE_LAYOUT_INFORMATION, *PDRIVE_LAYOUT_INFORMATION; -typedef struct _DRIVE_LAYOUT_INFORMATION_GPT { - GUID DiskId; - LARGE_INTEGER StartingUsableOffset; - LARGE_INTEGER UsableLength; - ULONG MaxPartitionCount; -} DRIVE_LAYOUT_INFORMATION_GPT,*PDRIVE_LAYOUT_INFORMATION_GPT; -typedef struct _DRIVE_LAYOUT_INFORMATION_MBR { - ULONG Signature; -} DRIVE_LAYOUT_INFORMATION_MBR, *PDRIVE_LAYOUT_INFORMATION_MBR; -typedef struct _PARTITION_INFORMATION_MBR { - BYTE PartitionType; - BOOLEAN BootIndicator; - BOOLEAN RecognizedPartition; - DWORD HiddenSectors; -} PARTITION_INFORMATION_MBR; -typedef struct _PARTITION_INFORMATION_GPT { - GUID PartitionType; - GUID PartitionId; - DWORD64 Attributes; - WCHAR Name[36]; -} PARTITION_INFORMATION_GPT; -typedef struct _PARTITION_INFORMATION_EX { - PARTITION_STYLE PartitionStyle; - LARGE_INTEGER StartingOffset; - LARGE_INTEGER PartitionLength; - DWORD PartitionNumber; - BOOLEAN RewritePartition; - _ANONYMOUS_UNION union { - PARTITION_INFORMATION_MBR Mbr; - PARTITION_INFORMATION_GPT Gpt; - }; -} PARTITION_INFORMATION_EX; -typedef struct _DRIVE_LAYOUT_INFORMATION_EX { - DWORD PartitionStyle; - DWORD PartitionCount; - _ANONYMOUS_UNION union { - DRIVE_LAYOUT_INFORMATION_MBR Mbr; - DRIVE_LAYOUT_INFORMATION_GPT Gpt; - }; - PARTITION_INFORMATION_EX PartitionEntry[1]; -} DRIVE_LAYOUT_INFORMATION_EX,*PDRIVE_LAYOUT_INFORMATION_EX; typedef struct { HANDLE FileHandle; LARGE_INTEGER StartingVcn; @@ -535,9 +587,6 @@ typedef struct _REASSIGN_BLOCKS { WORD Count; DWORD BlockNumber[1]; } REASSIGN_BLOCKS,*PREASSIGN_BLOCKS; -typedef struct _SET_PARTITION_INFORMATION { - BYTE PartitionType; -} SET_PARTITION_INFORMATION,*PSET_PARTITION_INFORMATION; typedef struct { LARGE_INTEGER StartingLcn; } STARTING_LCN_INPUT_BUFFER,*PSTARTING_LCN_INPUT_BUFFER;