mirror of
https://github.com/reactos/reactos.git
synced 2025-07-16 07:04:02 +00:00
[PSDK][XDK][NDK][INCLUDE/WINE] Make header changes to sync crypt32, kernel32, and user32 winetests (#8114)
- [PSDK] Sync wincrypt.h to Wine 10.0, keeping our SAL annotated function definitions behind an #ifdef guard - [XDK] Add definitions to our winnt header that Wine 10.0's winternl.h depends on. - [INCLUDE/WINE] Sync winternl.h to Wine 10.0 - [OTHER] Fix breaking changes with the synced winternl.h.
This commit is contained in:
parent
a993c589ae
commit
a753f34e30
22 changed files with 4663 additions and 696 deletions
|
@ -371,14 +371,14 @@ static BOOL check_live_target(struct process* pcs)
|
||||||
PEB32 peb32;
|
PEB32 peb32;
|
||||||
C_ASSERT(sizeof(void*) != 4 || FIELD_OFFSET(RTL_USER_PROCESS_PARAMETERS, Environment) == 0x48);
|
C_ASSERT(sizeof(void*) != 4 || FIELD_OFFSET(RTL_USER_PROCESS_PARAMETERS, Environment) == 0x48);
|
||||||
if (!ReadProcessMemory(pcs->handle, pbi.PebBaseAddress, &peb32, sizeof(peb32), NULL)) return FALSE;
|
if (!ReadProcessMemory(pcs->handle, pbi.PebBaseAddress, &peb32, sizeof(peb32), NULL)) return FALSE;
|
||||||
base = peb32.Reserved[0];
|
base = peb32.Reserved;
|
||||||
if (read_process_memory(pcs, peb32.ProcessParameters + 0x48, &env32, sizeof(env32))) env = env32;
|
if (read_process_memory(pcs, peb32.ProcessParameters + 0x48, &env32, sizeof(env32))) env = env32;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
PEB peb;
|
PEB peb;
|
||||||
if (!ReadProcessMemory(pcs->handle, pbi.PebBaseAddress, &peb, sizeof(peb), NULL)) return FALSE;
|
if (!ReadProcessMemory(pcs->handle, pbi.PebBaseAddress, &peb, sizeof(peb), NULL)) return FALSE;
|
||||||
base = peb.Reserved[0];
|
base = peb.Reserved;
|
||||||
ReadProcessMemory(pcs->handle, &peb.ProcessParameters->Environment, &env, sizeof(env), NULL);
|
ReadProcessMemory(pcs->handle, &peb.ProcessParameters->Environment, &env, sizeof(env), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -605,27 +605,6 @@ struct cpu
|
||||||
|
|
||||||
extern struct cpu* dbghelp_current_cpu DECLSPEC_HIDDEN;
|
extern struct cpu* dbghelp_current_cpu DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
/* Abbreviated 32-bit PEB */
|
|
||||||
typedef struct _PEB32
|
|
||||||
{
|
|
||||||
BOOLEAN InheritedAddressSpace;
|
|
||||||
BOOLEAN ReadImageFileExecOptions;
|
|
||||||
BOOLEAN BeingDebugged;
|
|
||||||
BOOLEAN SpareBool;
|
|
||||||
DWORD Mutant;
|
|
||||||
DWORD ImageBaseAddress;
|
|
||||||
DWORD LdrData;
|
|
||||||
DWORD ProcessParameters;
|
|
||||||
DWORD SubSystemData;
|
|
||||||
DWORD ProcessHeap;
|
|
||||||
DWORD FastPebLock;
|
|
||||||
DWORD FastPebLockRoutine;
|
|
||||||
DWORD FastPebUnlockRoutine;
|
|
||||||
ULONG EnvironmentUpdateCount;
|
|
||||||
DWORD KernelCallbackTable;
|
|
||||||
ULONG Reserved[2];
|
|
||||||
} PEB32;
|
|
||||||
|
|
||||||
/* dbghelp.c */
|
/* dbghelp.c */
|
||||||
extern struct process* process_find_by_handle(HANDLE hProcess) DECLSPEC_HIDDEN;
|
extern struct process* process_find_by_handle(HANDLE hProcess) DECLSPEC_HIDDEN;
|
||||||
extern BOOL validate_addr64(DWORD64 addr) DECLSPEC_HIDDEN;
|
extern BOOL validate_addr64(DWORD64 addr) DECLSPEC_HIDDEN;
|
||||||
|
|
|
@ -3874,7 +3874,7 @@ static WCHAR *get_lastbootuptime(void)
|
||||||
if (!(ret = heap_alloc( 26 * sizeof(WCHAR) ))) return NULL;
|
if (!(ret = heap_alloc( 26 * sizeof(WCHAR) ))) return NULL;
|
||||||
|
|
||||||
NtQuerySystemInformation( SystemTimeOfDayInformation, &ti, sizeof(ti), NULL );
|
NtQuerySystemInformation( SystemTimeOfDayInformation, &ti, sizeof(ti), NULL );
|
||||||
RtlTimeToTimeFields( &ti.liKeBootTime, &tf );
|
RtlTimeToTimeFields( &ti.BootTime, &tf );
|
||||||
swprintf( ret, fmtW, tf.Year, tf.Month, tf.Day, tf.Hour, tf.Minute, tf.Second, tf.Milliseconds * 1000 );
|
swprintf( ret, fmtW, tf.Year, tf.Month, tf.Day, tf.Hour, tf.Minute, tf.Second, tf.Milliseconds * 1000 );
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -379,12 +379,12 @@ static BOOL query_image_section( int id, const char *dll_name, const IMAGE_NT_HE
|
||||||
ok( image.SubSystemType == nt_header->OptionalHeader.Subsystem,
|
ok( image.SubSystemType == nt_header->OptionalHeader.Subsystem,
|
||||||
"%u: SubSystemType wrong %08x / %08x\n", id,
|
"%u: SubSystemType wrong %08x / %08x\n", id,
|
||||||
image.SubSystemType, nt_header->OptionalHeader.Subsystem );
|
image.SubSystemType, nt_header->OptionalHeader.Subsystem );
|
||||||
ok( image.SubsystemVersionLow == nt_header->OptionalHeader.MinorSubsystemVersion,
|
ok( image.MinorSubsystemVersion == nt_header->OptionalHeader.MinorSubsystemVersion,
|
||||||
"%u: SubsystemVersionLow wrong %04x / %04x\n", id,
|
"%u: SubsystemVersionLow wrong %04x / %04x\n", id,
|
||||||
image.SubsystemVersionLow, nt_header->OptionalHeader.MinorSubsystemVersion );
|
image.MinorSubsystemVersion, nt_header->OptionalHeader.MinorSubsystemVersion );
|
||||||
ok( image.SubsystemVersionHigh == nt_header->OptionalHeader.MajorSubsystemVersion,
|
ok( image.MajorSubsystemVersion == nt_header->OptionalHeader.MajorSubsystemVersion,
|
||||||
"%u: SubsystemVersionHigh wrong %04x / %04x\n", id,
|
"%u: SubsystemVersionHigh wrong %04x / %04x\n", id,
|
||||||
image.SubsystemVersionHigh, nt_header->OptionalHeader.MajorSubsystemVersion );
|
image.MajorSubsystemVersion, nt_header->OptionalHeader.MajorSubsystemVersion );
|
||||||
ok( image.ImageCharacteristics == nt_header->FileHeader.Characteristics,
|
ok( image.ImageCharacteristics == nt_header->FileHeader.Characteristics,
|
||||||
"%u: ImageCharacteristics wrong %04x / %04x\n", id,
|
"%u: ImageCharacteristics wrong %04x / %04x\n", id,
|
||||||
image.ImageCharacteristics, nt_header->FileHeader.Characteristics );
|
image.ImageCharacteristics, nt_header->FileHeader.Characteristics );
|
||||||
|
@ -3652,7 +3652,7 @@ static void test_InMemoryOrderModuleList(void)
|
||||||
PEB_LDR_DATA *ldr = NtCurrentTeb()->Peb->LdrData;
|
PEB_LDR_DATA *ldr = NtCurrentTeb()->Peb->LdrData;
|
||||||
LIST_ENTRY *entry1, *mark1 = &ldr->InLoadOrderModuleList;
|
LIST_ENTRY *entry1, *mark1 = &ldr->InLoadOrderModuleList;
|
||||||
LIST_ENTRY *entry2, *mark2 = &ldr->InMemoryOrderModuleList;
|
LIST_ENTRY *entry2, *mark2 = &ldr->InMemoryOrderModuleList;
|
||||||
LDR_MODULE *module1, *module2;
|
LDR_DATA_TABLE_ENTRY *module1, *module2;
|
||||||
|
|
||||||
ok(ldr->Initialized == TRUE, "expected TRUE, got %u\n", ldr->Initialized);
|
ok(ldr->Initialized == TRUE, "expected TRUE, got %u\n", ldr->Initialized);
|
||||||
|
|
||||||
|
@ -3660,8 +3660,8 @@ static void test_InMemoryOrderModuleList(void)
|
||||||
entry1 != mark1 && entry2 != mark2;
|
entry1 != mark1 && entry2 != mark2;
|
||||||
entry1 = entry1->Flink, entry2 = entry2->Flink)
|
entry1 = entry1->Flink, entry2 = entry2->Flink)
|
||||||
{
|
{
|
||||||
module1 = CONTAINING_RECORD(entry1, LDR_MODULE, InLoadOrderModuleList);
|
module1 = CONTAINING_RECORD(entry1, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks);
|
||||||
module2 = CONTAINING_RECORD(entry2, LDR_MODULE, InMemoryOrderModuleList);
|
module2 = CONTAINING_RECORD(entry2, LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks);
|
||||||
ok(module1 == module2, "expected module1 == module2, got %p and %p\n", module1, module2);
|
ok(module1 == module2, "expected module1 == module2, got %p and %p\n", module1, module2);
|
||||||
}
|
}
|
||||||
ok(entry1 == mark1, "expected entry1 == mark1, got %p and %p\n", entry1, mark1);
|
ok(entry1 == mark1, "expected entry1 == mark1, got %p and %p\n", entry1, mark1);
|
||||||
|
@ -3703,13 +3703,13 @@ static void test_HashLinks(void)
|
||||||
static WCHAR kernel32W[] = {'k','e','r','n','e','l','3','2','.','d','l','l',0};
|
static WCHAR kernel32W[] = {'k','e','r','n','e','l','3','2','.','d','l','l',0};
|
||||||
|
|
||||||
LIST_ENTRY *hash_map, *entry, *mark;
|
LIST_ENTRY *hash_map, *entry, *mark;
|
||||||
LDR_MODULE *module;
|
LDR_DATA_TABLE_ENTRY *module;
|
||||||
BOOL found;
|
BOOL found;
|
||||||
|
|
||||||
entry = &NtCurrentTeb()->Peb->LdrData->InLoadOrderModuleList;
|
entry = &NtCurrentTeb()->Peb->LdrData->InLoadOrderModuleList;
|
||||||
entry = entry->Flink;
|
entry = entry->Flink;
|
||||||
|
|
||||||
module = CONTAINING_RECORD(entry, LDR_MODULE, InLoadOrderModuleList);
|
module = CONTAINING_RECORD(entry, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks);
|
||||||
entry = module->HashLinks.Blink;
|
entry = module->HashLinks.Blink;
|
||||||
|
|
||||||
hash_map = entry - hash_basename(module->BaseDllName.Buffer);
|
hash_map = entry - hash_basename(module->BaseDllName.Buffer);
|
||||||
|
@ -3718,7 +3718,7 @@ static void test_HashLinks(void)
|
||||||
found = FALSE;
|
found = FALSE;
|
||||||
for (entry = mark->Flink; entry != mark; entry = entry->Flink)
|
for (entry = mark->Flink; entry != mark; entry = entry->Flink)
|
||||||
{
|
{
|
||||||
module = CONTAINING_RECORD(entry, LDR_MODULE, HashLinks);
|
module = CONTAINING_RECORD(entry, LDR_DATA_TABLE_ENTRY, HashLinks);
|
||||||
if (!lstrcmpiW(module->BaseDllName.Buffer, ntdllW))
|
if (!lstrcmpiW(module->BaseDllName.Buffer, ntdllW))
|
||||||
{
|
{
|
||||||
found = TRUE;
|
found = TRUE;
|
||||||
|
@ -3731,7 +3731,7 @@ static void test_HashLinks(void)
|
||||||
found = FALSE;
|
found = FALSE;
|
||||||
for (entry = mark->Flink; entry != mark; entry = entry->Flink)
|
for (entry = mark->Flink; entry != mark; entry = entry->Flink)
|
||||||
{
|
{
|
||||||
module = CONTAINING_RECORD(entry, LDR_MODULE, HashLinks);
|
module = CONTAINING_RECORD(entry, LDR_DATA_TABLE_ENTRY, HashLinks);
|
||||||
if (!lstrcmpiW(module->BaseDllName.Buffer, kernel32W))
|
if (!lstrcmpiW(module->BaseDllName.Buffer, kernel32W))
|
||||||
{
|
{
|
||||||
found = TRUE;
|
found = TRUE;
|
||||||
|
|
|
@ -4007,8 +4007,8 @@ static void test_NtQuerySection(void)
|
||||||
ok(info.image.MaximumStackSize == nt->OptionalHeader.SizeOfStackReserve, "expected %#lx, got %#lx\n", (SIZE_T)nt->OptionalHeader.SizeOfStackReserve, info.image.MaximumStackSize);
|
ok(info.image.MaximumStackSize == nt->OptionalHeader.SizeOfStackReserve, "expected %#lx, got %#lx\n", (SIZE_T)nt->OptionalHeader.SizeOfStackReserve, info.image.MaximumStackSize);
|
||||||
ok(info.image.CommittedStackSize == nt->OptionalHeader.SizeOfStackCommit, "expected %#lx, got %#lx\n", (SIZE_T)nt->OptionalHeader.SizeOfStackCommit, info.image.CommittedStackSize);
|
ok(info.image.CommittedStackSize == nt->OptionalHeader.SizeOfStackCommit, "expected %#lx, got %#lx\n", (SIZE_T)nt->OptionalHeader.SizeOfStackCommit, info.image.CommittedStackSize);
|
||||||
ok(info.image.SubSystemType == nt->OptionalHeader.Subsystem, "expected %#x, got %#x\n", nt->OptionalHeader.Subsystem, info.image.SubSystemType);
|
ok(info.image.SubSystemType == nt->OptionalHeader.Subsystem, "expected %#x, got %#x\n", nt->OptionalHeader.Subsystem, info.image.SubSystemType);
|
||||||
ok(info.image.SubsystemVersionLow == nt->OptionalHeader.MinorSubsystemVersion, "expected %#x, got %#x\n", nt->OptionalHeader.MinorSubsystemVersion, info.image.SubsystemVersionLow);
|
ok(info.image.MinorSubsystemVersion == nt->OptionalHeader.MinorSubsystemVersion, "expected %#x, got %#x\n", nt->OptionalHeader.MinorSubsystemVersion, info.image.MinorSubsystemVersion);
|
||||||
ok(info.image.SubsystemVersionHigh == nt->OptionalHeader.MajorSubsystemVersion, "expected %#x, got %#x\n", nt->OptionalHeader.MajorSubsystemVersion, info.image.SubsystemVersionHigh);
|
ok(info.image.MajorSubsystemVersion == nt->OptionalHeader.MajorSubsystemVersion, "expected %#x, got %#x\n", nt->OptionalHeader.MajorSubsystemVersion, info.image.MajorSubsystemVersion);
|
||||||
ok(info.image.ImageCharacteristics == nt->FileHeader.Characteristics, "expected %#x, got %#x\n", nt->FileHeader.Characteristics, info.image.ImageCharacteristics);
|
ok(info.image.ImageCharacteristics == nt->FileHeader.Characteristics, "expected %#x, got %#x\n", nt->FileHeader.Characteristics, info.image.ImageCharacteristics);
|
||||||
ok(info.image.DllCharacteristics == nt->OptionalHeader.DllCharacteristics, "expected %#x, got %#x\n", nt->OptionalHeader.DllCharacteristics, info.image.DllCharacteristics);
|
ok(info.image.DllCharacteristics == nt->OptionalHeader.DllCharacteristics, "expected %#x, got %#x\n", nt->OptionalHeader.DllCharacteristics, info.image.DllCharacteristics);
|
||||||
ok(info.image.Machine == nt->FileHeader.Machine, "expected %#x, got %#x\n", nt->FileHeader.Machine, info.image.Machine);
|
ok(info.image.Machine == nt->FileHeader.Machine, "expected %#x, got %#x\n", nt->FileHeader.Machine, info.image.Machine);
|
||||||
|
|
|
@ -1377,8 +1377,8 @@ static void test_file_rename_information(void)
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
DeleteFileW( newpath );
|
DeleteFileW( newpath );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = FALSE;
|
fri->ReplaceIfExists = FALSE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1415,8 +1415,8 @@ static void test_file_rename_information(void)
|
||||||
ok( res != 0, "failed to create temp file\n" );
|
ok( res != 0, "failed to create temp file\n" );
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = FALSE;
|
fri->ReplaceIfExists = FALSE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1445,8 +1445,8 @@ static void test_file_rename_information(void)
|
||||||
ok( res != 0, "failed to create temp file\n" );
|
ok( res != 0, "failed to create temp file\n" );
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = TRUE;
|
fri->ReplaceIfExists = TRUE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1478,8 +1478,8 @@ static void test_file_rename_information(void)
|
||||||
|
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = FALSE;
|
fri->ReplaceIfExists = FALSE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1512,8 +1512,8 @@ static void test_file_rename_information(void)
|
||||||
|
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = TRUE;
|
fri->ReplaceIfExists = TRUE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1547,8 +1547,8 @@ static void test_file_rename_information(void)
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
DeleteFileW( newpath );
|
DeleteFileW( newpath );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = FALSE;
|
fri->ReplaceIfExists = FALSE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1594,8 +1594,8 @@ static void test_file_rename_information(void)
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
DeleteFileW( newpath );
|
DeleteFileW( newpath );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = FALSE;
|
fri->ReplaceIfExists = FALSE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1634,8 +1634,8 @@ static void test_file_rename_information(void)
|
||||||
ok( res != 0, "failed to create temp file\n" );
|
ok( res != 0, "failed to create temp file\n" );
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = FALSE;
|
fri->ReplaceIfExists = FALSE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1670,8 +1670,8 @@ static void test_file_rename_information(void)
|
||||||
|
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = FALSE;
|
fri->ReplaceIfExists = FALSE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1704,8 +1704,8 @@ static void test_file_rename_information(void)
|
||||||
ok( res != 0, "failed to create temp file\n" );
|
ok( res != 0, "failed to create temp file\n" );
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = TRUE;
|
fri->ReplaceIfExists = TRUE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1740,8 +1740,8 @@ static void test_file_rename_information(void)
|
||||||
|
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = TRUE;
|
fri->ReplaceIfExists = TRUE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1777,8 +1777,8 @@ static void test_file_rename_information(void)
|
||||||
ok( success != 0, "failed to create temp directory\n" );
|
ok( success != 0, "failed to create temp directory\n" );
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = FALSE;
|
fri->ReplaceIfExists = FALSE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1813,8 +1813,8 @@ static void test_file_rename_information(void)
|
||||||
ok( success != 0, "failed to create temp directory\n" );
|
ok( success != 0, "failed to create temp directory\n" );
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = TRUE;
|
fri->ReplaceIfExists= TRUE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1852,8 +1852,8 @@ static void test_file_rename_information(void)
|
||||||
|
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = TRUE;
|
fri->ReplaceIfExists = TRUE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1886,8 +1886,8 @@ static void test_file_rename_information(void)
|
||||||
ok( success != 0, "failed to create temp directory\n" );
|
ok( success != 0, "failed to create temp directory\n" );
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = FALSE;
|
fri->ReplaceIfExists = FALSE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1919,8 +1919,8 @@ static void test_file_rename_information(void)
|
||||||
ok( success != 0, "failed to create temp directory\n" );
|
ok( success != 0, "failed to create temp directory\n" );
|
||||||
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL );
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length );
|
||||||
fri->Replace = TRUE;
|
fri->ReplaceIfExists = TRUE;
|
||||||
fri->RootDir = NULL;
|
fri->RootDirectory = NULL;
|
||||||
fri->FileNameLength = name_str.Length;
|
fri->FileNameLength = name_str.Length;
|
||||||
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
memcpy( fri->FileName, name_str.Buffer, name_str.Length );
|
||||||
pRtlFreeUnicodeString( &name_str );
|
pRtlFreeUnicodeString( &name_str );
|
||||||
|
@ -1954,8 +1954,8 @@ static void test_file_rename_information(void)
|
||||||
ok( handle2 != INVALID_HANDLE_VALUE, "CreateFileW failed\n" );
|
ok( handle2 != INVALID_HANDLE_VALUE, "CreateFileW failed\n" );
|
||||||
|
|
||||||
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + lstrlenW(filename) * sizeof(WCHAR) );
|
fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + lstrlenW(filename) * sizeof(WCHAR) );
|
||||||
fri->Replace = FALSE;
|
fri->ReplaceIfExists = FALSE;
|
||||||
fri->RootDir = handle2;
|
fri->RootDirectory = handle2;
|
||||||
fri->FileNameLength = lstrlenW(filename) * sizeof(WCHAR);
|
fri->FileNameLength = lstrlenW(filename) * sizeof(WCHAR);
|
||||||
memcpy( fri->FileName, filename, fri->FileNameLength );
|
memcpy( fri->FileName, filename, fri->FileNameLength );
|
||||||
|
|
||||||
|
|
|
@ -156,8 +156,8 @@ static void test_query_cpu(void)
|
||||||
ok( sizeof(sci) == ReturnLength, "Inconsistent length %d\n", ReturnLength);
|
ok( sizeof(sci) == ReturnLength, "Inconsistent length %d\n", ReturnLength);
|
||||||
|
|
||||||
/* Check if we have some return values */
|
/* Check if we have some return values */
|
||||||
trace("Processor FeatureSet : %08x\n", sci.FeatureSet);
|
trace("Processor FeatureSet : %08x\n", sci.ProcessorFeatureBits);
|
||||||
ok( sci.FeatureSet != 0, "Expected some features for this processor, got %08x\n", sci.FeatureSet);
|
ok( sci.ProcessorFeatureBits != 0, "Expected some features for this processor, got %08x\n", sci.ProcessorFeatureBits);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_query_performance(void)
|
static void test_query_performance(void)
|
||||||
|
@ -458,9 +458,9 @@ static void test_query_module(void)
|
||||||
ULONG ReturnLength;
|
ULONG ReturnLength;
|
||||||
ULONG ModuleCount, i;
|
ULONG ModuleCount, i;
|
||||||
|
|
||||||
ULONG SystemInformationLength = sizeof(SYSTEM_MODULE_INFORMATION);
|
ULONG SystemInformationLength = sizeof(RTL_PROCESS_MODULES);
|
||||||
SYSTEM_MODULE_INFORMATION* smi = HeapAlloc(GetProcessHeap(), 0, SystemInformationLength);
|
RTL_PROCESS_MODULES* smi = HeapAlloc(GetProcessHeap(), 0, SystemInformationLength);
|
||||||
SYSTEM_MODULE* sm;
|
RTL_PROCESS_MODULE_INFORMATION* sm;
|
||||||
|
|
||||||
/* Request the needed length */
|
/* Request the needed length */
|
||||||
status = pNtQuerySystemInformation(SystemModuleInformation, smi, 0, &ReturnLength);
|
status = pNtQuerySystemInformation(SystemModuleInformation, smi, 0, &ReturnLength);
|
||||||
|
@ -480,7 +480,7 @@ static void test_query_module(void)
|
||||||
/* Loop through all the modules/drivers, Wine doesn't get here (yet) */
|
/* Loop through all the modules/drivers, Wine doesn't get here (yet) */
|
||||||
for (i = 0; i < ModuleCount ; i++)
|
for (i = 0; i < ModuleCount ; i++)
|
||||||
{
|
{
|
||||||
ok( i == sm->Id, "Id (%d) should have matched %u\n", sm->Id, i);
|
ok( i == sm->LoadOrderIndex, "LoadOrderIndex (%d) should have matched %u\n", sm->LoadOrderIndex, i);
|
||||||
sm++;
|
sm++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -590,19 +590,19 @@ static void test_query_handle_ex(void)
|
||||||
ReturnLength = 0xdeadbeef;
|
ReturnLength = 0xdeadbeef;
|
||||||
status = pNtQuerySystemInformation(SystemExtendedHandleInformation, shi, SystemInformationLength, &ReturnLength);
|
status = pNtQuerySystemInformation(SystemExtendedHandleInformation, shi, SystemInformationLength, &ReturnLength);
|
||||||
ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status );
|
ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status );
|
||||||
ExpectedLength = FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handle[shi->Count]);
|
ExpectedLength = FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handles[shi->NumberOfHandles]);
|
||||||
ok( ReturnLength == ExpectedLength, "Expected length %u, got %u\n", ExpectedLength, ReturnLength );
|
ok( ReturnLength == ExpectedLength, "Expected length %u, got %u\n", ExpectedLength, ReturnLength );
|
||||||
ok( shi->Count > 1, "Expected more than 1 handle, got %u\n", (DWORD)shi->Count );
|
ok( shi->NumberOfHandles > 1, "Expected more than 1 handle, got %u\n", (DWORD)shi->NumberOfHandles );
|
||||||
|
|
||||||
for (i = 0, found = FALSE; i < shi->Count && !found; i++)
|
for (i = 0, found = FALSE; i < shi->NumberOfHandles && !found; i++)
|
||||||
found = (shi->Handle[i].UniqueProcessId == GetCurrentProcessId()) &&
|
found = (shi->Handles[i].UniqueProcessId == GetCurrentProcessId()) &&
|
||||||
((HANDLE)(ULONG_PTR)shi->Handle[i].HandleValue == EventHandle);
|
((HANDLE)(ULONG_PTR)shi->Handles[i].HandleValue == EventHandle);
|
||||||
ok( found, "Expected to find event handle %p (pid %x) in handle list\n", EventHandle, GetCurrentProcessId() );
|
ok( found, "Expected to find event handle %p (pid %x) in handle list\n", EventHandle, GetCurrentProcessId() );
|
||||||
|
|
||||||
if (!found)
|
if (!found)
|
||||||
{
|
{
|
||||||
for (i = 0; i < shi->Count; i++)
|
for (i = 0; i < shi->NumberOfHandles; i++)
|
||||||
trace( "%d: handle %x pid %x\n", i, (DWORD)shi->Handle[i].HandleValue, (DWORD)shi->Handle[i].UniqueProcessId );
|
trace( "%d: handle %x pid %x\n", i, (DWORD)shi->Handles[i].HandleValue, (DWORD)shi->Handles[i].UniqueProcessId );
|
||||||
}
|
}
|
||||||
|
|
||||||
CloseHandle(EventHandle);
|
CloseHandle(EventHandle);
|
||||||
|
@ -610,9 +610,9 @@ static void test_query_handle_ex(void)
|
||||||
ReturnLength = 0xdeadbeef;
|
ReturnLength = 0xdeadbeef;
|
||||||
status = pNtQuerySystemInformation(SystemExtendedHandleInformation, shi, SystemInformationLength, &ReturnLength);
|
status = pNtQuerySystemInformation(SystemExtendedHandleInformation, shi, SystemInformationLength, &ReturnLength);
|
||||||
ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status );
|
ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status );
|
||||||
for (i = 0, found = FALSE; i < shi->Count && !found; i++)
|
for (i = 0, found = FALSE; i < shi->NumberOfHandles && !found; i++)
|
||||||
found = (shi->Handle[i].UniqueProcessId == GetCurrentProcessId()) &&
|
found = (shi->Handles[i].UniqueProcessId == GetCurrentProcessId()) &&
|
||||||
((HANDLE)(ULONG_PTR)shi->Handle[i].HandleValue == EventHandle);
|
((HANDLE)(ULONG_PTR)shi->Handles[i].HandleValue == EventHandle);
|
||||||
ok( !found, "Unexpectedly found event handle in handle list\n" );
|
ok( !found, "Unexpectedly found event handle in handle list\n" );
|
||||||
|
|
||||||
status = pNtQuerySystemInformation(SystemExtendedHandleInformation, NULL, SystemInformationLength, &ReturnLength);
|
status = pNtQuerySystemInformation(SystemExtendedHandleInformation, NULL, SystemInformationLength, &ReturnLength);
|
||||||
|
@ -635,21 +635,21 @@ static void test_query_cache(void)
|
||||||
for (i = sizeof(buffer); i>= expected; i--)
|
for (i = sizeof(buffer); i>= expected; i--)
|
||||||
{
|
{
|
||||||
ReturnLength = 0xdeadbeef;
|
ReturnLength = 0xdeadbeef;
|
||||||
status = pNtQuerySystemInformation(SystemCacheInformation, sci, i, &ReturnLength);
|
status = pNtQuerySystemInformation(SystemFileCacheInformation, sci, i, &ReturnLength);
|
||||||
ok(!status && (ReturnLength == expected),
|
ok(!status && (ReturnLength == expected),
|
||||||
"%d: got 0x%x and %u (expected STATUS_SUCCESS and %u)\n", i, status, ReturnLength, expected);
|
"%d: got 0x%x and %u (expected STATUS_SUCCESS and %u)\n", i, status, ReturnLength, expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* buffer too small for the full result.
|
/* buffer too small for the full result.
|
||||||
Up to win7, the function succeeds with a partial result. */
|
Up to win7, the function succeeds with a partial result. */
|
||||||
status = pNtQuerySystemInformation(SystemCacheInformation, sci, i, &ReturnLength);
|
status = pNtQuerySystemInformation(SystemFileCacheInformation, sci, i, &ReturnLength);
|
||||||
if (!status)
|
if (!status)
|
||||||
{
|
{
|
||||||
expected = offsetof(SYSTEM_CACHE_INFORMATION, MinimumWorkingSet);
|
expected = offsetof(SYSTEM_CACHE_INFORMATION, MinimumWorkingSet);
|
||||||
for (; i>= expected; i--)
|
for (; i>= expected; i--)
|
||||||
{
|
{
|
||||||
ReturnLength = 0xdeadbeef;
|
ReturnLength = 0xdeadbeef;
|
||||||
status = pNtQuerySystemInformation(SystemCacheInformation, sci, i, &ReturnLength);
|
status = pNtQuerySystemInformation(SystemFileCacheInformation, sci, i, &ReturnLength);
|
||||||
ok(!status && (ReturnLength == expected),
|
ok(!status && (ReturnLength == expected),
|
||||||
"%d: got 0x%x and %u (expected STATUS_SUCCESS and %u)\n", i, status, ReturnLength, expected);
|
"%d: got 0x%x and %u (expected STATUS_SUCCESS and %u)\n", i, status, ReturnLength, expected);
|
||||||
}
|
}
|
||||||
|
@ -657,7 +657,7 @@ static void test_query_cache(void)
|
||||||
|
|
||||||
/* buffer too small for the result, this call will always fail */
|
/* buffer too small for the result, this call will always fail */
|
||||||
ReturnLength = 0xdeadbeef;
|
ReturnLength = 0xdeadbeef;
|
||||||
status = pNtQuerySystemInformation(SystemCacheInformation, sci, i, &ReturnLength);
|
status = pNtQuerySystemInformation(SystemFileCacheInformation, sci, i, &ReturnLength);
|
||||||
ok( status == STATUS_INFO_LENGTH_MISMATCH &&
|
ok( status == STATUS_INFO_LENGTH_MISMATCH &&
|
||||||
((ReturnLength == expected) || broken(!ReturnLength) || broken(ReturnLength == 0xfffffff0)),
|
((ReturnLength == expected) || broken(!ReturnLength) || broken(ReturnLength == 0xfffffff0)),
|
||||||
"%d: got 0x%x and %u (expected STATUS_INFO_LENGTH_MISMATCH and %u)\n", i, status, ReturnLength, expected);
|
"%d: got 0x%x and %u (expected STATUS_INFO_LENGTH_MISMATCH and %u)\n", i, status, ReturnLength, expected);
|
||||||
|
@ -665,7 +665,7 @@ static void test_query_cache(void)
|
||||||
if (0) {
|
if (0) {
|
||||||
/* this crashes on some vista / win7 machines */
|
/* this crashes on some vista / win7 machines */
|
||||||
ReturnLength = 0xdeadbeef;
|
ReturnLength = 0xdeadbeef;
|
||||||
status = pNtQuerySystemInformation(SystemCacheInformation, sci, 0, &ReturnLength);
|
status = pNtQuerySystemInformation(SystemFileCacheInformation, sci, 0, &ReturnLength);
|
||||||
ok( status == STATUS_INFO_LENGTH_MISMATCH &&
|
ok( status == STATUS_INFO_LENGTH_MISMATCH &&
|
||||||
((ReturnLength == expected) || broken(!ReturnLength) || broken(ReturnLength == 0xfffffff0)),
|
((ReturnLength == expected) || broken(!ReturnLength) || broken(ReturnLength == 0xfffffff0)),
|
||||||
"0: got 0x%x and %u (expected STATUS_INFO_LENGTH_MISMATCH and %u)\n", status, ReturnLength, expected);
|
"0: got 0x%x and %u (expected STATUS_INFO_LENGTH_MISMATCH and %u)\n", status, ReturnLength, expected);
|
||||||
|
@ -1129,7 +1129,9 @@ static void test_query_process_vm(void)
|
||||||
NTSTATUS status;
|
NTSTATUS status;
|
||||||
ULONG ReturnLength;
|
ULONG ReturnLength;
|
||||||
VM_COUNTERS pvi;
|
VM_COUNTERS pvi;
|
||||||
|
#ifndef __REACTOS__
|
||||||
ULONG old_size = FIELD_OFFSET(VM_COUNTERS,PrivatePageCount);
|
ULONG old_size = FIELD_OFFSET(VM_COUNTERS,PrivatePageCount);
|
||||||
|
#endif
|
||||||
HANDLE process;
|
HANDLE process;
|
||||||
SIZE_T prev_size;
|
SIZE_T prev_size;
|
||||||
const SIZE_T alloc_size = 16 * 1024 * 1024;
|
const SIZE_T alloc_size = 16 * 1024 * 1024;
|
||||||
|
@ -1139,8 +1141,10 @@ static void test_query_process_vm(void)
|
||||||
ok( status == STATUS_ACCESS_VIOLATION || status == STATUS_INVALID_HANDLE,
|
ok( status == STATUS_ACCESS_VIOLATION || status == STATUS_INVALID_HANDLE,
|
||||||
"Expected STATUS_ACCESS_VIOLATION or STATUS_INVALID_HANDLE(W2K3), got %08x\n", status);
|
"Expected STATUS_ACCESS_VIOLATION or STATUS_INVALID_HANDLE(W2K3), got %08x\n", status);
|
||||||
|
|
||||||
|
#ifndef __REACTOS__
|
||||||
status = pNtQueryInformationProcess(NULL, ProcessVmCounters, &pvi, old_size, NULL);
|
status = pNtQueryInformationProcess(NULL, ProcessVmCounters, &pvi, old_size, NULL);
|
||||||
ok( status == STATUS_INVALID_HANDLE, "Expected STATUS_INVALID_HANDLE, got %08x\n", status);
|
ok( status == STATUS_INVALID_HANDLE, "Expected STATUS_INVALID_HANDLE, got %08x\n", status);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Windows XP and W2K3 will report success for a size of 44 AND 48 !
|
/* Windows XP and W2K3 will report success for a size of 44 AND 48 !
|
||||||
Windows W2K will only report success for 44.
|
Windows W2K will only report success for 44.
|
||||||
|
@ -1150,13 +1154,17 @@ static void test_query_process_vm(void)
|
||||||
status = pNtQueryInformationProcess( GetCurrentProcess(), ProcessVmCounters, &pvi, 24, &ReturnLength);
|
status = pNtQueryInformationProcess( GetCurrentProcess(), ProcessVmCounters, &pvi, 24, &ReturnLength);
|
||||||
ok( status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status);
|
ok( status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status);
|
||||||
|
|
||||||
|
#ifndef __REACTOS__
|
||||||
status = pNtQueryInformationProcess( GetCurrentProcess(), ProcessVmCounters, &pvi, old_size, &ReturnLength);
|
status = pNtQueryInformationProcess( GetCurrentProcess(), ProcessVmCounters, &pvi, old_size, &ReturnLength);
|
||||||
ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status);
|
ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status);
|
||||||
ok( old_size == ReturnLength, "Inconsistent length %d\n", ReturnLength);
|
ok( old_size == ReturnLength, "Inconsistent length %d\n", ReturnLength);
|
||||||
|
#endif
|
||||||
|
|
||||||
status = pNtQueryInformationProcess( GetCurrentProcess(), ProcessVmCounters, &pvi, 46, &ReturnLength);
|
status = pNtQueryInformationProcess( GetCurrentProcess(), ProcessVmCounters, &pvi, 46, &ReturnLength);
|
||||||
ok( status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status);
|
ok( status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status);
|
||||||
|
#ifndef __REACTOS__
|
||||||
ok( ReturnLength == old_size || ReturnLength == sizeof(pvi), "Inconsistent length %d\n", ReturnLength);
|
ok( ReturnLength == old_size || ReturnLength == sizeof(pvi), "Inconsistent length %d\n", ReturnLength);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Check if we have some return values */
|
/* Check if we have some return values */
|
||||||
dump_vm_counters("VM counters for GetCurrentProcess", &pvi);
|
dump_vm_counters("VM counters for GetCurrentProcess", &pvi);
|
||||||
|
@ -1995,7 +2003,7 @@ static void test_queryvirtualmemory(void)
|
||||||
module = GetModuleHandleA( "ntdll.dll" );
|
module = GetModuleHandleA( "ntdll.dll" );
|
||||||
memset(msn, 0, sizeof(*msn));
|
memset(msn, 0, sizeof(*msn));
|
||||||
readcount = 0;
|
readcount = 0;
|
||||||
status = pNtQueryVirtualMemory(NtCurrentProcess(), module, MemorySectionName, msn, sizeof(*msn), &readcount);
|
status = pNtQueryVirtualMemory(NtCurrentProcess(), module, MemoryMappedFilenameInformation, msn, sizeof(*msn), &readcount);
|
||||||
ok( status == STATUS_BUFFER_OVERFLOW, "Expected STATUS_BUFFER_OVERFLOW, got %08x\n", status);
|
ok( status == STATUS_BUFFER_OVERFLOW, "Expected STATUS_BUFFER_OVERFLOW, got %08x\n", status);
|
||||||
ok( readcount > 0, "Expected readcount to be > 0\n");
|
ok( readcount > 0, "Expected readcount to be > 0\n");
|
||||||
|
|
||||||
|
@ -2003,7 +2011,7 @@ static void test_queryvirtualmemory(void)
|
||||||
module = GetModuleHandleA( "ntdll.dll" );
|
module = GetModuleHandleA( "ntdll.dll" );
|
||||||
memset(msn, 0, sizeof(*msn));
|
memset(msn, 0, sizeof(*msn));
|
||||||
readcount = 0;
|
readcount = 0;
|
||||||
status = pNtQueryVirtualMemory(NtCurrentProcess(), module, MemorySectionName, msn, sizeof(*msn) - 1, &readcount);
|
status = pNtQueryVirtualMemory(NtCurrentProcess(), module, MemoryMappedFilenameInformation, msn, sizeof(*msn) - 1, &readcount);
|
||||||
ok( status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status);
|
ok( status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status);
|
||||||
ok( readcount > 0, "Expected readcount to be > 0\n");
|
ok( readcount > 0, "Expected readcount to be > 0\n");
|
||||||
|
|
||||||
|
@ -2012,7 +2020,7 @@ static void test_queryvirtualmemory(void)
|
||||||
memset(msn, 0x55, sizeof(*msn));
|
memset(msn, 0x55, sizeof(*msn));
|
||||||
memset(buffer_name, 0x77, sizeof(buffer_name));
|
memset(buffer_name, 0x77, sizeof(buffer_name));
|
||||||
readcount = 0;
|
readcount = 0;
|
||||||
status = pNtQueryVirtualMemory(NtCurrentProcess(), module, MemorySectionName, msn, sizeof(buffer_name), &readcount);
|
status = pNtQueryVirtualMemory(NtCurrentProcess(), module, MemoryMappedFilenameInformation, msn, sizeof(buffer_name), &readcount);
|
||||||
ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status);
|
ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status);
|
||||||
ok( readcount > 0, "Expected readcount to be > 0\n");
|
ok( readcount > 0, "Expected readcount to be > 0\n");
|
||||||
trace ("Section Name: %s\n", wine_dbgstr_w(msn->SectionFileName.Buffer));
|
trace ("Section Name: %s\n", wine_dbgstr_w(msn->SectionFileName.Buffer));
|
||||||
|
@ -2024,7 +2032,7 @@ static void test_queryvirtualmemory(void)
|
||||||
trace("Check section name of non mapped memory\n");
|
trace("Check section name of non mapped memory\n");
|
||||||
memset(msn, 0, sizeof(buffer_name));
|
memset(msn, 0, sizeof(buffer_name));
|
||||||
readcount = 0;
|
readcount = 0;
|
||||||
status = pNtQueryVirtualMemory(NtCurrentProcess(), &buffer_name, MemorySectionName, msn, sizeof(buffer_name), &readcount);
|
status = pNtQueryVirtualMemory(NtCurrentProcess(), &buffer_name, MemoryMappedFilenameInformation, msn, sizeof(buffer_name), &readcount);
|
||||||
ok( status == STATUS_INVALID_ADDRESS, "Expected STATUS_INVALID_ADDRESS, got %08x\n", status);
|
ok( status == STATUS_INVALID_ADDRESS, "Expected STATUS_INVALID_ADDRESS, got %08x\n", status);
|
||||||
ok( readcount == 0 || broken(readcount != 0) /* wow64 */, "Expected readcount to be 0\n");
|
ok( readcount == 0 || broken(readcount != 0) /* wow64 */, "Expected readcount to be 0\n");
|
||||||
|
|
||||||
|
|
|
@ -1623,15 +1623,15 @@ static void test_query_object_types(void)
|
||||||
ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status );
|
ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status );
|
||||||
|
|
||||||
found = FALSE;
|
found = FALSE;
|
||||||
for (i = 0; i < shi->Count; i++)
|
for (i = 0; i < shi->NumberOfHandles; i++)
|
||||||
{
|
{
|
||||||
if (shi->Handle[i].UniqueProcessId != GetCurrentProcessId())
|
if (shi->Handles[i].UniqueProcessId != GetCurrentProcessId())
|
||||||
continue;
|
continue;
|
||||||
if ((HANDLE)(ULONG_PTR)shi->Handle[i].HandleValue != handle)
|
if ((HANDLE)(ULONG_PTR)shi->Handles[i].HandleValue != handle)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
ok( shi->Handle[i].ObjectTypeIndex == event_type_index, "Event type does not match: %u vs %u\n",
|
ok( shi->Handles[i].ObjectTypeIndex == event_type_index, "Event type does not match: %u vs %u\n",
|
||||||
shi->Handle[i].ObjectTypeIndex, event_type_index );
|
shi->Handles[i].ObjectTypeIndex, event_type_index );
|
||||||
|
|
||||||
found = TRUE;
|
found = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -935,9 +935,9 @@ static void test_RtlThreadErrorMode(void)
|
||||||
"RtlGetThreadErrorMode returned 0x%x, expected 0x%x\n", mode, 0x70);
|
"RtlGetThreadErrorMode returned 0x%x, expected 0x%x\n", mode, 0x70);
|
||||||
if (!is_wow64)
|
if (!is_wow64)
|
||||||
{
|
{
|
||||||
ok(NtCurrentTeb()->HardErrorDisabled == 0x70,
|
ok(NtCurrentTeb()->HardErrorMode == 0x70,
|
||||||
"The TEB contains 0x%x, expected 0x%x\n",
|
"The TEB contains 0x%x, expected 0x%x\n",
|
||||||
NtCurrentTeb()->HardErrorDisabled, 0x70);
|
NtCurrentTeb()->HardErrorMode, 0x70);
|
||||||
}
|
}
|
||||||
|
|
||||||
status = pRtlSetThreadErrorMode(0, &mode);
|
status = pRtlSetThreadErrorMode(0, &mode);
|
||||||
|
@ -951,9 +951,9 @@ static void test_RtlThreadErrorMode(void)
|
||||||
"RtlGetThreadErrorMode returned 0x%x, expected 0x%x\n", mode, 0);
|
"RtlGetThreadErrorMode returned 0x%x, expected 0x%x\n", mode, 0);
|
||||||
if (!is_wow64)
|
if (!is_wow64)
|
||||||
{
|
{
|
||||||
ok(NtCurrentTeb()->HardErrorDisabled == 0,
|
ok(NtCurrentTeb()->HardErrorMode == 0,
|
||||||
"The TEB contains 0x%x, expected 0x%x\n",
|
"The TEB contains 0x%x, expected 0x%x\n",
|
||||||
NtCurrentTeb()->HardErrorDisabled, 0);
|
NtCurrentTeb()->HardErrorMode, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (mode = 1; mode; mode <<= 1)
|
for (mode = 1; mode; mode <<= 1)
|
||||||
|
@ -3242,7 +3242,7 @@ struct ldr_enum_context
|
||||||
int count;
|
int count;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void WINAPI ldr_enum_callback(LDR_MODULE *module, void *context, BOOLEAN *stop)
|
static void WINAPI ldr_enum_callback(LDR_DATA_TABLE_ENTRY *module, void *context, BOOLEAN *stop)
|
||||||
{
|
{
|
||||||
static const WCHAR ntdllW[] = {'n','t','d','l','l','.','d','l','l',0};
|
static const WCHAR ntdllW[] = {'n','t','d','l','l','.','d','l','l',0};
|
||||||
struct ldr_enum_context *ctx = context;
|
struct ldr_enum_context *ctx = context;
|
||||||
|
@ -3420,7 +3420,7 @@ static void CALLBACK ldr_notify_callback1(ULONG reason, LDR_DLL_NOTIFICATION_DAT
|
||||||
IMAGE_THUNK_DATA *thunk_list;
|
IMAGE_THUNK_DATA *thunk_list;
|
||||||
DWORD *calls = context;
|
DWORD *calls = context;
|
||||||
LIST_ENTRY *mark;
|
LIST_ENTRY *mark;
|
||||||
LDR_MODULE *mod;
|
LDR_DATA_TABLE_ENTRY *mod;
|
||||||
ULONG size;
|
ULONG size;
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
|
@ -3435,9 +3435,9 @@ static void CALLBACK ldr_notify_callback1(ULONG reason, LDR_DLL_NOTIFICATION_DAT
|
||||||
|
|
||||||
/* expect module to be last module listed in LdrData load order list */
|
/* expect module to be last module listed in LdrData load order list */
|
||||||
mark = &NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList;
|
mark = &NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList;
|
||||||
mod = CONTAINING_RECORD(mark->Blink, LDR_MODULE, InMemoryOrderModuleList);
|
mod = CONTAINING_RECORD(mark->Blink, LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks);
|
||||||
ok(mod->BaseAddress == data->Loaded.DllBase, "Expected base address %p, got %p\n",
|
ok(mod->DllBase == data->Loaded.DllBase, "Expected base address %p, got %p\n",
|
||||||
data->Loaded.DllBase, mod->BaseAddress);
|
data->Loaded.DllBase, mod->DllBase);
|
||||||
ok(!lstrcmpiW(mod->BaseDllName.Buffer, ws2_32dllW), "Expected ws2_32.dll, got %s\n",
|
ok(!lstrcmpiW(mod->BaseDllName.Buffer, ws2_32dllW), "Expected ws2_32.dll, got %s\n",
|
||||||
wine_dbgstr_w(mod->BaseDllName.Buffer));
|
wine_dbgstr_w(mod->BaseDllName.Buffer));
|
||||||
|
|
||||||
|
@ -3487,7 +3487,7 @@ static void CALLBACK ldr_notify_callback_dll_main(ULONG reason, LDR_DLL_NOTIFICA
|
||||||
{
|
{
|
||||||
DWORD *calls = context;
|
DWORD *calls = context;
|
||||||
LIST_ENTRY *mark;
|
LIST_ENTRY *mark;
|
||||||
LDR_MODULE *mod;
|
LDR_DATA_TABLE_ENTRY *mod;
|
||||||
|
|
||||||
*calls <<= 4;
|
*calls <<= 4;
|
||||||
*calls |= reason;
|
*calls |= reason;
|
||||||
|
@ -3496,10 +3496,10 @@ static void CALLBACK ldr_notify_callback_dll_main(ULONG reason, LDR_DLL_NOTIFICA
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mark = &NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList;
|
mark = &NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList;
|
||||||
mod = CONTAINING_RECORD(mark->Blink, LDR_MODULE, InMemoryOrderModuleList);
|
mod = CONTAINING_RECORD(mark->Blink, LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks);
|
||||||
ok(mod->BaseAddress == data->Loaded.DllBase, "Expected base address %p, got %p\n",
|
ok(mod->DllBase == data->Loaded.DllBase, "Expected base address %p, got %p\n",
|
||||||
data->Loaded.DllBase, mod->BaseAddress);
|
data->Loaded.DllBase, mod->DllBase);
|
||||||
if (mod->BaseAddress != data->Loaded.DllBase)
|
if (mod->DllBase != data->Loaded.DllBase)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
orig_entry = mod->EntryPoint;
|
orig_entry = mod->EntryPoint;
|
||||||
|
@ -3526,7 +3526,7 @@ static void CALLBACK ldr_notify_callback_fail(ULONG reason, LDR_DLL_NOTIFICATION
|
||||||
{
|
{
|
||||||
DWORD *calls = context;
|
DWORD *calls = context;
|
||||||
LIST_ENTRY *mark;
|
LIST_ENTRY *mark;
|
||||||
LDR_MODULE *mod;
|
LDR_DATA_TABLE_ENTRY *mod;
|
||||||
|
|
||||||
*calls <<= 4;
|
*calls <<= 4;
|
||||||
*calls |= reason;
|
*calls |= reason;
|
||||||
|
@ -3535,10 +3535,10 @@ static void CALLBACK ldr_notify_callback_fail(ULONG reason, LDR_DLL_NOTIFICATION
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mark = &NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList;
|
mark = &NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList;
|
||||||
mod = CONTAINING_RECORD(mark->Blink, LDR_MODULE, InMemoryOrderModuleList);
|
mod = CONTAINING_RECORD(mark->Blink, LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks);
|
||||||
ok(mod->BaseAddress == data->Loaded.DllBase, "Expected base address %p, got %p\n",
|
ok(mod->DllBase == data->Loaded.DllBase, "Expected base address %p, got %p\n",
|
||||||
data->Loaded.DllBase, mod->BaseAddress);
|
data->Loaded.DllBase, mod->DllBase);
|
||||||
if (mod->BaseAddress != data->Loaded.DllBase)
|
if (mod->DllBase != data->Loaded.DllBase)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
orig_entry = mod->EntryPoint;
|
orig_entry = mod->EntryPoint;
|
||||||
|
|
|
@ -381,7 +381,7 @@ static BOOL nt_get_mapped_file_name(HANDLE process, LPVOID addr, LPWSTR name, DW
|
||||||
buf = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, buf_len);
|
buf = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, buf_len);
|
||||||
|
|
||||||
ret_len = 0xdeadbeef;
|
ret_len = 0xdeadbeef;
|
||||||
status = pNtQueryVirtualMemory(process, addr, MemorySectionName, buf, buf_len, &ret_len);
|
status = pNtQueryVirtualMemory(process, addr, MemoryMappedFilenameInformation, buf, buf_len, &ret_len);
|
||||||
ok(!status, "NtQueryVirtualMemory error %x\n", status);
|
ok(!status, "NtQueryVirtualMemory error %x\n", status);
|
||||||
|
|
||||||
section_name = (MEMORY_SECTION_NAME *)buf;
|
section_name = (MEMORY_SECTION_NAME *)buf;
|
||||||
|
|
|
@ -26,10 +26,6 @@
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "winnls.h"
|
#include "winnls.h"
|
||||||
|
|
||||||
#ifdef __REACTOS__
|
|
||||||
#define WM_CLIPBOARDUPDATE 0x031D
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static BOOL (WINAPI *pAddClipboardFormatListener)(HWND hwnd);
|
static BOOL (WINAPI *pAddClipboardFormatListener)(HWND hwnd);
|
||||||
static BOOL (WINAPI *pRemoveClipboardFormatListener)(HWND hwnd);
|
static BOOL (WINAPI *pRemoveClipboardFormatListener)(HWND hwnd);
|
||||||
static BOOL (WINAPI *pGetUpdatedClipboardFormats)( UINT *formats, UINT count, UINT *out_count );
|
static BOOL (WINAPI *pGetUpdatedClipboardFormats)( UINT *formats, UINT count, UINT *out_count );
|
||||||
|
|
|
@ -2507,7 +2507,7 @@ QSI_DEF(SystemExtendedHandleInformation)
|
||||||
DPRINT("NtQuerySystemInformation - SystemExtendedHandleInformation\n");
|
DPRINT("NtQuerySystemInformation - SystemExtendedHandleInformation\n");
|
||||||
|
|
||||||
/* Set initial required buffer size */
|
/* Set initial required buffer size */
|
||||||
*ReqSize = FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handle);
|
*ReqSize = FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handles);
|
||||||
|
|
||||||
/* Check user's buffer size */
|
/* Check user's buffer size */
|
||||||
if (Size < *ReqSize)
|
if (Size < *ReqSize)
|
||||||
|
@ -2529,7 +2529,7 @@ QSI_DEF(SystemExtendedHandleInformation)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Reset of count of handles */
|
/* Reset of count of handles */
|
||||||
HandleInformation->Count = 0;
|
HandleInformation->NumberOfHandles = 0;
|
||||||
|
|
||||||
/* Enter a critical region */
|
/* Enter a critical region */
|
||||||
KeEnterCriticalRegion();
|
KeEnterCriticalRegion();
|
||||||
|
@ -2554,7 +2554,7 @@ QSI_DEF(SystemExtendedHandleInformation)
|
||||||
(HandleTableEntry->NextFreeTableEntry != -2))
|
(HandleTableEntry->NextFreeTableEntry != -2))
|
||||||
{
|
{
|
||||||
/* Increase of count of handles */
|
/* Increase of count of handles */
|
||||||
++HandleInformation->Count;
|
++HandleInformation->NumberOfHandles;
|
||||||
|
|
||||||
/* Lock the entry */
|
/* Lock the entry */
|
||||||
if (ExpLockHandleTableEntry(HandleTable, HandleTableEntry))
|
if (ExpLockHandleTableEntry(HandleTable, HandleTableEntry))
|
||||||
|
@ -2572,30 +2572,30 @@ QSI_DEF(SystemExtendedHandleInformation)
|
||||||
POBJECT_HEADER ObjectHeader = ObpGetHandleObject(HandleTableEntry);
|
POBJECT_HEADER ObjectHeader = ObpGetHandleObject(HandleTableEntry);
|
||||||
|
|
||||||
/* Filling handle information */
|
/* Filling handle information */
|
||||||
HandleInformation->Handle[Index].UniqueProcessId =
|
HandleInformation->Handles[Index].UniqueProcessId =
|
||||||
(USHORT)(ULONG_PTR) HandleTable->UniqueProcessId;
|
(USHORT)(ULONG_PTR) HandleTable->UniqueProcessId;
|
||||||
|
|
||||||
HandleInformation->Handle[Index].CreatorBackTraceIndex = 0;
|
HandleInformation->Handles[Index].CreatorBackTraceIndex = 0;
|
||||||
|
|
||||||
#if 0 /* FIXME!!! Type field corrupted */
|
#if 0 /* FIXME!!! Type field corrupted */
|
||||||
HandleInformation->Handles[Index].ObjectTypeIndex =
|
HandleInformation->Handles[Index].ObjectTypeIndex =
|
||||||
(UCHAR) ObjectHeader->Type->Index;
|
(UCHAR) ObjectHeader->Type->Index;
|
||||||
#else
|
#else
|
||||||
HandleInformation->Handle[Index].ObjectTypeIndex = 0;
|
HandleInformation->Handles[Index].ObjectTypeIndex = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
HandleInformation->Handle[Index].HandleAttributes =
|
HandleInformation->Handles[Index].HandleAttributes =
|
||||||
HandleTableEntry->ObAttributes & OBJ_HANDLE_ATTRIBUTES;
|
HandleTableEntry->ObAttributes & OBJ_HANDLE_ATTRIBUTES;
|
||||||
|
|
||||||
HandleInformation->Handle[Index].HandleValue =
|
HandleInformation->Handles[Index].HandleValue =
|
||||||
(USHORT)(ULONG_PTR) Handle.GenericHandleOverlay;
|
(USHORT)(ULONG_PTR) Handle.GenericHandleOverlay;
|
||||||
|
|
||||||
HandleInformation->Handle[Index].Object = &ObjectHeader->Body;
|
HandleInformation->Handles[Index].Object = &ObjectHeader->Body;
|
||||||
|
|
||||||
HandleInformation->Handle[Index].GrantedAccess =
|
HandleInformation->Handles[Index].GrantedAccess =
|
||||||
HandleTableEntry->GrantedAccess;
|
HandleTableEntry->GrantedAccess;
|
||||||
|
|
||||||
HandleInformation->Handle[Index].Reserved = 0;
|
HandleInformation->Handles[Index].Reserved = 0;
|
||||||
|
|
||||||
++Index;
|
++Index;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1603,9 +1603,9 @@ typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX
|
||||||
|
|
||||||
typedef struct _SYSTEM_HANDLE_INFORMATION_EX
|
typedef struct _SYSTEM_HANDLE_INFORMATION_EX
|
||||||
{
|
{
|
||||||
ULONG_PTR Count;
|
ULONG_PTR NumberOfHandles;
|
||||||
ULONG_PTR Reserved;
|
ULONG_PTR Reserved;
|
||||||
SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX Handle[1];
|
SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX Handles[1];
|
||||||
} SYSTEM_HANDLE_INFORMATION_EX, *PSYSTEM_HANDLE_INFORMATION_EX;
|
} SYSTEM_HANDLE_INFORMATION_EX, *PSYSTEM_HANDLE_INFORMATION_EX;
|
||||||
|
|
||||||
// FIXME: Class 65-89
|
// FIXME: Class 65-89
|
||||||
|
|
|
@ -17,6 +17,23 @@ WINAPI
|
||||||
SetThreadStackGuarantee(
|
SetThreadStackGuarantee(
|
||||||
_Inout_ PULONG StackSizeInBytes);
|
_Inout_ PULONG StackSizeInBytes);
|
||||||
|
|
||||||
|
#if (_WIN32_WINNT >= 0x602) || defined(__REACTOS__)
|
||||||
|
FORCEINLINE
|
||||||
|
HANDLE
|
||||||
|
GetCurrentProcessToken(
|
||||||
|
VOID)
|
||||||
|
{
|
||||||
|
return (HANDLE)(LONG_PTR)-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
FORCEINLINE
|
||||||
|
HANDLE
|
||||||
|
GetCurrentThreadToken(
|
||||||
|
VOID)
|
||||||
|
{
|
||||||
|
return (HANDLE)(LONG_PTR)-5;
|
||||||
|
}
|
||||||
|
|
||||||
FORCEINLINE
|
FORCEINLINE
|
||||||
HANDLE
|
HANDLE
|
||||||
GetCurrentThreadEffectiveToken(
|
GetCurrentThreadEffectiveToken(
|
||||||
|
@ -24,6 +41,7 @@ GetCurrentThreadEffectiveToken(
|
||||||
{
|
{
|
||||||
return (HANDLE)(LONG_PTR)-6;
|
return (HANDLE)(LONG_PTR)-6;
|
||||||
}
|
}
|
||||||
|
#endif // (_WIN32_WINNT >= 0x602) || defined(__REACTOS__)
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
|
|
64
sdk/include/psdk/shellscalingapi.h
Normal file
64
sdk/include/psdk/shellscalingapi.h
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
/*
|
||||||
|
* PROJECT: ReactOS SDK
|
||||||
|
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||||
|
* PURPOSE: API definitions for api-ms-win-shcore-scaling-l1-1-1.dll
|
||||||
|
* COPYRIGHT: Copyright 2025 Carl Bialorucki (carl.bialorucki@reactos.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <shtypes.h>
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
MDT_EFFECTIVE_DPI,
|
||||||
|
MDT_ANGULAR_DPI,
|
||||||
|
MDT_RAW_DPI,
|
||||||
|
MDT_DEFAULT = MDT_EFFECTIVE_DPI
|
||||||
|
} MONITOR_DPI_TYPE;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
PROCESS_DPI_UNAWARE,
|
||||||
|
PROCESS_SYSTEM_DPI_AWARE,
|
||||||
|
PROCESS_PER_MONITOR_DPI_AWARE
|
||||||
|
} PROCESS_DPI_AWARENESS;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DEVICE_PRIMARY,
|
||||||
|
DEVICE_IMMERSIVE,
|
||||||
|
} DISPLAY_DEVICE_TYPE;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
SCF_VALUE_NONE,
|
||||||
|
SCF_SCALE,
|
||||||
|
SCF_PHYSICAL,
|
||||||
|
} SCALE_CHANGE_FLAGS;
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN8)
|
||||||
|
DEVICE_SCALE_FACTOR WINAPI GetScaleFactorForDevice(_In_ DISPLAY_DEVICE_TYPE deviceType);
|
||||||
|
HRESULT WINAPI RegisterScaleChangeNotifications(_In_ DISPLAY_DEVICE_TYPE displayDevice, _In_ HWND hwndNotify, _In_ UINT uMsgNotify, _Out_ DWORD *pdwCookie);
|
||||||
|
HRESULT WINAPI RevokeScaleChangeNotifications(_In_ DISPLAY_DEVICE_TYPE displayDevice, _In_ DWORD dwCookie);
|
||||||
|
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WINBLUE)
|
||||||
|
HRESULT WINAPI GetScaleFactorForMonitor(_In_ HMONITOR hMon, _Out_ DEVICE_SCALE_FACTOR *pScale);
|
||||||
|
HRESULT WINAPI RegisterScaleChangeEvent(_In_ HANDLE hEvent, _Out_ DWORD_PTR *pdwCookie);
|
||||||
|
HRESULT WINAPI UnregisterScaleChangeEvent(_In_ DWORD_PTR dwCookie);
|
||||||
|
HRESULT WINAPI SetProcessDpiAwareness(_In_ PROCESS_DPI_AWARENESS value);
|
||||||
|
HRESULT WINAPI GetProcessDpiAwareness(_In_opt_ HANDLE hprocess, _Out_ PROCESS_DPI_AWARENESS *value);
|
||||||
|
HRESULT WINAPI GetDpiForMonitor(_In_ HMONITOR hmonitor, _In_ MONITOR_DPI_TYPE dpiType, _Out_ UINT *dpiX, _Out_ UINT *dpiY);
|
||||||
|
#endif // (NTDDI_VERSION >= NTDDI_WINBLUE)
|
||||||
|
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN10)
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
SHELL_UI_COMPONENT_TASKBARS,
|
||||||
|
SHELL_UI_COMPONENT_NOTIFICATIONAREA,
|
||||||
|
SHELL_UI_COMPONENT_DESKBAND,
|
||||||
|
} SHELL_UI_COMPONENT;
|
||||||
|
|
||||||
|
UINT WINAPI GetDpiForShellUIComponent(_In_ SHELL_UI_COMPONENT);
|
||||||
|
#endif // (NTDDI_VERSION >= NTDDI_WIN10)
|
|
@ -189,3 +189,24 @@ cpp_quote("#define PERCEIVEDFLAG_NATIVESUPPORT 0x0004")
|
||||||
cpp_quote("#define PERCEIVEDFLAG_GDIPLUS 0x0010")
|
cpp_quote("#define PERCEIVEDFLAG_GDIPLUS 0x0010")
|
||||||
cpp_quote("#define PERCEIVEDFLAG_WMSDK 0x0020")
|
cpp_quote("#define PERCEIVEDFLAG_WMSDK 0x0020")
|
||||||
cpp_quote("#define PERCEIVEDFLAG_ZIPFOLDER 0x0040")
|
cpp_quote("#define PERCEIVEDFLAG_ZIPFOLDER 0x0040")
|
||||||
|
|
||||||
|
typedef [v1_enum] enum DEVICE_SCALE_FACTOR
|
||||||
|
{
|
||||||
|
DEVICE_SCALE_FACTOR_INVALID = 0,
|
||||||
|
SCALE_100_PERCENT = 100,
|
||||||
|
SCALE_120_PERCENT = 120,
|
||||||
|
SCALE_125_PERCENT = 125,
|
||||||
|
SCALE_140_PERCENT = 140,
|
||||||
|
SCALE_150_PERCENT = 150,
|
||||||
|
SCALE_160_PERCENT = 160,
|
||||||
|
SCALE_175_PERCENT = 175,
|
||||||
|
SCALE_180_PERCENT = 180,
|
||||||
|
SCALE_200_PERCENT = 200,
|
||||||
|
SCALE_225_PERCENT = 225,
|
||||||
|
SCALE_250_PERCENT = 250,
|
||||||
|
SCALE_300_PERCENT = 300,
|
||||||
|
SCALE_350_PERCENT = 350,
|
||||||
|
SCALE_400_PERCENT = 400,
|
||||||
|
SCALE_450_PERCENT = 450,
|
||||||
|
SCALE_500_PERCENT = 500
|
||||||
|
} DEVICE_SCALE_FACTOR;
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -10,8 +10,8 @@ extern "C" {
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
#pragma warning(disable:4201)
|
#pragma warning(disable:4201) // nameless struct or union
|
||||||
#pragma warning(disable:4820)
|
#pragma warning(disable:4820) // padding after member
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Get/SetSystemPaletteUse() values */
|
/* Get/SetSystemPaletteUse() values */
|
||||||
|
@ -1398,13 +1398,459 @@ typedef struct _DRAWPATRECT {
|
||||||
#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
|
#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
|
||||||
#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
|
#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
|
||||||
#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
|
#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
|
||||||
#define DISPLAY_DEVICE_REMOVABLE 0x00000020
|
#define DISPLAY_DEVICE_TS_COMPATIBLE 0x00200000
|
||||||
#define DISPLAY_DEVICE_DISCONNECT 0x02000000
|
|
||||||
#define DISPLAY_DEVICE_REMOTE 0x04000000
|
|
||||||
#define DISPLAY_DEVICE_MODESPRUNED 0x08000000
|
#define DISPLAY_DEVICE_MODESPRUNED 0x08000000
|
||||||
|
|
||||||
#define DISPLAY_DEVICE_ACTIVE 0x00000001
|
#if (_WIN32_WINNT >= 0x500)
|
||||||
#define DISPLAY_DEVICE_ATTACHED 0x00000002
|
#define DISPLAY_DEVICE_REMOVABLE 0x00000020
|
||||||
|
#define DISPLAY_DEVICE_RDPUDD 0x01000000
|
||||||
|
#define DISPLAY_DEVICE_DISCONNECT 0x02000000
|
||||||
|
#define DISPLAY_DEVICE_REMOTE 0x04000000
|
||||||
|
|
||||||
|
#define DISPLAY_DEVICE_ACTIVE 0x00000001
|
||||||
|
#define DISPLAY_DEVICE_ATTACHED 0x00000002
|
||||||
|
#endif // (_WIN32_WINNT >= 0x500)
|
||||||
|
|
||||||
|
#if (_WIN32_WINNT >= 0x600)
|
||||||
|
#define DISPLAY_DEVICE_UNSAFE_MODES_ON 0x00080000
|
||||||
|
#endif // (_WIN32_WINNT >= 0x600)
|
||||||
|
|
||||||
|
#if (_WIN32_WINNT >= 0x602)
|
||||||
|
#define DISPLAY_DEVICE_ACC_DRIVER 0x00000040
|
||||||
|
#endif // (_WIN32_WINNT >= 0x602)
|
||||||
|
|
||||||
|
#if (WINVER >= 0x601)
|
||||||
|
#define DISPLAYCONFIG_PATH_ACTIVE 0x00000001
|
||||||
|
#define DISPLAYCONFIG_PATH_PREFERRED_UNSCALED 0x00000004
|
||||||
|
#define DISPLAYCONFIG_PATH_SUPPORT_VIRTUAL_MODE 0x00000008
|
||||||
|
#define DISPLAYCONFIG_PATH_BOOST_REFRESH_RATE 0x00000010
|
||||||
|
#define DISPLAYCONFIG_PATH_VALID_FLAGS 0x0000001D
|
||||||
|
#define DISPLAYCONFIG_PATH_MODE_IDX_INVALID 0xFFFFFFFF
|
||||||
|
#define DISPLAYCONFIG_PATH_CLONE_GROUP_INVALID 0x0000FFFF
|
||||||
|
#define DISPLAYCONFIG_PATH_DESKTOP_IMAGE_IDX_INVALID 0x0000FFFF
|
||||||
|
#define DISPLAYCONFIG_PATH_SOURCE_MODE_IDX_INVALID 0x0000FFFF
|
||||||
|
#define DISPLAYCONFIG_PATH_TARGET_MODE_IDX_INVALID 0x0000FFFF
|
||||||
|
#define DISPLAYCONFIG_SOURCE_IN_USE 0x00000001
|
||||||
|
#define DISPLAYCONFIG_TARGET_IN_USE 0x00000001
|
||||||
|
#define DISPLAYCONFIG_TARGET_FORCIBLE 0x00000002
|
||||||
|
#define DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_BOOT 0x00000004
|
||||||
|
#define DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_PATH 0x00000008
|
||||||
|
#define DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_SYSTEM 0x00000010
|
||||||
|
#define DISPLAYCONFIG_TARGET_IS_HMD 0x00000020
|
||||||
|
|
||||||
|
#define QDC_ALL_PATHS 0x00000001
|
||||||
|
#define QDC_ONLY_ACTIVE_PATHS 0x00000002
|
||||||
|
#define QDC_DATABASE_CURRENT 0x00000004
|
||||||
|
#define QDC_VIRTUAL_MODE_AWARE 0x00000010
|
||||||
|
#define QDC_INCLUDE_HMD 0x00000020
|
||||||
|
#define QDC_VIRTUAL_REFRESH_RATE_AWARE 0x00000040
|
||||||
|
|
||||||
|
#define SDC_TOPOLOGY_INTERNAL 0x00000001
|
||||||
|
#define SDC_TOPOLOGY_CLONE 0x00000002
|
||||||
|
#define SDC_TOPOLOGY_EXTEND 0x00000004
|
||||||
|
#define SDC_TOPOLOGY_EXTERNAL 0x00000008
|
||||||
|
#define SDC_TOPOLOGY_SUPPLIED 0x00000010
|
||||||
|
#define SDC_USE_DATABASE_CURRENT (SDC_TOPOLOGY_INTERNAL | SDC_TOPOLOGY_CLONE | SDC_TOPOLOGY_EXTEND | SDC_TOPOLOGY_EXTERNAL)
|
||||||
|
#define SDC_USE_SUPPLIED_DISPLAY_CONFIG 0x00000020
|
||||||
|
#define SDC_VALIDATE 0x00000040
|
||||||
|
#define SDC_APPLY 0x00000080
|
||||||
|
#define SDC_NO_OPTIMIZATION 0x00000100
|
||||||
|
#define SDC_SAVE_TO_DATABASE 0x00000200
|
||||||
|
#define SDC_ALLOW_CHANGES 0x00000400
|
||||||
|
#define SDC_PATH_PERSIST_IF_REQUIRED 0x00000800
|
||||||
|
#define SDC_FORCE_MODE_ENUMERATION 0x00001000
|
||||||
|
#define SDC_ALLOW_PATH_ORDER_CHANGES 0x00002000
|
||||||
|
#define SDC_VIRTUAL_MODE_AWARE 0x00008000
|
||||||
|
#define SDC_VIRTUAL_REFRESH_RATE_AWARE 0x00020000
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_RATIONAL
|
||||||
|
{
|
||||||
|
UINT32 Numerator;
|
||||||
|
UINT32 Denominator;
|
||||||
|
} DISPLAYCONFIG_RATIONAL;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER = -1,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SVIDEO,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPOSITE_VIDEO,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPONENT_VIDEO,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = 8,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_WIRED,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_VIRTUAL,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_USB_TUNNEL,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = 0x80000000,
|
||||||
|
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = 0xFFFFFFFF
|
||||||
|
} DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED,
|
||||||
|
DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE,
|
||||||
|
DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED,
|
||||||
|
DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST = DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED,
|
||||||
|
DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_LOWERFIELDFIRST = 3,
|
||||||
|
DISPLAYCONFIG_SCANLINE_ORDERING_FORCE_UINT32 = 0xFFFFFFFF
|
||||||
|
} DISPLAYCONFIG_SCANLINE_ORDERING;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_2DREGION
|
||||||
|
{
|
||||||
|
UINT32 cx;
|
||||||
|
UINT32 cy;
|
||||||
|
} DISPLAYCONFIG_2DREGION;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO
|
||||||
|
{
|
||||||
|
UINT64 pixelRate;
|
||||||
|
DISPLAYCONFIG_RATIONAL hSyncFreq;
|
||||||
|
DISPLAYCONFIG_RATIONAL vSyncFreq;
|
||||||
|
DISPLAYCONFIG_2DREGION activeSize;
|
||||||
|
DISPLAYCONFIG_2DREGION totalSize;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
UINT32 videoStandard : 16;
|
||||||
|
UINT32 vSyncFreqDivider : 6;
|
||||||
|
UINT32 reserved : 10;
|
||||||
|
} AdditionalSignalInfo;
|
||||||
|
UINT32 videoStandard;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering;
|
||||||
|
} DISPLAYCONFIG_VIDEO_SIGNAL_INFO;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_SCALING_IDENTITY = 1,
|
||||||
|
DISPLAYCONFIG_SCALING_CENTERED,
|
||||||
|
DISPLAYCONFIG_SCALING_STRETCHED,
|
||||||
|
DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX,
|
||||||
|
DISPLAYCONFIG_SCALING_CUSTOM,
|
||||||
|
DISPLAYCONFIG_SCALING_PREFERRED = 128,
|
||||||
|
DISPLAYCONFIG_SCALING_FORCE_UINT32 = 0xFFFFFFFF
|
||||||
|
} DISPLAYCONFIG_SCALING;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_ROTATION_IDENTITY = 1,
|
||||||
|
DISPLAYCONFIG_ROTATION_ROTATE90,
|
||||||
|
DISPLAYCONFIG_ROTATION_ROTATE180,
|
||||||
|
DISPLAYCONFIG_ROTATION_ROTATE270,
|
||||||
|
DISPLAYCONFIG_ROTATION_FORCE_UINT32 = 0xFFFFFFFF
|
||||||
|
} DISPLAYCONFIG_ROTATION;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_MODE_INFO_TYPE_SOURCE = 1,
|
||||||
|
DISPLAYCONFIG_MODE_INFO_TYPE_TARGET,
|
||||||
|
DISPLAYCONFIG_MODE_INFO_TYPE_DESKTOP_IMAGE,
|
||||||
|
DISPLAYCONFIG_MODE_INFO_TYPE_FORCE_UINT32 = 0xFFFFFFFF
|
||||||
|
} DISPLAYCONFIG_MODE_INFO_TYPE;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_PIXELFORMAT_8BPP = 1,
|
||||||
|
DISPLAYCONFIG_PIXELFORMAT_16BPP,
|
||||||
|
DISPLAYCONFIG_PIXELFORMAT_24BPP,
|
||||||
|
DISPLAYCONFIG_PIXELFORMAT_32BPP,
|
||||||
|
DISPLAYCONFIG_PIXELFORMAT_NONGDI,
|
||||||
|
DISPLAYCONFIG_PIXELFORMAT_FORCE_UINT32 = 0xFFFFFFFF
|
||||||
|
} DISPLAYCONFIG_PIXELFORMAT;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_SOURCE_MODE
|
||||||
|
{
|
||||||
|
UINT32 width;
|
||||||
|
UINT32 height;
|
||||||
|
DISPLAYCONFIG_PIXELFORMAT pixelFormat;
|
||||||
|
POINTL position;
|
||||||
|
} DISPLAYCONFIG_SOURCE_MODE;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_TARGET_MODE
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_VIDEO_SIGNAL_INFO targetVideoSignalInfo;
|
||||||
|
} DISPLAYCONFIG_TARGET_MODE;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_DESKTOP_IMAGE_INFO
|
||||||
|
{
|
||||||
|
POINTL PathSourceSize;
|
||||||
|
RECTL DesktopImageRegion;
|
||||||
|
RECTL DesktopImageClip;
|
||||||
|
} DISPLAYCONFIG_DESKTOP_IMAGE_INFO;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_MODE_INFO
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_MODE_INFO_TYPE infoType;
|
||||||
|
UINT32 id;
|
||||||
|
LUID adapterId;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_TARGET_MODE targetMode;
|
||||||
|
DISPLAYCONFIG_SOURCE_MODE sourceMode;
|
||||||
|
DISPLAYCONFIG_DESKTOP_IMAGE_INFO desktopImageInfo;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
} DISPLAYCONFIG_MODE_INFO;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_PATH_SOURCE_INFO
|
||||||
|
{
|
||||||
|
LUID adapterId;
|
||||||
|
UINT32 id;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
UINT32 modeInfoIdx;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
UINT32 cloneGroupId : 16;
|
||||||
|
UINT32 sourceModeInfoIdx : 16;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
UINT32 statusFlags;
|
||||||
|
} DISPLAYCONFIG_PATH_SOURCE_INFO;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_PATH_TARGET_INFO
|
||||||
|
{
|
||||||
|
LUID adapterId;
|
||||||
|
UINT32 id;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
UINT32 modeInfoIdx;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
UINT32 desktopModeInfoIdx : 16;
|
||||||
|
UINT32 targetModeInfoIdx : 16;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY outputTechnology;
|
||||||
|
DISPLAYCONFIG_ROTATION rotation;
|
||||||
|
DISPLAYCONFIG_SCALING scaling;
|
||||||
|
DISPLAYCONFIG_RATIONAL refreshRate;
|
||||||
|
DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering;
|
||||||
|
BOOL targetAvailable;
|
||||||
|
UINT32 statusFlags;
|
||||||
|
} DISPLAYCONFIG_PATH_TARGET_INFO;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_PATH_INFO
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_PATH_SOURCE_INFO sourceInfo;
|
||||||
|
DISPLAYCONFIG_PATH_TARGET_INFO targetInfo;
|
||||||
|
UINT32 flags;
|
||||||
|
} DISPLAYCONFIG_PATH_INFO;
|
||||||
|
|
||||||
|
typedef enum DISPLAYCONFIG_TOPOLOGY_ID
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_TOPOLOGY_INTERNAL = 1,
|
||||||
|
DISPLAYCONFIG_TOPOLOGY_CLONE = 2,
|
||||||
|
DISPLAYCONFIG_TOPOLOGY_EXTEND = 4,
|
||||||
|
DISPLAYCONFIG_TOPOLOGY_EXTERNAL = 8,
|
||||||
|
DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32 = 0xFFFFFFFF
|
||||||
|
} DISPLAYCONFIG_TOPOLOGY_ID;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_SET_SOURCE_DPI_SCALE = -4, // Needed for Wine's tests
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_DPI_SCALE = -3, // Needed for Wine's tests
|
||||||
|
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME = 1,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_GET_SUPPORT_VIRTUAL_RESOLUTION,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_SET_SUPPORT_VIRTUAL_RESOLUTION,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_SET_ADVANCED_COLOR_STATE,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_GET_MONITOR_SPECIALIZATION,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_SET_MONITOR_SPECIALIZATION,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_SET_RESERVED1,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO_2,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_SET_HDR_STATE,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_SET_WCG_STATE,
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32 = 0xFFFFFFFF
|
||||||
|
} DISPLAYCONFIG_DEVICE_INFO_TYPE;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_DEVICE_INFO_HEADER
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_TYPE type;
|
||||||
|
UINT32 size;
|
||||||
|
LUID adapterId;
|
||||||
|
UINT32 id;
|
||||||
|
} DISPLAYCONFIG_DEVICE_INFO_HEADER;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_SOURCE_DEVICE_NAME
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
|
||||||
|
WCHAR viewGdiDeviceName[CCHDEVICENAME];
|
||||||
|
} DISPLAYCONFIG_SOURCE_DEVICE_NAME;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS
|
||||||
|
{
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
UINT32 friendlyNameFromEdid : 1;
|
||||||
|
UINT32 friendlyNameForced : 1;
|
||||||
|
UINT32 edidIdsValid : 1;
|
||||||
|
UINT32 reserved : 29;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
UINT32 value;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
} DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
|
||||||
|
DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS flags;
|
||||||
|
DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY outputTechnology;
|
||||||
|
UINT16 edidManufactureId;
|
||||||
|
UINT16 edidProductCodeId;
|
||||||
|
UINT32 connectorInstance;
|
||||||
|
WCHAR monitorFriendlyDeviceName[64];
|
||||||
|
WCHAR monitorDevicePath[128];
|
||||||
|
} DISPLAYCONFIG_TARGET_DEVICE_NAME;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_TARGET_PREFERRED_MODE
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
|
||||||
|
UINT32 width;
|
||||||
|
UINT32 height;
|
||||||
|
DISPLAYCONFIG_TARGET_MODE targetMode;
|
||||||
|
} DISPLAYCONFIG_TARGET_PREFERRED_MODE;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_ADAPTER_NAME
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
|
||||||
|
WCHAR adapterDevicePath[128];
|
||||||
|
} DISPLAYCONFIG_ADAPTER_NAME;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_TARGET_BASE_TYPE
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
|
||||||
|
DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY baseOutputTechnology;
|
||||||
|
} DISPLAYCONFIG_TARGET_BASE_TYPE;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
UINT32 bootPersistenceOn : 1;
|
||||||
|
UINT32 reserved : 31;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
UINT32 value;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
} DISPLAYCONFIG_SET_TARGET_PERSISTENCE;
|
||||||
|
|
||||||
|
typedef struct DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
UINT32 disableMonitorVirtualResolution : 1;
|
||||||
|
UINT32 reserved : 31;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
UINT32 value;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
} DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION;
|
||||||
|
|
||||||
|
typedef enum _DISPLAYCONFIG_COLOR_ENCODING
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_COLOR_ENCODING_RGB,
|
||||||
|
DISPLAYCONFIG_COLOR_ENCODING_YCBCR444,
|
||||||
|
DISPLAYCONFIG_COLOR_ENCODING_YCBCR422,
|
||||||
|
DISPLAYCONFIG_COLOR_ENCODING_YCBCR420,
|
||||||
|
DISPLAYCONFIG_COLOR_ENCODING_INTENSITY,
|
||||||
|
DISPLAYCONFIG_COLOR_ENCODING_FORCE_UINT32 = 0xFFFFFFFF
|
||||||
|
} DISPLAYCONFIG_COLOR_ENCODING;
|
||||||
|
|
||||||
|
typedef struct _DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
UINT32 advancedColorSupported : 1;
|
||||||
|
UINT32 advancedColorEnabled : 1;
|
||||||
|
UINT32 wideColorEnforced : 1;
|
||||||
|
UINT32 advancedColorForceDisabled : 1;
|
||||||
|
UINT32 reserved :28;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
UINT32 value;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
DISPLAYCONFIG_COLOR_ENCODING colorEncoding;
|
||||||
|
UINT32 bitsPerColorChannel;
|
||||||
|
} DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO;
|
||||||
|
|
||||||
|
typedef struct _DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
UINT32 enableAdvancedColor :1;
|
||||||
|
UINT32 reserved :31;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
UINT32 value;
|
||||||
|
}DUMMYUNIONNAME;
|
||||||
|
} DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE;
|
||||||
|
|
||||||
|
typedef struct _DISPLAYCONFIG_SDR_WHITE_LEVEL
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
|
||||||
|
ULONG SDRWhiteLevel;
|
||||||
|
} DISPLAYCONFIG_SDR_WHITE_LEVEL;
|
||||||
|
|
||||||
|
typedef struct _DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
UINT32 isSpecializationEnabled : 1;
|
||||||
|
UINT32 isSpecializationAvailableForMonitor : 1;
|
||||||
|
UINT32 isSpecializationAvailableForSystem : 1;
|
||||||
|
UINT32 reserved : 29;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
UINT32 value;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
} DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION;
|
||||||
|
|
||||||
|
typedef struct _DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION
|
||||||
|
{
|
||||||
|
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
UINT32 isSpecializationEnabled : 1;
|
||||||
|
UINT32 reserved : 31;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
UINT32 value;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
GUID specializationType;
|
||||||
|
GUID specializationSubType;
|
||||||
|
WCHAR specializationApplicationName[128];
|
||||||
|
} DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION;
|
||||||
|
#endif // (WINVER >= 0x601)
|
||||||
|
|
||||||
#ifndef RC_INVOKED
|
#ifndef RC_INVOKED
|
||||||
typedef struct _ABC {
|
typedef struct _ABC {
|
||||||
|
|
|
@ -7,8 +7,8 @@ extern "C" {
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#pragma warning(push)
|
#pragma warning(push)
|
||||||
#pragma warning(disable:4201)
|
#pragma warning(disable:4201) // nameless struct or union
|
||||||
#pragma warning(disable:4820)
|
#pragma warning(disable:4820) // padding after member
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(_USER32_)
|
#if !defined(_USER32_)
|
||||||
|
@ -1586,6 +1586,15 @@ extern "C" {
|
||||||
#define FE_FONTSMOOTHINGORIENTATIONRGB 0x0001
|
#define FE_FONTSMOOTHINGORIENTATIONRGB 0x0001
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN10_RS4)
|
||||||
|
#define SPI_GETHANDEDNESS 0x2024
|
||||||
|
#define SPI_SETHANDEDNESS 0x2025
|
||||||
|
typedef enum tagHANDEDNESS
|
||||||
|
{
|
||||||
|
HANDEDNESS_LEFT,
|
||||||
|
HANDEDNESS_RIGHT
|
||||||
|
} HANDEDNESS, *PHANDEDNESS;
|
||||||
|
#endif // (NTDDI_VERSION >= NTDDI_WIN10_RS4)
|
||||||
|
|
||||||
#define SPIF_UPDATEINIFILE 1
|
#define SPIF_UPDATEINIFILE 1
|
||||||
#define SPIF_SENDCHANGE 2
|
#define SPIF_SENDCHANGE 2
|
||||||
|
@ -1931,6 +1940,7 @@ extern "C" {
|
||||||
|
|
||||||
#if (_WIN32_WINNT >= 0x0501)
|
#if (_WIN32_WINNT >= 0x0501)
|
||||||
#define WM_THEMECHANGED 794
|
#define WM_THEMECHANGED 794
|
||||||
|
#define WM_CLIPBOARDUPDATE 797
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BM_CLICK 245
|
#define BM_CLICK 245
|
||||||
|
@ -2060,7 +2070,14 @@ extern "C" {
|
||||||
#define LB_GETITEMDATA 409
|
#define LB_GETITEMDATA 409
|
||||||
#define LB_GETITEMHEIGHT 417
|
#define LB_GETITEMHEIGHT 417
|
||||||
#define LB_GETITEMRECT 408
|
#define LB_GETITEMRECT 408
|
||||||
|
#if (_WIN32_WINNT >= 0x501)
|
||||||
#define LB_GETLISTBOXINFO 434
|
#define LB_GETLISTBOXINFO 434
|
||||||
|
#define LB_MSGMAX 435
|
||||||
|
#elif (WINVER >= 0x400)
|
||||||
|
#define LB_MSGMAX 432
|
||||||
|
#else
|
||||||
|
#define LB_MSGMAX 424
|
||||||
|
#endif /* (_WIN32_WINNT >= 0x501) */
|
||||||
#define LB_GETLOCALE 422
|
#define LB_GETLOCALE 422
|
||||||
#define LB_GETSEL 391
|
#define LB_GETSEL 391
|
||||||
#define LB_GETSELCOUNT 400
|
#define LB_GETSELCOUNT 400
|
||||||
|
@ -2625,6 +2642,12 @@ extern "C" {
|
||||||
#define EC_LEFTMARGIN 1
|
#define EC_LEFTMARGIN 1
|
||||||
#define EC_RIGHTMARGIN 2
|
#define EC_RIGHTMARGIN 2
|
||||||
#define EC_USEFONTINFO 0xffff
|
#define EC_USEFONTINFO 0xffff
|
||||||
|
#if (WINVER >= 0x500)
|
||||||
|
#define EMSIS_COMPOSITIONSTRING 1
|
||||||
|
#define EIMES_GETCOMPSTRATONCE 1
|
||||||
|
#define EIMES_CANCELCOMPSTRINFOCUS 2
|
||||||
|
#define EIMES_COMPLETECOMPSTRKILLFOCUS 4
|
||||||
|
#endif /* (WINVER >= 0x500) */
|
||||||
#define DC_HASDEFID 0x534B
|
#define DC_HASDEFID 0x534B
|
||||||
#define DLGC_WANTARROWS 1
|
#define DLGC_WANTARROWS 1
|
||||||
#define DLGC_WANTTAB 2
|
#define DLGC_WANTTAB 2
|
||||||
|
@ -2675,6 +2698,9 @@ extern "C" {
|
||||||
#define FLASHW_TIMERNOFG 12
|
#define FLASHW_TIMERNOFG 12
|
||||||
#endif /* (WINVER >= 0x0500) */
|
#endif /* (WINVER >= 0x0500) */
|
||||||
#define CURSOR_SHOWING 0x00000001
|
#define CURSOR_SHOWING 0x00000001
|
||||||
|
#if (WINVER >= 0x602)
|
||||||
|
#define CURSOR_SUPPRESSED 0x00000002
|
||||||
|
#endif /* (WINVER >= 0x602) */
|
||||||
#define WS_ACTIVECAPTION 0x00000001
|
#define WS_ACTIVECAPTION 0x00000001
|
||||||
#if (_WIN32_WINNT >= 0x0400)
|
#if (_WIN32_WINNT >= 0x0400)
|
||||||
#define INPUT_MOUSE 0
|
#define INPUT_MOUSE 0
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -964,6 +964,7 @@ typedef struct DECLSPEC_ALIGN(16) _XSAVE_FORMAT {
|
||||||
ULONG Cr0NpxState;
|
ULONG Cr0NpxState;
|
||||||
#endif
|
#endif
|
||||||
} XSAVE_FORMAT, *PXSAVE_FORMAT;
|
} XSAVE_FORMAT, *PXSAVE_FORMAT;
|
||||||
|
typedef XSAVE_FORMAT XMM_SAVE_AREA32, *PXMM_SAVE_AREA32;
|
||||||
|
|
||||||
typedef struct DECLSPEC_ALIGN(8) _XSAVE_AREA_HEADER {
|
typedef struct DECLSPEC_ALIGN(8) _XSAVE_AREA_HEADER {
|
||||||
ULONG64 Mask;
|
ULONG64 Mask;
|
||||||
|
|
|
@ -83,6 +83,8 @@
|
||||||
#else
|
#else
|
||||||
# define __WINE_ALLOC_SIZE(...)
|
# define __WINE_ALLOC_SIZE(...)
|
||||||
#endif
|
#endif
|
||||||
|
#define __WINE_DEALLOC(...)
|
||||||
|
#define __WINE_MALLOC
|
||||||
/*#endif*/
|
/*#endif*/
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
|
@ -349,7 +351,7 @@
|
||||||
|
|
||||||
/* also in ddk/winddk.h */
|
/* also in ddk/winddk.h */
|
||||||
#define DUPLICATE_CLOSE_SOURCE 0x00000001
|
#define DUPLICATE_CLOSE_SOURCE 0x00000001
|
||||||
#define DUPLICATE_SAME_ACCESS 0x00000002
|
#define DUPLICATE_SAME_ACCESS 0x00000002
|
||||||
/* end winddk.k */
|
/* end winddk.k */
|
||||||
|
|
||||||
#define MAILSLOT_NO_MESSAGE ((DWORD)-1)
|
#define MAILSLOT_NO_MESSAGE ((DWORD)-1)
|
||||||
|
@ -484,6 +486,11 @@
|
||||||
#define PROCESSOR_ARCHITECTURE_ALPHA64 7
|
#define PROCESSOR_ARCHITECTURE_ALPHA64 7
|
||||||
#define PROCESSOR_ARCHITECTURE_MSIL 8
|
#define PROCESSOR_ARCHITECTURE_MSIL 8
|
||||||
#define PROCESSOR_ARCHITECTURE_AMD64 9
|
#define PROCESSOR_ARCHITECTURE_AMD64 9
|
||||||
|
#define PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 10
|
||||||
|
#define PROCESSOR_ARCHITECTURE_NEUTRAL 11
|
||||||
|
#define PROCESSOR_ARCHITECTURE_ARM64 12
|
||||||
|
#define PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64 13
|
||||||
|
#define PROCESSOR_ARCHITECTURE_IA32_ON_ARM64 14
|
||||||
#define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF
|
#define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF
|
||||||
|
|
||||||
/* also in ddk/ntifs.h */
|
/* also in ddk/ntifs.h */
|
||||||
|
@ -565,6 +572,14 @@
|
||||||
#define MEM_PHYSICAL 0x400000
|
#define MEM_PHYSICAL 0x400000
|
||||||
#define MEM_4MB_PAGES 0x80000000
|
#define MEM_4MB_PAGES 0x80000000
|
||||||
#define MEM_IMAGE SEC_IMAGE
|
#define MEM_IMAGE SEC_IMAGE
|
||||||
|
#define MEM_EXTENDED_PARAMETER_GRAPHICS 0x00000001
|
||||||
|
#define MEM_EXTENDED_PARAMETER_NONPAGED 0x00000002
|
||||||
|
#define MEM_EXTENDED_PARAMETER_ZERO_PAGES_OPTIONAL 0x00000004
|
||||||
|
#define MEM_EXTENDED_PARAMETER_NONPAGED_LARGE 0x00000008
|
||||||
|
#define MEM_EXTENDED_PARAMETER_NONPAGED_HUGE 0x00000010
|
||||||
|
#define MEM_EXTENDED_PARAMETER_SOFT_FAULT_PAGES 0x00000020
|
||||||
|
#define MEM_EXTENDED_PARAMETER_EC_CODE 0x00000040
|
||||||
|
#define MEM_EXTENDED_PARAMETER_NUMA_NODE_MANDATORY MINLONG64
|
||||||
#define SEC_NO_CHANGE 0x00400000
|
#define SEC_NO_CHANGE 0x00400000
|
||||||
#define SEC_FILE 0x00800000
|
#define SEC_FILE 0x00800000
|
||||||
#define SEC_IMAGE 0x01000000
|
#define SEC_IMAGE 0x01000000
|
||||||
|
@ -1074,6 +1089,7 @@
|
||||||
#define WT_TRANSFER_IMPERSONATION 0x00000100
|
#define WT_TRANSFER_IMPERSONATION 0x00000100
|
||||||
#define WT_SET_MAX_THREADPOOL_THREADS(flags,limit) ((flags)|=(limit)<<16)
|
#define WT_SET_MAX_THREADPOOL_THREADS(flags,limit) ((flags)|=(limit)<<16)
|
||||||
typedef VOID (NTAPI *WORKERCALLBACKFUNC)(PVOID);
|
typedef VOID (NTAPI *WORKERCALLBACKFUNC)(PVOID);
|
||||||
|
typedef VOID (NTAPI *PFLS_CALLBACK_FUNCTION)(PVOID);
|
||||||
#if (_WIN32_WINNT >= 0x0501)
|
#if (_WIN32_WINNT >= 0x0501)
|
||||||
#define ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION 1
|
#define ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION 1
|
||||||
#define ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION 2
|
#define ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION 2
|
||||||
|
@ -1082,9 +1098,11 @@ typedef VOID (NTAPI *WORKERCALLBACKFUNC)(PVOID);
|
||||||
#define ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION 5
|
#define ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION 5
|
||||||
#define ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION 6
|
#define ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION 6
|
||||||
#define ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION 7
|
#define ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION 7
|
||||||
|
#define ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE 8
|
||||||
#define ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES 9
|
#define ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES 9
|
||||||
#define ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS 10
|
#define ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS 10
|
||||||
#define ACTIVATION_CONTEXT_SECTION_COMPATIBILITY_INFO 11
|
#define ACTIVATION_CONTEXT_SECTION_COMPATIBILITY_INFO 11
|
||||||
|
#define ACTIVATION_CONTEXT_SECTION_WINRT_ACTIVATABLE_CLASSES 12
|
||||||
#endif /* (_WIN32_WINNT >= 0x0501) */
|
#endif /* (_WIN32_WINNT >= 0x0501) */
|
||||||
#define BTYPE(x) ((x)&N_BTMASK)
|
#define BTYPE(x) ((x)&N_BTMASK)
|
||||||
#define ISPTR(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT))
|
#define ISPTR(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT))
|
||||||
|
@ -1184,6 +1202,82 @@ typedef struct _LDT_ENTRY {
|
||||||
|
|
||||||
#endif /* _LDT_ENTRY_DEFINED */
|
#endif /* _LDT_ENTRY_DEFINED */
|
||||||
|
|
||||||
|
#define ARM64_MAX_BREAKPOINTS 8
|
||||||
|
#define ARM64_MAX_WATCHPOINTS 2
|
||||||
|
|
||||||
|
typedef enum MEM_EXTENDED_PARAMETER_TYPE
|
||||||
|
{
|
||||||
|
MemExtendedParameterInvalidType,
|
||||||
|
MemExtendedParameterAddressRequirements,
|
||||||
|
MemExtendedParameterNumaNode,
|
||||||
|
MemExtendedParameterPartitionHandle,
|
||||||
|
MemExtendedParameterUserPhysicalHandle,
|
||||||
|
MemExtendedParameterAttributeFlags,
|
||||||
|
MemExtendedParameterImageMachine,
|
||||||
|
MemExtendedParameterMax
|
||||||
|
} MEM_EXTENDED_PARAMETER_TYPE, *PMEM_EXTENDED_PARAMETER_TYPE;
|
||||||
|
|
||||||
|
#define MEM_EXTENDED_PARAMETER_TYPE_BITS 8
|
||||||
|
|
||||||
|
typedef struct DECLSPEC_ALIGN(8) MEM_EXTENDED_PARAMETER {
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
DWORD64 Type : MEM_EXTENDED_PARAMETER_TYPE_BITS;
|
||||||
|
DWORD64 Reserved : 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
|
||||||
|
union
|
||||||
|
{
|
||||||
|
DWORD64 ULong64;
|
||||||
|
PVOID Pointer;
|
||||||
|
SIZE_T Size;
|
||||||
|
HANDLE Handle;
|
||||||
|
DWORD ULong;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
} MEM_EXTENDED_PARAMETER, *PMEM_EXTENDED_PARAMETER;
|
||||||
|
|
||||||
|
typedef struct _SCOPE_TABLE_ARM {
|
||||||
|
DWORD Count;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
DWORD BeginAddress;
|
||||||
|
DWORD EndAddress;
|
||||||
|
DWORD HandlerAddress;
|
||||||
|
DWORD JumpTarget;
|
||||||
|
} ScopeRecord[1];
|
||||||
|
} SCOPE_TABLE_ARM, *PSCOPE_TABLE_ARM;
|
||||||
|
|
||||||
|
typedef SCOPE_TABLE_ARM SCOPE_TABLE_ARM64, *PSCOPE_TABLE_ARM64;
|
||||||
|
|
||||||
|
typedef union _ARM64_NT_NEON128
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
ULONGLONG Low;
|
||||||
|
LONGLONG High;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
double D[2];
|
||||||
|
float S[4];
|
||||||
|
WORD H[8];
|
||||||
|
BYTE B[16];
|
||||||
|
} ARM64_NT_NEON128, *PARM64_NT_NEON128;
|
||||||
|
|
||||||
|
typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
|
||||||
|
DWORD BeginAddress;
|
||||||
|
union {
|
||||||
|
DWORD UnwindData;
|
||||||
|
struct {
|
||||||
|
DWORD Flag : 2;
|
||||||
|
DWORD FunctionLength : 11;
|
||||||
|
DWORD RegF : 3;
|
||||||
|
DWORD RegI : 4;
|
||||||
|
DWORD H : 1;
|
||||||
|
DWORD CR : 2;
|
||||||
|
DWORD FrameSize : 9;
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
} IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, * PIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY;
|
||||||
|
|
||||||
/* FIXME: add more machines */
|
/* FIXME: add more machines */
|
||||||
#if defined(_X86_)
|
#if defined(_X86_)
|
||||||
#define SIZE_OF_80387_REGISTERS 80
|
#define SIZE_OF_80387_REGISTERS 80
|
||||||
|
@ -1270,24 +1364,6 @@ typedef struct _CONTEXT {
|
||||||
#define EXCEPTION_WRITE_FAULT 1
|
#define EXCEPTION_WRITE_FAULT 1
|
||||||
#define EXCEPTION_EXECUTE_FAULT 8
|
#define EXCEPTION_EXECUTE_FAULT 8
|
||||||
|
|
||||||
typedef struct _XMM_SAVE_AREA32 {
|
|
||||||
WORD ControlWord;
|
|
||||||
WORD StatusWord;
|
|
||||||
BYTE TagWord;
|
|
||||||
BYTE Reserved1;
|
|
||||||
WORD ErrorOpcode;
|
|
||||||
DWORD ErrorOffset;
|
|
||||||
WORD ErrorSelector;
|
|
||||||
WORD Reserved2;
|
|
||||||
DWORD DataOffset;
|
|
||||||
WORD DataSelector;
|
|
||||||
WORD Reserved3;
|
|
||||||
DWORD MxCsr;
|
|
||||||
DWORD MxCsr_Mask;
|
|
||||||
M128A FloatRegisters[8];
|
|
||||||
M128A XmmRegisters[16];
|
|
||||||
BYTE Reserved4[96];
|
|
||||||
} XMM_SAVE_AREA32, *PXMM_SAVE_AREA32;
|
|
||||||
|
|
||||||
typedef struct DECLSPEC_ALIGN(16) _CONTEXT {
|
typedef struct DECLSPEC_ALIGN(16) _CONTEXT {
|
||||||
DWORD64 P1Home;
|
DWORD64 P1Home;
|
||||||
|
@ -2124,17 +2200,6 @@ typedef struct _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY
|
||||||
} IMAGE_ARM_RUNTIME_FUNCTION_ENTRY, *PIMAGE_ARM_RUNTIME_FUNCTION_ENTRY;
|
} IMAGE_ARM_RUNTIME_FUNCTION_ENTRY, *PIMAGE_ARM_RUNTIME_FUNCTION_ENTRY;
|
||||||
typedef IMAGE_ARM_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
|
typedef IMAGE_ARM_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
|
||||||
|
|
||||||
typedef struct _SCOPE_TABLE_ARM
|
|
||||||
{
|
|
||||||
DWORD Count;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
DWORD BeginAddress;
|
|
||||||
DWORD EndAddress;
|
|
||||||
DWORD HandlerAddress;
|
|
||||||
DWORD JumpTarget;
|
|
||||||
} ScopeRecord[1];
|
|
||||||
} SCOPE_TABLE_ARM, *PSCOPE_TABLE_ARM;
|
|
||||||
typedef SCOPE_TABLE_ARM SCOPE_TABLE, *PSCOPE_TABLE;
|
typedef SCOPE_TABLE_ARM SCOPE_TABLE, *PSCOPE_TABLE;
|
||||||
|
|
||||||
typedef struct _DISPATCHER_CONTEXT
|
typedef struct _DISPATCHER_CONTEXT
|
||||||
|
@ -2256,33 +2321,7 @@ typedef struct _CONTEXT {
|
||||||
} _CONTEXT, *P_CONTEXT;
|
} _CONTEXT, *P_CONTEXT;
|
||||||
typedef _CONTEXT CONTEXT, *PCONTEXT;
|
typedef _CONTEXT CONTEXT, *PCONTEXT;
|
||||||
|
|
||||||
typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
|
|
||||||
DWORD BeginAddress;
|
|
||||||
union {
|
|
||||||
DWORD UnwindData;
|
|
||||||
struct {
|
|
||||||
DWORD Flag : 2;
|
|
||||||
DWORD FunctionLength : 11;
|
|
||||||
DWORD RegF : 3;
|
|
||||||
DWORD RegI : 4;
|
|
||||||
DWORD H : 1;
|
|
||||||
DWORD CR : 2;
|
|
||||||
DWORD FrameSize : 9;
|
|
||||||
} DUMMYSTRUCTNAME;
|
|
||||||
} DUMMYUNIONNAME;
|
|
||||||
} IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, * PIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY;
|
|
||||||
typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
|
typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
|
||||||
|
|
||||||
typedef struct _SCOPE_TABLE_ARM64 {
|
|
||||||
DWORD Count;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
DWORD BeginAddress;
|
|
||||||
DWORD EndAddress;
|
|
||||||
DWORD HandlerAddress;
|
|
||||||
DWORD JumpTarget;
|
|
||||||
} ScopeRecord[1];
|
|
||||||
} SCOPE_TABLE_ARM64, *PSCOPE_TABLE_ARM64;
|
|
||||||
typedef SCOPE_TABLE_ARM64 SCOPE_TABLE, *PSCOPE_TABLE;
|
typedef SCOPE_TABLE_ARM64 SCOPE_TABLE, *PSCOPE_TABLE;
|
||||||
|
|
||||||
typedef struct _DISPATCHER_CONTEXT {
|
typedef struct _DISPATCHER_CONTEXT {
|
||||||
|
@ -2304,6 +2343,114 @@ typedef struct _DISPATCHER_CONTEXT {
|
||||||
#endif
|
#endif
|
||||||
typedef CONTEXT *PCONTEXT;
|
typedef CONTEXT *PCONTEXT;
|
||||||
|
|
||||||
|
typedef struct DECLSPEC_ALIGN(16) _ARM64EC_NT_CONTEXT
|
||||||
|
{
|
||||||
|
union
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
DWORD64 AMD64_P1Home; /* 000 */
|
||||||
|
DWORD64 AMD64_P2Home; /* 008 */
|
||||||
|
DWORD64 AMD64_P3Home; /* 010 */
|
||||||
|
DWORD64 AMD64_P4Home; /* 018 */
|
||||||
|
DWORD64 AMD64_P5Home; /* 020 */
|
||||||
|
DWORD64 AMD64_P6Home; /* 028 */
|
||||||
|
DWORD ContextFlags; /* 030 */
|
||||||
|
DWORD AMD64_MxCsr_copy; /* 034 */
|
||||||
|
WORD AMD64_SegCs; /* 038 */
|
||||||
|
WORD AMD64_SegDs; /* 03a */
|
||||||
|
WORD AMD64_SegEs; /* 03c */
|
||||||
|
WORD AMD64_SegFs; /* 03e */
|
||||||
|
WORD AMD64_SegGs; /* 040 */
|
||||||
|
WORD AMD64_SegSs; /* 042 */
|
||||||
|
DWORD AMD64_EFlags; /* 044 */
|
||||||
|
DWORD64 AMD64_Dr0; /* 048 */
|
||||||
|
DWORD64 AMD64_Dr1; /* 050 */
|
||||||
|
DWORD64 AMD64_Dr2; /* 058 */
|
||||||
|
DWORD64 AMD64_Dr3; /* 060 */
|
||||||
|
DWORD64 AMD64_Dr6; /* 068 */
|
||||||
|
DWORD64 AMD64_Dr7; /* 070 */
|
||||||
|
DWORD64 X8; /* 078 (Rax) */
|
||||||
|
DWORD64 X0; /* 080 (Rcx) */
|
||||||
|
DWORD64 X1; /* 088 (Rdx) */
|
||||||
|
DWORD64 X27; /* 090 (Rbx) */
|
||||||
|
DWORD64 Sp; /* 098 (Rsp) */
|
||||||
|
DWORD64 Fp; /* 0a0 (Rbp) */
|
||||||
|
DWORD64 X25; /* 0a8 (Rsi) */
|
||||||
|
DWORD64 X26; /* 0b0 (Rdi) */
|
||||||
|
DWORD64 X2; /* 0b8 (R8) */
|
||||||
|
DWORD64 X3; /* 0c0 (R9) */
|
||||||
|
DWORD64 X4; /* 0c8 (R10) */
|
||||||
|
DWORD64 X5; /* 0d0 (R11) */
|
||||||
|
DWORD64 X19; /* 0d8 (R12) */
|
||||||
|
DWORD64 X20; /* 0e0 (R13) */
|
||||||
|
DWORD64 X21; /* 0e8 (R14) */
|
||||||
|
DWORD64 X22; /* 0f0 (R15) */
|
||||||
|
DWORD64 Pc; /* 0f8 (Rip) */
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
WORD AMD64_ControlWord; /* 100 */
|
||||||
|
WORD AMD64_StatusWord; /* 102 */
|
||||||
|
BYTE AMD64_TagWord; /* 104 */
|
||||||
|
BYTE AMD64_Reserved1; /* 105 */
|
||||||
|
WORD AMD64_ErrorOpcode; /* 106 */
|
||||||
|
DWORD AMD64_ErrorOffset; /* 108 */
|
||||||
|
WORD AMD64_ErrorSelector; /* 10c */
|
||||||
|
WORD AMD64_Reserved2; /* 10e */
|
||||||
|
DWORD AMD64_DataOffset; /* 110 */
|
||||||
|
WORD AMD64_DataSelector; /* 114 */
|
||||||
|
WORD AMD64_Reserved3; /* 116 */
|
||||||
|
DWORD AMD64_MxCsr; /* 118 */
|
||||||
|
DWORD AMD64_MxCsr_Mask; /* 11c */
|
||||||
|
DWORD64 Lr; /* 120 (FloatRegisters[0]) */
|
||||||
|
WORD X16_0; /* 128 */
|
||||||
|
WORD AMD64_St0_Reserved1; /* 12a */
|
||||||
|
DWORD AMD64_St0_Reserved2; /* 12c */
|
||||||
|
DWORD64 X6; /* 130 (FloatRegisters[1]) */
|
||||||
|
WORD X16_1; /* 138 */
|
||||||
|
WORD AMD64_St1_Reserved1; /* 13a */
|
||||||
|
DWORD AMD64_St1_Reserved2; /* 13c */
|
||||||
|
DWORD64 X7; /* 140 (FloatRegisters[2]) */
|
||||||
|
WORD X16_2; /* 148 */
|
||||||
|
WORD AMD64_St2_Reserved1; /* 14a */
|
||||||
|
DWORD AMD64_St2_Reserved2; /* 14c */
|
||||||
|
DWORD64 X9; /* 150 (FloatRegisters[3]) */
|
||||||
|
WORD X16_3; /* 158 */
|
||||||
|
WORD AMD64_St3_Reserved1; /* 15a */
|
||||||
|
DWORD AMD64_St3_Reserved2; /* 15c */
|
||||||
|
DWORD64 X10; /* 160 (FloatRegisters[4]) */
|
||||||
|
WORD X17_0; /* 168 */
|
||||||
|
WORD AMD64_St4_Reserved1; /* 16a */
|
||||||
|
DWORD AMD64_St4_Reserved2; /* 16c */
|
||||||
|
DWORD64 X11; /* 170 (FloatRegisters[5]) */
|
||||||
|
WORD X17_1; /* 178 */
|
||||||
|
WORD AMD64_St5_Reserved1; /* 17a */
|
||||||
|
DWORD AMD64_St5_Reserved2; /* 17c */
|
||||||
|
DWORD64 X12; /* 180 (FloatRegisters[6]) */
|
||||||
|
WORD X17_2; /* 188 */
|
||||||
|
WORD AMD64_St6_Reserved1; /* 18a */
|
||||||
|
DWORD AMD64_St6_Reserved2; /* 18c */
|
||||||
|
DWORD64 X15; /* 190 (FloatRegisters[7]) */
|
||||||
|
WORD X17_3; /* 198 */
|
||||||
|
WORD AMD64_St7_Reserved1; /* 19a */
|
||||||
|
DWORD AMD64_St7_Reserved2; /* 19c */
|
||||||
|
ARM64_NT_NEON128 V[16]; /* 1a0 (XmmRegisters) */
|
||||||
|
BYTE AMD64_XSAVE_FORMAT_Reserved4[96]; /* 2a0 */
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
ARM64_NT_NEON128 AMD64_VectorRegister[26]; /* 300 */
|
||||||
|
DWORD64 AMD64_VectorControl; /* 4a0 */
|
||||||
|
DWORD64 AMD64_DebugControl; /* 4a8 */
|
||||||
|
DWORD64 AMD64_LastBranchToRip; /* 4b0 */
|
||||||
|
DWORD64 AMD64_LastBranchFromRip; /* 4b8 */
|
||||||
|
DWORD64 AMD64_LastExceptionToRip; /* 4c0 */
|
||||||
|
DWORD64 AMD64_LastExceptionFromRip; /* 4c8 */
|
||||||
|
} DUMMYSTRUCTNAME;
|
||||||
|
#ifdef _ARM64EC_
|
||||||
|
CONTEXT AMD64_Context;
|
||||||
|
#endif
|
||||||
|
} DUMMYUNIONNAME;
|
||||||
|
} ARM64EC_NT_CONTEXT, *PARM64EC_NT_CONTEXT;
|
||||||
|
|
||||||
/* The WoW64 context */
|
/* The WoW64 context */
|
||||||
#define WOW64_CONTEXT_i386 0x00010000
|
#define WOW64_CONTEXT_i386 0x00010000
|
||||||
#define WOW64_CONTEXT_i486 0x00010000
|
#define WOW64_CONTEXT_i486 0x00010000
|
||||||
|
@ -2374,13 +2521,14 @@ typedef struct _WOW64_CONTEXT
|
||||||
|
|
||||||
|
|
||||||
#define EXCEPTION_MAXIMUM_PARAMETERS 15
|
#define EXCEPTION_MAXIMUM_PARAMETERS 15
|
||||||
#define EXCEPTION_NONCONTINUABLE 0x01
|
#define EXCEPTION_NONCONTINUABLE 0x01
|
||||||
#define EXCEPTION_UNWINDING 0x02
|
#define EXCEPTION_UNWINDING 0x02
|
||||||
#define EXCEPTION_EXIT_UNWIND 0x04
|
#define EXCEPTION_EXIT_UNWIND 0x04
|
||||||
#define EXCEPTION_STACK_INVALID 0x08
|
#define EXCEPTION_STACK_INVALID 0x08
|
||||||
#define EXCEPTION_NESTED_CALL 0x10
|
#define EXCEPTION_NESTED_CALL 0x10
|
||||||
#define EXCEPTION_TARGET_UNWIND 0x20
|
#define EXCEPTION_TARGET_UNWIND 0x20
|
||||||
#define EXCEPTION_COLLIDED_UNWIND 0x40
|
#define EXCEPTION_COLLIDED_UNWIND 0x40
|
||||||
|
#define EXCEPTION_SOFTWARE_ORIGINATE 0x80
|
||||||
#define EXCEPTION_UNWIND (EXCEPTION_UNWINDING | EXCEPTION_EXIT_UNWIND | \
|
#define EXCEPTION_UNWIND (EXCEPTION_UNWINDING | EXCEPTION_EXIT_UNWIND | \
|
||||||
EXCEPTION_TARGET_UNWIND | EXCEPTION_COLLIDED_UNWIND)
|
EXCEPTION_TARGET_UNWIND | EXCEPTION_COLLIDED_UNWIND)
|
||||||
|
|
||||||
|
@ -4209,12 +4357,17 @@ typedef struct _ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION {
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN = 0,
|
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN = 0,
|
||||||
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS
|
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS,
|
||||||
|
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MITIGATION,
|
||||||
|
ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MAXVERSIONTESTED
|
||||||
} ACTCTX_COMPATIBILITY_ELEMENT_TYPE;
|
} ACTCTX_COMPATIBILITY_ELEMENT_TYPE;
|
||||||
|
|
||||||
typedef struct _COMPATIBILITY_CONTEXT_ELEMENT {
|
typedef struct _COMPATIBILITY_CONTEXT_ELEMENT {
|
||||||
GUID Id;
|
GUID Id;
|
||||||
ACTCTX_COMPATIBILITY_ELEMENT_TYPE Type;
|
ACTCTX_COMPATIBILITY_ELEMENT_TYPE Type;
|
||||||
|
#if (NTDDI_VERSION >= NTDDI_WIN10_19H1)
|
||||||
|
ULONGLONG MaxVersionTested;
|
||||||
|
#endif
|
||||||
} COMPATIBILITY_CONTEXT_ELEMENT, *PCOMPATIBILITY_CONTEXT_ELEMENT;
|
} COMPATIBILITY_CONTEXT_ELEMENT, *PCOMPATIBILITY_CONTEXT_ELEMENT;
|
||||||
|
|
||||||
typedef struct _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION {
|
typedef struct _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION {
|
||||||
|
@ -4485,6 +4638,11 @@ DbgRaiseAssertionFailure(VOID)
|
||||||
#error Unknown architecture
|
#error Unknown architecture
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef enum _CPU_SET_INFORMATION_TYPE
|
||||||
|
{
|
||||||
|
CpuSetInformation,
|
||||||
|
} CPU_SET_INFORMATION_TYPE, *PCPU_SET_INFORMATION_TYPE;
|
||||||
|
|
||||||
typedef struct _TP_POOL TP_POOL, *PTP_POOL;
|
typedef struct _TP_POOL TP_POOL, *PTP_POOL;
|
||||||
typedef struct _TP_WORK TP_WORK, *PTP_WORK;
|
typedef struct _TP_WORK TP_WORK, *PTP_WORK;
|
||||||
typedef struct _TP_CALLBACK_INSTANCE TP_CALLBACK_INSTANCE, *PTP_CALLBACK_INSTANCE;
|
typedef struct _TP_CALLBACK_INSTANCE TP_CALLBACK_INSTANCE, *PTP_CALLBACK_INSTANCE;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue