History log of /reactos/drivers/storage/partmgr/partmgr.h (Results 1 – 8 of 8)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# e80cd676 22-May-2024 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[PARTMGR] Reimplement IOCTL_MOUNTDEV_QUERY_UNIQUE_ID for MBR and GPT partitions (#6926)
CORE-15575

In addition, fix a PartitionId assignment copy-paste error in PartitionCreateDevice().

The returne

[PARTMGR] Reimplement IOCTL_MOUNTDEV_QUERY_UNIQUE_ID for MBR and GPT partitions (#6926)
CORE-15575

In addition, fix a PartitionId assignment copy-paste error in PartitionCreateDevice().

The returned standard UniqueId has the following format:

- Basic volume on MBR disk: disk Mbr.Signature + partition StartingOffset (length: 0x0C)
- Basic volume on GPT disk: "DMIO:ID:" + Gpt.PartitionGuid (length: 0x18)
- Volume on Basic disk (NT <= 4): 8-byte FTDisk identifier (length: 0x08)
- Volume on Dynamic disk (NT 5+): "DMIO:ID:" + dmio VolumeGuid (length: 0x18)
- Super-floppy (single-partition with StartingOffset == 0),
or Removable media: DiskInterfaceName.
- As fallback, we use the VolumeInterfaceName.

References:
- https://winreg-kb.readthedocs.io/en/latest/sources/system-keys/Mounted-devices.html
- https://stackoverflow.com/a/72787681/21852502
- Manual testing on Windows.

show more ...


# 3d26d76a 22-May-2024 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[PARTMGR] Detect and flag partitionless ("super-floppy") disks (#6926)
CORE-15575

Detect whether the disk is a "super-floppy", which is the name given
to partitionless disk having no MBR, with the u

[PARTMGR] Detect and flag partitionless ("super-floppy") disks (#6926)
CORE-15575

Detect whether the disk is a "super-floppy", which is the name given
to partitionless disk having no MBR, with the unique partition volume
starting at sector offset zero and spanning the whole disk.
The name comes from the fact that at the partitioning level, the disk
"looks like" a large-capacity floppy disk.

This is typically how external removable (USB, ...) drives are
partitioned by default by Windows.

https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-and-gpt-faq?view=windows-11#superfloppy

The kernel-mode functions IoReadPartitionTable() / IoWritePartitionTable()
report the drive layout of a "super-floppy" disk as follows:
an MBR-style disk containing only one single partition starting at the
beginning of the disk (StartingOffset == 0) without hidden sectors, and
its type being FAT16 non-bootable.
The disk NTFT signature is set to 0x00000001.

----

Additional bug fixes to make the feature work reliably:

- Make PartMgrGetDriveLayout() also update the FDO DiskData's
PartitionStyle and Signature/GPT DiskId for consistency (code moved
from PartMgrRefreshDiskData()).

- In FdoIoctlDiskSetDriveLayout[Ex](), if the disk is "super-floppy",
but the user wants to create more than one partition, fail the call.
(In the Ex call, fail also if the partition style changes.)

show more ...


# 0a8b421d 19-May-2024 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>

[PARTMGR] Implement IOCTL_VOLUME_QUERY_VOLUME_NUMBER and IOCTL_VOLUME_IS_PARTITION (#6911)

- Implement IOCTL_VOLUME_QUERY_VOLUME_NUMBER:
See usage example in:
https://github.com/dansdrivers/ndas

[PARTMGR] Implement IOCTL_VOLUME_QUERY_VOLUME_NUMBER and IOCTL_VOLUME_IS_PARTITION (#6911)

- Implement IOCTL_VOLUME_QUERY_VOLUME_NUMBER:
See usage example in:
https://github.com/dansdrivers/ndas4windows/blob/7241cebfa2a2076de546b8841c2ccda8ca599a8d/mayfield/branches/spr/src/umapps/ndassvc/service/drivematch.cpp#L627

- Stubplement IOCTL_VOLUME_IS_PARTITION:
The only type of volume we support right now is disk partition
so we just return success. A more robust algorithm would be
to check whether the volume has only one single extent, that
covers the whole partition on which it lies upon. If this is
not the case, return STATUS_UNSUCCESSFUL instead.

show more ...


Revision tags: 0.4.14-release
# 3adf4508 11-May-2021 Jérôme Gardou <jerome.gardou@reactos.org>

[REACTOS] Addendum to 5c7ce4475e246560d1622b8cc60dc603e3955f66 - Fix MSVC 2015 build

Put data into PAGEDATA or INITDATA sections
Keep section declaration for prototypes

CORE-17540


# b0c931ac 10-Jan-2021 Victor Perevertkin <victor.perevertkin@reactos.org>

[PARTMGR] Remove hacks as PnP manager should not send bogus IRPs anymore


# 2d6c6fa3 06-Dec-2020 Victor Perevertkin <victor.perevertkin@reactos.org>

[PARTMGR] Register a disk interface for disk PDO

CORE-14187


# 6488440a 16-Nov-2020 Jérôme Gardou <jerome.gardou@reactos.org>

[PARTMGR] Use FORCEINLINE


# bd8226af 13-Nov-2020 Victor Perevertkin <victor.perevertkin@reactos.org>

[PARTMGR] Add the Partition Manager driver

This driver works as complement to disk.sys/classpnp.sys from Windows 10
Manages partition PDOs and exposes them as volumes to mountmgr.sys.
The driver is

[PARTMGR] Add the Partition Manager driver

This driver works as complement to disk.sys/classpnp.sys from Windows 10
Manages partition PDOs and exposes them as volumes to mountmgr.sys.
The driver is almost complete, just some minor IOCTLs missing (will be
added on demand)

show more ...