class MOUNTMGR_MOUNT_POINT(Struct):
    _fields_ = [
        ULONG("SymbolicLinkNameOffset"),
        USHORT("SymbolicLinkNameLength"),
        Padding(2),
        ULONG("UniqueIdOffset"),
        USHORT("UniqueIdLength"),
        Padding(2),
        ULONG("DeviceNameOffset"),
        USHORT("DeviceNameLength"),
        Padding(2)
    ]
class DRIVE_LAYOUT_INFORMATION_GPT(Struct):
    _fields_ = [
        Field("DiskId", GUID),
        Field("StartingUsableOffset", LARGE_INTEGER),
        Field("UsableLength", LARGE_INTEGER),
        ULONG("MaxPartitionCount"),
        Padding(4),
    ]
class PARTITION_INFORMATION_MBR(Struct):
    _fields_ = [
        UCHAR("PartitionType"),
        BOOLEAN("BootIndicator"),
        BOOLEAN("RecognizedPartition"),
        Padding(1),
        ULONG("HiddenSectors"),
        Padding(104)
    ]
class PARTITION_INFORMATION_EX__HEADER(Struct):
    _fields_ = [
        PARTITION_STYLE("PartitionStyle"),
        Padding(4),
        Field("StartingOffset", LARGE_INTEGER),
        Field("PartitionLength", LARGE_INTEGER),
        ULONG("PartitionNumber"),
        BOOLEAN("RewritePartition"),
        Padding(3),
    ]
class SET_DISK_ATTRIBUTES(Struct):
    _fields_ = [
        ULONG("Version"),
        BOOLEAN("Persist"),
        BOOLEAN("RelinquishOwnership"),
        Padding(2),
        ULONGLONG("Attributes"),
        ULONGLONG("AttributesMask"),
        Field("Caller", GUID)
    ]
class DRIVE_LAYOUT_INFORMATION_EX__HEADER(Struct):
    _fields_ = [
        ULONG("PartitionStyle"),
        ULONG("PartitionCount"),
    ]
class DRIVE_LAYOUT_INFORMATION_MBR(Struct):
    _fields_ = [
        ULONG("Signature"),
        Padding(36),
    ]
class DISK_GROW_PARTITION(Struct):
    _fields_ = [
        ULONG("PartitionNumber"),
        Padding(4),
        Field("BytesToGrow", LARGE_INTEGER)
    ]
class MOUNTMGR_MOUNT_POINTS(Struct):
    _fields_ = [
        ULONG("Size"),
        VarSizeArray("MountPoints", ULONG, MOUNTMGR_MOUNT_POINT)
    ]
class VOLUME_NUMBER(Struct):
    _fields_ = [
        ULONG("VolumeNumber"),
        FixedSizeArray("VolumeManagerName", 8, WCHAR),
    ]
class DISK_SAN_SETTINGS(Struct):
    _fields_ = [
        ULONG("Version"),
        DISK_SAN_POLICY("SanPolicy"),
    ]
class GET_DISK_ATTRIBUTES(Struct):
    _fields_ = [ULONG("Version"), ULONG("Reserved"), ULONGLONG("Attributes")]
class CREATE_DISK_MBR(Struct):
    _fields_ = [
        ULONG("Signature"),
        Padding(16),
    ]
class CREATE_DISK_GPT(Struct):
    _fields_ = [
        Field("DiskId", GUID),
        ULONG("MaxPartitionCount"),
    ]