mirror of
https://github.com/momo5502/emulator.git
synced 2026-01-21 04:33:56 +00:00
Add FileFsAttributeInformation fs info class
This commit is contained in:
@@ -309,6 +309,14 @@ typedef struct _FILE_FS_DEVICE_INFORMATION
|
||||
ULONG Characteristics;
|
||||
} FILE_FS_DEVICE_INFORMATION, *PFILE_FS_DEVICE_INFORMATION;
|
||||
|
||||
typedef struct _FILE_FS_ATTRIBUTE_INFORMATION
|
||||
{
|
||||
ULONG FileSystemAttributes;
|
||||
LONG MaximumComponentNameLength;
|
||||
ULONG FileSystemNameLength;
|
||||
char16_t FileSystemName[10];
|
||||
} FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION;
|
||||
|
||||
typedef struct _FILE_POSITION_INFORMATION
|
||||
{
|
||||
LARGE_INTEGER CurrentByteOffset;
|
||||
|
||||
@@ -182,8 +182,18 @@ namespace syscalls
|
||||
return handle_query<FILE_FS_VOLUME_INFORMATION>(c.emu, fs_information, length, io_status_block,
|
||||
[&](FILE_FS_VOLUME_INFORMATION&) {});
|
||||
|
||||
case FileFsAttributeInformation:
|
||||
return handle_query<_FILE_FS_ATTRIBUTE_INFORMATION>(
|
||||
c.emu, fs_information, length, io_status_block, [&](_FILE_FS_ATTRIBUTE_INFORMATION& info) {
|
||||
info.FileSystemAttributes = 0x40006; // FILE_CASE_PRESERVED_NAMES | FILE_UNICODE_ON_DISK | FILE_NAMED_STREAMS
|
||||
info.MaximumComponentNameLength = 255;
|
||||
const auto name = u"NTFS"s;
|
||||
info.FileSystemNameLength = static_cast<ULONG>(name.size() * sizeof(char16_t));
|
||||
memcpy(info.FileSystemName, name.data(), info.FileSystemNameLength);
|
||||
});
|
||||
|
||||
default:
|
||||
c.win_emu.log.error("Unsupported fs info class: %X\n", fs_information_class);
|
||||
c.win_emu.log.error("Unsupported fs info class: 0x%X\n", fs_information_class);
|
||||
c.emu.stop();
|
||||
return write_io_status(io_status_block, STATUS_NOT_SUPPORTED, true);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user