mirror of
https://github.com/reactos/reactos.git
synced 2025-04-28 17:38:11 +00:00
[PSDK] Re-arrange DISK/DRIVE/PARTITION layout-related structures in ntdddisk.h and winioctl.h. Add few missing structures in winioctl.h.
This commit is contained in:
parent
39c48a4d91
commit
7ae3d530db
2 changed files with 296 additions and 241 deletions
|
@ -355,7 +355,10 @@ extern "C" {
|
||||||
((PartitionType) == PARTITION_XINT13))
|
((PartitionType) == PARTITION_XINT13))
|
||||||
#endif
|
#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_ATTRIBUTE_PLATFORM_REQUIRED 0x00000001
|
||||||
#define GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY 0x10000000
|
#define GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY 0x10000000
|
||||||
#define GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY 0x20000000
|
#define GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY 0x20000000
|
||||||
|
@ -398,6 +401,69 @@ typedef enum _MEDIA_TYPE {
|
||||||
F3_32M_512
|
F3_32M_512
|
||||||
} MEDIA_TYPE, *PMEDIA_TYPE;
|
} 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 {
|
typedef enum _DETECTION_TYPE {
|
||||||
DetectNone,
|
DetectNone,
|
||||||
DetectInt13,
|
DetectInt13,
|
||||||
|
@ -434,13 +500,19 @@ typedef struct _DISK_DETECTION_INFO {
|
||||||
} DUMMYUNIONNAME;
|
} DUMMYUNIONNAME;
|
||||||
} DISK_DETECTION_INFO, *PDISK_DETECTION_INFO;
|
} DISK_DETECTION_INFO, *PDISK_DETECTION_INFO;
|
||||||
|
|
||||||
typedef struct _DISK_GEOMETRY {
|
typedef struct _DISK_PARTITION_INFO {
|
||||||
LARGE_INTEGER Cylinders;
|
ULONG SizeOfPartitionInfo;
|
||||||
MEDIA_TYPE MediaType;
|
PARTITION_STYLE PartitionStyle;
|
||||||
ULONG TracksPerCylinder;
|
_ANONYMOUS_UNION union {
|
||||||
ULONG SectorsPerTrack;
|
struct {
|
||||||
ULONG BytesPerSector;
|
ULONG Signature;
|
||||||
} DISK_GEOMETRY, *PDISK_GEOMETRY;
|
ULONG CheckSum;
|
||||||
|
} Mbr;
|
||||||
|
struct {
|
||||||
|
GUID DiskId;
|
||||||
|
} Gpt;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
} DISK_PARTITION_INFO, *PDISK_PARTITION_INFO;
|
||||||
|
|
||||||
typedef struct _DISK_GEOMETRY_EX {
|
typedef struct _DISK_GEOMETRY_EX {
|
||||||
DISK_GEOMETRY Geometry;
|
DISK_GEOMETRY Geometry;
|
||||||
|
@ -464,17 +536,6 @@ typedef struct _DISK_GEOMETRY_EX {
|
||||||
DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))
|
DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))
|
||||||
#endif
|
#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 {
|
typedef struct _PARTITION_INFORMATION_GPT {
|
||||||
GUID PartitionType;
|
GUID PartitionType;
|
||||||
GUID PartitionId;
|
GUID PartitionId;
|
||||||
|
@ -482,45 +543,6 @@ typedef struct _PARTITION_INFORMATION_GPT {
|
||||||
WCHAR Name [36];
|
WCHAR Name [36];
|
||||||
} PARTITION_INFORMATION_GPT, *PPARTITION_INFORMATION_GPT;
|
} 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 {
|
typedef struct _PARTITION_INFORMATION_MBR {
|
||||||
UCHAR PartitionType;
|
UCHAR PartitionType;
|
||||||
BOOLEAN BootIndicator;
|
BOOLEAN BootIndicator;
|
||||||
|
@ -543,19 +565,6 @@ typedef struct _PARTITION_INFORMATION_EX {
|
||||||
} DUMMYUNIONNAME;
|
} DUMMYUNIONNAME;
|
||||||
} PARTITION_INFORMATION_EX, *PPARTITION_INFORMATION_EX;
|
} 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 {
|
typedef struct _DRIVE_LAYOUT_INFORMATION_GPT {
|
||||||
GUID DiskId;
|
GUID DiskId;
|
||||||
LARGE_INTEGER StartingUsableOffset;
|
LARGE_INTEGER StartingUsableOffset;
|
||||||
|
@ -563,6 +572,13 @@ typedef struct _DRIVE_LAYOUT_INFORMATION_GPT {
|
||||||
ULONG MaxPartitionCount;
|
ULONG MaxPartitionCount;
|
||||||
} DRIVE_LAYOUT_INFORMATION_GPT, *PDRIVE_LAYOUT_INFORMATION_GPT;
|
} 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 {
|
typedef struct _DRIVE_LAYOUT_INFORMATION_EX {
|
||||||
ULONG PartitionStyle;
|
ULONG PartitionStyle;
|
||||||
ULONG PartitionCount;
|
ULONG PartitionCount;
|
||||||
|
@ -573,6 +589,34 @@ typedef struct _DRIVE_LAYOUT_INFORMATION_EX {
|
||||||
PARTITION_INFORMATION_EX PartitionEntry[1];
|
PARTITION_INFORMATION_EX PartitionEntry[1];
|
||||||
} DRIVE_LAYOUT_INFORMATION_EX, *PDRIVE_LAYOUT_INFORMATION_EX;
|
} 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 {
|
typedef struct _FORMAT_EX_PARAMETERS {
|
||||||
MEDIA_TYPE MediaType;
|
MEDIA_TYPE MediaType;
|
||||||
ULONG StartCylinderNumber;
|
ULONG StartCylinderNumber;
|
||||||
|
@ -608,21 +652,6 @@ typedef struct _REASSIGN_BLOCKS_EX {
|
||||||
LARGE_INTEGER BlockNumber[1];
|
LARGE_INTEGER BlockNumber[1];
|
||||||
} REASSIGN_BLOCKS_EX, *PREASSIGN_BLOCKS_EX;
|
} 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 {
|
typedef struct _VERIFY_INFORMATION {
|
||||||
LARGE_INTEGER StartingOffset;
|
LARGE_INTEGER StartingOffset;
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
|
@ -733,30 +762,7 @@ typedef struct _MAPPED_ADDRESS {
|
||||||
} MAPPED_ADDRESS, *PMAPPED_ADDRESS;
|
} MAPPED_ADDRESS, *PMAPPED_ADDRESS;
|
||||||
|
|
||||||
|
|
||||||
|
#if (_WIN32_WINNT >= 0x0500)
|
||||||
#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;
|
|
||||||
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
EqualPriority,
|
EqualPriority,
|
||||||
|
|
|
@ -237,50 +237,87 @@ typedef struct _BIN_RESULTS {
|
||||||
DWORD NumberOfBins;
|
DWORD NumberOfBins;
|
||||||
BIN_COUNT BinCounts[1];
|
BIN_COUNT BinCounts[1];
|
||||||
} BIN_RESULTS,*PBIN_RESULTS;
|
} 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 {
|
typedef enum _PARTITION_STYLE {
|
||||||
PARTITION_STYLE_MBR,
|
PARTITION_STYLE_MBR,
|
||||||
PARTITION_STYLE_GPT,
|
PARTITION_STYLE_GPT,
|
||||||
PARTITION_STYLE_RAW
|
PARTITION_STYLE_RAW
|
||||||
} PARTITION_STYLE;
|
} PARTITION_STYLE;
|
||||||
typedef struct {
|
|
||||||
|
typedef struct _CREATE_DISK_GPT {
|
||||||
GUID DiskId;
|
GUID DiskId;
|
||||||
DWORD MaxPartitionCount;
|
DWORD MaxPartitionCount;
|
||||||
} CREATE_DISK_GPT,*PCREATE_DISK_GPT;
|
} CREATE_DISK_GPT,*PCREATE_DISK_GPT;
|
||||||
typedef struct {
|
typedef struct _CREATE_DISK_MBR {
|
||||||
DWORD Signature;
|
DWORD Signature;
|
||||||
} CREATE_DISK_MBR,*PCREATE_DISK_MBR;
|
} CREATE_DISK_MBR,*PCREATE_DISK_MBR;
|
||||||
typedef struct {
|
typedef struct _CREATE_DISK {
|
||||||
PARTITION_STYLE PartitionStyle;
|
PARTITION_STYLE PartitionStyle;
|
||||||
_ANONYMOUS_UNION union {
|
_ANONYMOUS_UNION union {
|
||||||
CREATE_DISK_MBR Mbr;
|
CREATE_DISK_MBR Mbr;
|
||||||
CREATE_DISK_GPT Gpt;
|
CREATE_DISK_GPT Gpt;
|
||||||
};
|
};
|
||||||
} CREATE_DISK,*PCREATE_DISK;
|
} 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 {
|
typedef enum _DETECTION_TYPE {
|
||||||
DetectNone,
|
DetectNone,
|
||||||
DetectInt13,
|
DetectInt13,
|
||||||
|
@ -313,62 +350,133 @@ typedef struct _DISK_DETECTION_INFO {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} DISK_DETECTION_INFO,*PDISK_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_GEOMETRY_EX {
|
|
||||||
DISK_GEOMETRY Geometry;
|
|
||||||
LARGE_INTEGER DiskSize;
|
|
||||||
BYTE Data[1];
|
|
||||||
} DISK_GEOMETRY_EX,*PDISK_GEOMETRY_EX;
|
|
||||||
typedef struct _DISK_GROW_PARTITION {
|
|
||||||
DWORD PartitionNumber;
|
|
||||||
LARGE_INTEGER BytesToGrow;
|
|
||||||
} DISK_GROW_PARTITION, *PDISK_GROW_PARTITION;
|
|
||||||
typedef struct _DISK_PARTITION_INFO {
|
typedef struct _DISK_PARTITION_INFO {
|
||||||
DWORD SizeOfPartitionInfo;
|
DWORD SizeOfPartitionInfo;
|
||||||
PARTITION_STYLE PartitionStyle;
|
PARTITION_STYLE PartitionStyle;
|
||||||
_ANONYMOUS_UNION union {
|
_ANONYMOUS_UNION union {
|
||||||
struct {
|
struct {
|
||||||
DWORD Signature;
|
DWORD Signature;
|
||||||
|
DWORD CheckSum;
|
||||||
} Mbr;
|
} Mbr;
|
||||||
struct {
|
struct {
|
||||||
GUID DiskId;
|
GUID DiskId;
|
||||||
} Gpt;
|
} Gpt;
|
||||||
};
|
};
|
||||||
} DISK_PARTITION_INFO,*PDISK_PARTITION_INFO;
|
} 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 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 struct _DISK_PERFORMANCE {
|
typedef struct _DISK_PERFORMANCE {
|
||||||
LARGE_INTEGER BytesRead;
|
LARGE_INTEGER BytesRead;
|
||||||
LARGE_INTEGER BytesWritten;
|
LARGE_INTEGER BytesWritten;
|
||||||
|
@ -448,62 +556,6 @@ typedef struct _VOLUME_DISK_EXTENTS {
|
||||||
DWORD NumberOfDiskExtents;
|
DWORD NumberOfDiskExtents;
|
||||||
DISK_EXTENT Extents[1];
|
DISK_EXTENT Extents[1];
|
||||||
} VOLUME_DISK_EXTENTS,*PVOLUME_DISK_EXTENTS;
|
} 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 {
|
typedef struct {
|
||||||
HANDLE FileHandle;
|
HANDLE FileHandle;
|
||||||
LARGE_INTEGER StartingVcn;
|
LARGE_INTEGER StartingVcn;
|
||||||
|
@ -535,9 +587,6 @@ typedef struct _REASSIGN_BLOCKS {
|
||||||
WORD Count;
|
WORD Count;
|
||||||
DWORD BlockNumber[1];
|
DWORD BlockNumber[1];
|
||||||
} REASSIGN_BLOCKS,*PREASSIGN_BLOCKS;
|
} REASSIGN_BLOCKS,*PREASSIGN_BLOCKS;
|
||||||
typedef struct _SET_PARTITION_INFORMATION {
|
|
||||||
BYTE PartitionType;
|
|
||||||
} SET_PARTITION_INFORMATION,*PSET_PARTITION_INFORMATION;
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
LARGE_INTEGER StartingLcn;
|
LARGE_INTEGER StartingLcn;
|
||||||
} STARTING_LCN_INPUT_BUFFER,*PSTARTING_LCN_INPUT_BUFFER;
|
} STARTING_LCN_INPUT_BUFFER,*PSTARTING_LCN_INPUT_BUFFER;
|
||||||
|
|
Loading…
Reference in a new issue