Uses std::uint16_t for SubsystemId enum

Ensures consistency by using `std::uint16_t` instead of `uint16_t` for the `SubsystemId` enum.

Relates to feature/pe_scanner
This commit is contained in:
2025-10-09 20:01:34 +03:00
parent 72b54e9673
commit 3129e32f0c
5 changed files with 41 additions and 41 deletions

View File

@@ -7,7 +7,7 @@
namespace omath::system::pe namespace omath::system::pe
{ {
struct DosHeader struct DosHeader final
{ {
std::uint16_t e_magic; std::uint16_t e_magic;
std::uint16_t e_cblp; std::uint16_t e_cblp;

View File

@@ -43,7 +43,7 @@ namespace omath::system::pe
CEE = 0xC0EE, CEE = 0xC0EE,
}; };
struct FileHeader struct FileHeader final
{ {
MachineId machine; MachineId machine;
uint16_t num_sections; uint16_t num_sections;

View File

@@ -14,7 +14,7 @@ namespace omath::system::pe
x64_bit, x64_bit,
}; };
template<NtArchitecture architecture> template<NtArchitecture architecture>
struct ImageNtHeaders struct ImageNtHeaders final
{ {
std::uint32_t signature; std::uint32_t signature;
FileHeader file_header; FileHeader file_header;

View File

@@ -8,71 +8,71 @@ namespace omath::system::pe
{ {
static constexpr std::uint16_t opt_hdr32_magic = 0x010B; static constexpr std::uint16_t opt_hdr32_magic = 0x010B;
static constexpr std::uint16_t opt_hdr64_magic = 0x020B; static constexpr std::uint16_t opt_hdr64_magic = 0x020B;
enum class SubsystemId : uint16_t enum class SubsystemId : std::uint16_t
{ {
unknown = 0x0000, // Unknown subsystem. unknown = 0x0000,
native = 0x0001, // Image doesn't require a subsystem. native = 0x0001,
windows_gui = 0x0002, // Image runs in the Windows GUI subsystem. windows_gui = 0x0002,
windows_cui = 0x0003, // Image runs in the Windows character subsystem windows_cui = 0x0003,
os2_cui = 0x0005, // image runs in the OS/2 character subsystem. os2_cui = 0x0005,
posix_cui = 0x0007, // image runs in the Posix character subsystem. posix_cui = 0x0007,
native_windows = 0x0008, // image is a native Win9x driver. native_windows = 0x0008,
windows_ce_gui = 0x0009, // Image runs in the Windows CE subsystem. windows_ce_gui = 0x0009,
efi_application = 0x000A, // efi_application = 0x000A,
efi_boot_service_driver = 0x000B, // efi_boot_service_driver = 0x000B,
efi_runtime_driver = 0x000C, // efi_runtime_driver = 0x000C,
efi_rom = 0x000D, efi_rom = 0x000D,
xbox = 0x000E, xbox = 0x000E,
windows_boot_application = 0x0010, windows_boot_application = 0x0010,
xbox_code_catalog = 0x0011, xbox_code_catalog = 0x0011,
}; };
struct DataDirectory struct DataDirectory final
{ {
uint32_t rva; std::uint32_t rva;
uint32_t size; std::uint32_t size;
}; };
struct OptionalHeaderX64 struct OptionalHeaderX64 final
{ {
// Standard fields. // Standard fields.
uint16_t magic; std::uint16_t magic;
std::uint16_t linker_version; std::uint16_t linker_version;
uint32_t size_code; std::uint32_t size_code;
uint32_t size_init_data; std::uint32_t size_init_data;
uint32_t size_uninit_data; std::uint32_t size_uninit_data;
uint32_t entry_point; std::uint32_t entry_point;
uint32_t base_of_code; std::uint32_t base_of_code;
// NT additional fields. // NT additional fields.
uint64_t image_base; std::uint64_t image_base;
uint32_t section_alignment; std::uint32_t section_alignment;
uint32_t file_alignment; std::uint32_t file_alignment;
std::uint32_t os_version; std::uint32_t os_version;
std::uint32_t img_version; std::uint32_t img_version;
std::uint32_t subsystem_version; std::uint32_t subsystem_version;
uint32_t win32_version_value; std::uint32_t win32_version_value;
uint32_t size_image; std::uint32_t size_image;
uint32_t size_headers; std::uint32_t size_headers;
uint32_t checksum; std::uint32_t checksum;
SubsystemId subsystem; SubsystemId subsystem;
SubsystemId characteristics; std::uint16_t characteristics;
uint64_t size_stack_reserve; std::uint64_t size_stack_reserve;
uint64_t size_stack_commit; std::uint64_t size_stack_commit;
uint64_t size_heap_reserve; std::uint64_t size_heap_reserve;
uint64_t size_heap_commit; std::uint64_t size_heap_commit;
uint32_t ldr_flags; std::uint32_t ldr_flags;
uint32_t num_data_directories; std::uint32_t num_data_directories;
DataDirectory data_directories[16]; DataDirectory data_directories[16];
}; };
struct OptionalHeaderX86 struct OptionalHeaderX86 final
{ {
// Standard fields. // Standard fields.
uint16_t magic; uint16_t magic;

View File

@@ -9,7 +9,7 @@
// //
namespace omath::system::pe namespace omath::system::pe
{ {
struct SectionHeader struct SectionHeader final
{ {
char name[8]; char name[8];
union union