[FREELDR] ArcGetFileInformation(): Set Information->FileName, Length, and Attributes for filesystems (#8420)

CORE-9023

Add support for all the supported filesystems: FAT/FATX, NTFS,
ISO, EXT, BTRFS, as well as for files loaded via PXE.

arc.h:
- Add `FILEATTRIBUTES` enumeration;
- Remove non-existing `CreateReadOnly` and `SupersedeReadOnly`
  `OPENMODE` values; add missing `CreateReadWrite`.
This commit is contained in:
Hermès Bélusca-Maïto
2025-10-04 15:58:37 +02:00
parent eec9ca1305
commit c7d4040767
12 changed files with 314 additions and 88 deletions

View File

@@ -66,14 +66,23 @@ typedef enum _OPENMODE
OpenWriteOnly,
OpenReadWrite,
CreateWriteOnly,
CreateReadOnly,
CreateReadWrite,
SupersedeWriteOnly,
SupersedeReadOnly,
SupersedeReadWrite,
OpenDirectory,
CreateDirectory,
} OPENMODE;
typedef enum _FILEATTRIBUTES
{
ReadOnlyFile = 0x01,
HiddenFile = 0x02,
SystemFile = 0x04,
ArchiveFile = 0x08,
DirectoryFile = 0x10,
DeleteFile = 0x20
} FILEATTRIBUTES;
typedef enum _IDENTIFIER_FLAG
{
Failed = 0x01,
@@ -225,7 +234,7 @@ typedef struct _FILEINFORMATION
CONFIGURATION_TYPE Type;
ULONG FileNameLength;
UCHAR Attributes;
CHAR Filename[32];
CHAR FileName[32];
} FILEINFORMATION;
typedef