mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 05:41:58 +00:00
[SETUPLIB] Make InferFileSystem() compatible for both MBR and GPT disks. Simplify the FSREC interface a bit.
Instead of providing an MBR partition type to InferFileSystem(), make it call IOCTL_DISK_GET_PARTITION_INFO(_EX) to determine whether the partition pointed by the path/handle is MBR or GPT. Then, only if it's MBR, we retrieve its partition type in order to "guess" an adequate file system name, in case the latter was not recognized already via regular ways (via GetFileSystemName() / NtQueryVolumeInformationFile()). - Remove the GetFileSystemNameByHandle() and InferFileSystemByHandle() functions. Instead, make the other GetFileSystemName*() and InferFileSystem*() functions accept a HANDLE as an alternative to the already-existing partition path string. These parameters are exclusive to each other. - Rename SetPartitionType() -> SetMBRPartitionType(), and FileSystemToPartitionType() -> FileSystemToMBRPartitionType() in order to really clarify what they do (since this code is meant for MBR partitions only, not GPT ones).
This commit is contained in:
parent
8d3e80e437
commit
9735a8379f
5 changed files with 214 additions and 119 deletions
|
@ -8,42 +8,31 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
NTSTATUS
|
||||
GetFileSystemNameByHandle(
|
||||
IN HANDLE PartitionHandle,
|
||||
IN OUT PWSTR FileSystemName,
|
||||
IN SIZE_T FileSystemNameSize);
|
||||
|
||||
NTSTATUS
|
||||
GetFileSystemName_UStr(
|
||||
IN PUNICODE_STRING PartitionPath,
|
||||
IN PUNICODE_STRING PartitionPath OPTIONAL,
|
||||
IN HANDLE PartitionHandle OPTIONAL,
|
||||
IN OUT PWSTR FileSystemName,
|
||||
IN SIZE_T FileSystemNameSize);
|
||||
|
||||
NTSTATUS
|
||||
GetFileSystemName(
|
||||
IN PCWSTR Partition,
|
||||
IN OUT PWSTR FileSystemName,
|
||||
IN SIZE_T FileSystemNameSize);
|
||||
|
||||
NTSTATUS
|
||||
InferFileSystemByHandle(
|
||||
IN HANDLE PartitionHandle,
|
||||
IN UCHAR PartitionType,
|
||||
IN PCWSTR PartitionPath OPTIONAL,
|
||||
IN HANDLE PartitionHandle OPTIONAL,
|
||||
IN OUT PWSTR FileSystemName,
|
||||
IN SIZE_T FileSystemNameSize);
|
||||
|
||||
NTSTATUS
|
||||
InferFileSystem(
|
||||
IN PCWSTR Partition,
|
||||
IN UCHAR PartitionType,
|
||||
IN PCWSTR PartitionPath OPTIONAL,
|
||||
IN HANDLE PartitionHandle OPTIONAL,
|
||||
IN OUT PWSTR FileSystemName,
|
||||
IN SIZE_T FileSystemNameSize);
|
||||
|
||||
UCHAR
|
||||
FileSystemToPartitionType(
|
||||
FileSystemToMBRPartitionType(
|
||||
IN PCWSTR FileSystem,
|
||||
IN PULARGE_INTEGER StartSector,
|
||||
IN PULARGE_INTEGER SectorCount);
|
||||
IN ULONGLONG StartSector,
|
||||
IN ULONGLONG SectorCount);
|
||||
|
||||
/* EOF */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue