mirror of
https://github.com/momo5502/emulator.git
synced 2026-01-19 03:33:56 +00:00
Merge remote-tracking branch 'origin/main' into wow64
This commit is contained in:
@@ -319,6 +319,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;
|
||||
@@ -330,6 +338,24 @@ typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION
|
||||
ULONG ReparseTag;
|
||||
} FILE_ATTRIBUTE_TAG_INFORMATION, *PFILE_ATTRIBUTE_TAG_INFORMATION;
|
||||
|
||||
typedef struct _FILE_IS_REMOTE_DEVICE_INFORMATION
|
||||
{
|
||||
BOOLEAN IsRemote;
|
||||
} FILE_IS_REMOTE_DEVICE_INFORMATION, *PFILE_IS_REMOTE_DEVICE_INFORMATION;
|
||||
|
||||
#ifndef OS_WINDOWS
|
||||
typedef struct _FILE_ID_128
|
||||
{
|
||||
BYTE Identifier[16];
|
||||
} FILE_ID_128, *PFILE_ID_128;
|
||||
#endif
|
||||
|
||||
typedef struct _FILE_ID_INFORMATION
|
||||
{
|
||||
ULONGLONG VolumeSerialNumber;
|
||||
FILE_ID_128 FileId;
|
||||
} FILE_ID_INFORMATION, *PFILE_ID_INFORMATION;
|
||||
|
||||
typedef struct _FILE_STANDARD_INFORMATION
|
||||
{
|
||||
LARGE_INTEGER AllocationSize;
|
||||
@@ -423,11 +449,6 @@ typedef struct _FILE_RENAME_INFORMATION
|
||||
} FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION;
|
||||
|
||||
#ifndef OS_WINDOWS
|
||||
typedef struct _FILE_ID_128
|
||||
{
|
||||
BYTE Identifier[16];
|
||||
} FILE_ID_128, *PFILE_ID_128;
|
||||
|
||||
typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE;
|
||||
typedef struct _SECURITY_QUALITY_OF_SERVICE
|
||||
{
|
||||
|
||||
@@ -52,4 +52,63 @@ struct EMU_DISPLAY_DEVICEW
|
||||
char16_t DeviceKey[128];
|
||||
};
|
||||
|
||||
#ifndef ENUM_CURRENT_SETTINGS
|
||||
#define ENUM_CURRENT_SETTINGS ((DWORD) - 1)
|
||||
#endif
|
||||
|
||||
struct EMU_DEVMODEW
|
||||
{
|
||||
char16_t dmDeviceName[32];
|
||||
WORD dmSpecVersion;
|
||||
WORD dmDriverVersion;
|
||||
WORD dmSize;
|
||||
WORD dmDriverExtra;
|
||||
DWORD dmFields;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
int16_t dmOrientation;
|
||||
int16_t dmPaperSize;
|
||||
int16_t dmPaperLength;
|
||||
int16_t dmPaperWidth;
|
||||
int16_t dmScale;
|
||||
int16_t dmCopies;
|
||||
int16_t dmDefaultSource;
|
||||
int16_t dmPrintQuality;
|
||||
} s;
|
||||
POINT dmPosition;
|
||||
struct
|
||||
{
|
||||
POINT dmPosition;
|
||||
DWORD dmDisplayOrientation;
|
||||
DWORD dmDisplayFixedOutput;
|
||||
} s2;
|
||||
} u;
|
||||
int16_t dmColor;
|
||||
int16_t dmDuplex;
|
||||
int16_t dmYResolution;
|
||||
int16_t dmTTOption;
|
||||
int16_t dmCollate;
|
||||
char16_t dmFormName[32];
|
||||
WORD dmLogPixels;
|
||||
DWORD dmBitsPerPel;
|
||||
DWORD dmPelsWidth;
|
||||
DWORD dmPelsHeight;
|
||||
union
|
||||
{
|
||||
DWORD dmDisplayFlags;
|
||||
DWORD dmNup;
|
||||
} u2;
|
||||
DWORD dmDisplayFrequency;
|
||||
DWORD dmICMMethod;
|
||||
DWORD dmICMIntent;
|
||||
DWORD dmMediaType;
|
||||
DWORD dmDitherType;
|
||||
DWORD dmReserved1;
|
||||
DWORD dmReserved2;
|
||||
DWORD dmPanningWidth;
|
||||
DWORD dmPanningHeight;
|
||||
};
|
||||
|
||||
// NOLINTEND(modernize-use-using,cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)
|
||||
|
||||
@@ -19,26 +19,18 @@ namespace utils::string
|
||||
template <typename T, size_t Size>
|
||||
requires(std::is_trivially_copyable_v<T>)
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)
|
||||
void copy(T (&array)[Size], const std::basic_string_view<T> str)
|
||||
void copy(T (&array)[Size], const T* str)
|
||||
{
|
||||
if constexpr (Size == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const auto size = std::min(Size, str.size());
|
||||
memcpy(array, str.data(), size * sizeof(T));
|
||||
const auto size = std::min(Size, std::char_traits<T>::length(str));
|
||||
memcpy(array, str, size * sizeof(T));
|
||||
array[std::min(Size - 1, size)] = {};
|
||||
}
|
||||
|
||||
template <typename T, size_t Size>
|
||||
requires(std::is_trivially_copyable_v<T>)
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)
|
||||
void copy(T (&array)[Size], const T* str)
|
||||
{
|
||||
copy<T, Size>(array, std::basic_string_view<T>(str));
|
||||
}
|
||||
|
||||
inline char char_to_lower(const char val)
|
||||
{
|
||||
return static_cast<char>(std::tolower(static_cast<unsigned char>(val)));
|
||||
|
||||
Reference in New Issue
Block a user