Reactos

[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.

authored by

Carl J. Bialorucki and committed by
GitHub
a753f34e a993c589

+4661 -694
+2 -2
dll/win32/dbghelp/dbghelp.c
··· 371 371 PEB32 peb32; 372 372 C_ASSERT(sizeof(void*) != 4 || FIELD_OFFSET(RTL_USER_PROCESS_PARAMETERS, Environment) == 0x48); 373 373 if (!ReadProcessMemory(pcs->handle, pbi.PebBaseAddress, &peb32, sizeof(peb32), NULL)) return FALSE; 374 - base = peb32.Reserved[0]; 374 + base = peb32.Reserved; 375 375 if (read_process_memory(pcs, peb32.ProcessParameters + 0x48, &env32, sizeof(env32))) env = env32; 376 376 } 377 377 else 378 378 { 379 379 PEB peb; 380 380 if (!ReadProcessMemory(pcs->handle, pbi.PebBaseAddress, &peb, sizeof(peb), NULL)) return FALSE; 381 - base = peb.Reserved[0]; 381 + base = peb.Reserved; 382 382 ReadProcessMemory(pcs->handle, &peb.ProcessParameters->Environment, &env, sizeof(env), NULL); 383 383 } 384 384
-21
dll/win32/dbghelp/dbghelp_private.h
··· 605 605 606 606 extern struct cpu* dbghelp_current_cpu DECLSPEC_HIDDEN; 607 607 608 - /* Abbreviated 32-bit PEB */ 609 - typedef struct _PEB32 610 - { 611 - BOOLEAN InheritedAddressSpace; 612 - BOOLEAN ReadImageFileExecOptions; 613 - BOOLEAN BeingDebugged; 614 - BOOLEAN SpareBool; 615 - DWORD Mutant; 616 - DWORD ImageBaseAddress; 617 - DWORD LdrData; 618 - DWORD ProcessParameters; 619 - DWORD SubSystemData; 620 - DWORD ProcessHeap; 621 - DWORD FastPebLock; 622 - DWORD FastPebLockRoutine; 623 - DWORD FastPebUnlockRoutine; 624 - ULONG EnvironmentUpdateCount; 625 - DWORD KernelCallbackTable; 626 - ULONG Reserved[2]; 627 - } PEB32; 628 - 629 608 /* dbghelp.c */ 630 609 extern struct process* process_find_by_handle(HANDLE hProcess) DECLSPEC_HIDDEN; 631 610 extern BOOL validate_addr64(DWORD64 addr) DECLSPEC_HIDDEN;
+1 -1
dll/win32/wbemprox/builtin.c
··· 3874 3874 if (!(ret = heap_alloc( 26 * sizeof(WCHAR) ))) return NULL; 3875 3875 3876 3876 NtQuerySystemInformation( SystemTimeOfDayInformation, &ti, sizeof(ti), NULL ); 3877 - RtlTimeToTimeFields( &ti.liKeBootTime, &tf ); 3877 + RtlTimeToTimeFields( &ti.BootTime, &tf ); 3878 3878 swprintf( ret, fmtW, tf.Year, tf.Month, tf.Day, tf.Hour, tf.Minute, tf.Second, tf.Milliseconds * 1000 ); 3879 3879 return ret; 3880 3880 }
+11 -11
modules/rostests/winetests/kernel32/loader.c
··· 379 379 ok( image.SubSystemType == nt_header->OptionalHeader.Subsystem, 380 380 "%u: SubSystemType wrong %08x / %08x\n", id, 381 381 image.SubSystemType, nt_header->OptionalHeader.Subsystem ); 382 - ok( image.SubsystemVersionLow == nt_header->OptionalHeader.MinorSubsystemVersion, 382 + ok( image.MinorSubsystemVersion == nt_header->OptionalHeader.MinorSubsystemVersion, 383 383 "%u: SubsystemVersionLow wrong %04x / %04x\n", id, 384 - image.SubsystemVersionLow, nt_header->OptionalHeader.MinorSubsystemVersion ); 385 - ok( image.SubsystemVersionHigh == nt_header->OptionalHeader.MajorSubsystemVersion, 384 + image.MinorSubsystemVersion, nt_header->OptionalHeader.MinorSubsystemVersion ); 385 + ok( image.MajorSubsystemVersion == nt_header->OptionalHeader.MajorSubsystemVersion, 386 386 "%u: SubsystemVersionHigh wrong %04x / %04x\n", id, 387 - image.SubsystemVersionHigh, nt_header->OptionalHeader.MajorSubsystemVersion ); 387 + image.MajorSubsystemVersion, nt_header->OptionalHeader.MajorSubsystemVersion ); 388 388 ok( image.ImageCharacteristics == nt_header->FileHeader.Characteristics, 389 389 "%u: ImageCharacteristics wrong %04x / %04x\n", id, 390 390 image.ImageCharacteristics, nt_header->FileHeader.Characteristics ); ··· 3652 3652 PEB_LDR_DATA *ldr = NtCurrentTeb()->Peb->LdrData; 3653 3653 LIST_ENTRY *entry1, *mark1 = &ldr->InLoadOrderModuleList; 3654 3654 LIST_ENTRY *entry2, *mark2 = &ldr->InMemoryOrderModuleList; 3655 - LDR_MODULE *module1, *module2; 3655 + LDR_DATA_TABLE_ENTRY *module1, *module2; 3656 3656 3657 3657 ok(ldr->Initialized == TRUE, "expected TRUE, got %u\n", ldr->Initialized); 3658 3658 ··· 3660 3660 entry1 != mark1 && entry2 != mark2; 3661 3661 entry1 = entry1->Flink, entry2 = entry2->Flink) 3662 3662 { 3663 - module1 = CONTAINING_RECORD(entry1, LDR_MODULE, InLoadOrderModuleList); 3664 - module2 = CONTAINING_RECORD(entry2, LDR_MODULE, InMemoryOrderModuleList); 3663 + module1 = CONTAINING_RECORD(entry1, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks); 3664 + module2 = CONTAINING_RECORD(entry2, LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks); 3665 3665 ok(module1 == module2, "expected module1 == module2, got %p and %p\n", module1, module2); 3666 3666 } 3667 3667 ok(entry1 == mark1, "expected entry1 == mark1, got %p and %p\n", entry1, mark1); ··· 3703 3703 static WCHAR kernel32W[] = {'k','e','r','n','e','l','3','2','.','d','l','l',0}; 3704 3704 3705 3705 LIST_ENTRY *hash_map, *entry, *mark; 3706 - LDR_MODULE *module; 3706 + LDR_DATA_TABLE_ENTRY *module; 3707 3707 BOOL found; 3708 3708 3709 3709 entry = &NtCurrentTeb()->Peb->LdrData->InLoadOrderModuleList; 3710 3710 entry = entry->Flink; 3711 3711 3712 - module = CONTAINING_RECORD(entry, LDR_MODULE, InLoadOrderModuleList); 3712 + module = CONTAINING_RECORD(entry, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks); 3713 3713 entry = module->HashLinks.Blink; 3714 3714 3715 3715 hash_map = entry - hash_basename(module->BaseDllName.Buffer); ··· 3718 3718 found = FALSE; 3719 3719 for (entry = mark->Flink; entry != mark; entry = entry->Flink) 3720 3720 { 3721 - module = CONTAINING_RECORD(entry, LDR_MODULE, HashLinks); 3721 + module = CONTAINING_RECORD(entry, LDR_DATA_TABLE_ENTRY, HashLinks); 3722 3722 if (!lstrcmpiW(module->BaseDllName.Buffer, ntdllW)) 3723 3723 { 3724 3724 found = TRUE; ··· 3731 3731 found = FALSE; 3732 3732 for (entry = mark->Flink; entry != mark; entry = entry->Flink) 3733 3733 { 3734 - module = CONTAINING_RECORD(entry, LDR_MODULE, HashLinks); 3734 + module = CONTAINING_RECORD(entry, LDR_DATA_TABLE_ENTRY, HashLinks); 3735 3735 if (!lstrcmpiW(module->BaseDllName.Buffer, kernel32W)) 3736 3736 { 3737 3737 found = TRUE;
+2 -2
modules/rostests/winetests/kernel32/virtual.c
··· 4007 4007 ok(info.image.MaximumStackSize == nt->OptionalHeader.SizeOfStackReserve, "expected %#lx, got %#lx\n", (SIZE_T)nt->OptionalHeader.SizeOfStackReserve, info.image.MaximumStackSize); 4008 4008 ok(info.image.CommittedStackSize == nt->OptionalHeader.SizeOfStackCommit, "expected %#lx, got %#lx\n", (SIZE_T)nt->OptionalHeader.SizeOfStackCommit, info.image.CommittedStackSize); 4009 4009 ok(info.image.SubSystemType == nt->OptionalHeader.Subsystem, "expected %#x, got %#x\n", nt->OptionalHeader.Subsystem, info.image.SubSystemType); 4010 - ok(info.image.SubsystemVersionLow == nt->OptionalHeader.MinorSubsystemVersion, "expected %#x, got %#x\n", nt->OptionalHeader.MinorSubsystemVersion, info.image.SubsystemVersionLow); 4011 - ok(info.image.SubsystemVersionHigh == nt->OptionalHeader.MajorSubsystemVersion, "expected %#x, got %#x\n", nt->OptionalHeader.MajorSubsystemVersion, info.image.SubsystemVersionHigh); 4010 + ok(info.image.MinorSubsystemVersion == nt->OptionalHeader.MinorSubsystemVersion, "expected %#x, got %#x\n", nt->OptionalHeader.MinorSubsystemVersion, info.image.MinorSubsystemVersion); 4011 + ok(info.image.MajorSubsystemVersion == nt->OptionalHeader.MajorSubsystemVersion, "expected %#x, got %#x\n", nt->OptionalHeader.MajorSubsystemVersion, info.image.MajorSubsystemVersion); 4012 4012 ok(info.image.ImageCharacteristics == nt->FileHeader.Characteristics, "expected %#x, got %#x\n", nt->FileHeader.Characteristics, info.image.ImageCharacteristics); 4013 4013 ok(info.image.DllCharacteristics == nt->OptionalHeader.DllCharacteristics, "expected %#x, got %#x\n", nt->OptionalHeader.DllCharacteristics, info.image.DllCharacteristics); 4014 4014 ok(info.image.Machine == nt->FileHeader.Machine, "expected %#x, got %#x\n", nt->FileHeader.Machine, info.image.Machine);
+34 -34
modules/rostests/winetests/ntdll/file.c
··· 1377 1377 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1378 1378 DeleteFileW( newpath ); 1379 1379 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1380 - fri->Replace = FALSE; 1381 - fri->RootDir = NULL; 1380 + fri->ReplaceIfExists = FALSE; 1381 + fri->RootDirectory = NULL; 1382 1382 fri->FileNameLength = name_str.Length; 1383 1383 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1384 1384 pRtlFreeUnicodeString( &name_str ); ··· 1415 1415 ok( res != 0, "failed to create temp file\n" ); 1416 1416 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1417 1417 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1418 - fri->Replace = FALSE; 1419 - fri->RootDir = NULL; 1418 + fri->ReplaceIfExists = FALSE; 1419 + fri->RootDirectory = NULL; 1420 1420 fri->FileNameLength = name_str.Length; 1421 1421 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1422 1422 pRtlFreeUnicodeString( &name_str ); ··· 1445 1445 ok( res != 0, "failed to create temp file\n" ); 1446 1446 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1447 1447 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1448 - fri->Replace = TRUE; 1449 - fri->RootDir = NULL; 1448 + fri->ReplaceIfExists = TRUE; 1449 + fri->RootDirectory = NULL; 1450 1450 fri->FileNameLength = name_str.Length; 1451 1451 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1452 1452 pRtlFreeUnicodeString( &name_str ); ··· 1478 1478 1479 1479 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1480 1480 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1481 - fri->Replace = FALSE; 1482 - fri->RootDir = NULL; 1481 + fri->ReplaceIfExists = FALSE; 1482 + fri->RootDirectory = NULL; 1483 1483 fri->FileNameLength = name_str.Length; 1484 1484 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1485 1485 pRtlFreeUnicodeString( &name_str ); ··· 1512 1512 1513 1513 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1514 1514 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1515 - fri->Replace = TRUE; 1516 - fri->RootDir = NULL; 1515 + fri->ReplaceIfExists = TRUE; 1516 + fri->RootDirectory = NULL; 1517 1517 fri->FileNameLength = name_str.Length; 1518 1518 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1519 1519 pRtlFreeUnicodeString( &name_str ); ··· 1547 1547 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1548 1548 DeleteFileW( newpath ); 1549 1549 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1550 - fri->Replace = FALSE; 1551 - fri->RootDir = NULL; 1550 + fri->ReplaceIfExists = FALSE; 1551 + fri->RootDirectory = NULL; 1552 1552 fri->FileNameLength = name_str.Length; 1553 1553 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1554 1554 pRtlFreeUnicodeString( &name_str ); ··· 1594 1594 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1595 1595 DeleteFileW( newpath ); 1596 1596 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1597 - fri->Replace = FALSE; 1598 - fri->RootDir = NULL; 1597 + fri->ReplaceIfExists = FALSE; 1598 + fri->RootDirectory = NULL; 1599 1599 fri->FileNameLength = name_str.Length; 1600 1600 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1601 1601 pRtlFreeUnicodeString( &name_str ); ··· 1634 1634 ok( res != 0, "failed to create temp file\n" ); 1635 1635 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1636 1636 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1637 - fri->Replace = FALSE; 1638 - fri->RootDir = NULL; 1637 + fri->ReplaceIfExists = FALSE; 1638 + fri->RootDirectory = NULL; 1639 1639 fri->FileNameLength = name_str.Length; 1640 1640 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1641 1641 pRtlFreeUnicodeString( &name_str ); ··· 1670 1670 1671 1671 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1672 1672 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1673 - fri->Replace = FALSE; 1674 - fri->RootDir = NULL; 1673 + fri->ReplaceIfExists = FALSE; 1674 + fri->RootDirectory = NULL; 1675 1675 fri->FileNameLength = name_str.Length; 1676 1676 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1677 1677 pRtlFreeUnicodeString( &name_str ); ··· 1704 1704 ok( res != 0, "failed to create temp file\n" ); 1705 1705 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1706 1706 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1707 - fri->Replace = TRUE; 1708 - fri->RootDir = NULL; 1707 + fri->ReplaceIfExists = TRUE; 1708 + fri->RootDirectory = NULL; 1709 1709 fri->FileNameLength = name_str.Length; 1710 1710 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1711 1711 pRtlFreeUnicodeString( &name_str ); ··· 1740 1740 1741 1741 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1742 1742 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1743 - fri->Replace = TRUE; 1744 - fri->RootDir = NULL; 1743 + fri->ReplaceIfExists = TRUE; 1744 + fri->RootDirectory = NULL; 1745 1745 fri->FileNameLength = name_str.Length; 1746 1746 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1747 1747 pRtlFreeUnicodeString( &name_str ); ··· 1777 1777 ok( success != 0, "failed to create temp directory\n" ); 1778 1778 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1779 1779 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1780 - fri->Replace = FALSE; 1781 - fri->RootDir = NULL; 1780 + fri->ReplaceIfExists = FALSE; 1781 + fri->RootDirectory = NULL; 1782 1782 fri->FileNameLength = name_str.Length; 1783 1783 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1784 1784 pRtlFreeUnicodeString( &name_str ); ··· 1813 1813 ok( success != 0, "failed to create temp directory\n" ); 1814 1814 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1815 1815 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1816 - fri->Replace = TRUE; 1817 - fri->RootDir = NULL; 1816 + fri->ReplaceIfExists= TRUE; 1817 + fri->RootDirectory = NULL; 1818 1818 fri->FileNameLength = name_str.Length; 1819 1819 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1820 1820 pRtlFreeUnicodeString( &name_str ); ··· 1852 1852 1853 1853 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1854 1854 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1855 - fri->Replace = TRUE; 1856 - fri->RootDir = NULL; 1855 + fri->ReplaceIfExists = TRUE; 1856 + fri->RootDirectory = NULL; 1857 1857 fri->FileNameLength = name_str.Length; 1858 1858 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1859 1859 pRtlFreeUnicodeString( &name_str ); ··· 1886 1886 ok( success != 0, "failed to create temp directory\n" ); 1887 1887 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1888 1888 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1889 - fri->Replace = FALSE; 1890 - fri->RootDir = NULL; 1889 + fri->ReplaceIfExists = FALSE; 1890 + fri->RootDirectory = NULL; 1891 1891 fri->FileNameLength = name_str.Length; 1892 1892 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1893 1893 pRtlFreeUnicodeString( &name_str ); ··· 1919 1919 ok( success != 0, "failed to create temp directory\n" ); 1920 1920 pRtlDosPathNameToNtPathName_U( newpath, &name_str, NULL, NULL ); 1921 1921 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + name_str.Length ); 1922 - fri->Replace = TRUE; 1923 - fri->RootDir = NULL; 1922 + fri->ReplaceIfExists = TRUE; 1923 + fri->RootDirectory = NULL; 1924 1924 fri->FileNameLength = name_str.Length; 1925 1925 memcpy( fri->FileName, name_str.Buffer, name_str.Length ); 1926 1926 pRtlFreeUnicodeString( &name_str ); ··· 1954 1954 ok( handle2 != INVALID_HANDLE_VALUE, "CreateFileW failed\n" ); 1955 1955 1956 1956 fri = HeapAlloc( GetProcessHeap(), 0, sizeof(FILE_RENAME_INFORMATION) + lstrlenW(filename) * sizeof(WCHAR) ); 1957 - fri->Replace = FALSE; 1958 - fri->RootDir = handle2; 1957 + fri->ReplaceIfExists = FALSE; 1958 + fri->RootDirectory = handle2; 1959 1959 fri->FileNameLength = lstrlenW(filename) * sizeof(WCHAR); 1960 1960 memcpy( fri->FileName, filename, fri->FileNameLength ); 1961 1961
+33 -25
modules/rostests/winetests/ntdll/info.c
··· 156 156 ok( sizeof(sci) == ReturnLength, "Inconsistent length %d\n", ReturnLength); 157 157 158 158 /* Check if we have some return values */ 159 - trace("Processor FeatureSet : %08x\n", sci.FeatureSet); 160 - ok( sci.FeatureSet != 0, "Expected some features for this processor, got %08x\n", sci.FeatureSet); 159 + trace("Processor FeatureSet : %08x\n", sci.ProcessorFeatureBits); 160 + ok( sci.ProcessorFeatureBits != 0, "Expected some features for this processor, got %08x\n", sci.ProcessorFeatureBits); 161 161 } 162 162 163 163 static void test_query_performance(void) ··· 458 458 ULONG ReturnLength; 459 459 ULONG ModuleCount, i; 460 460 461 - ULONG SystemInformationLength = sizeof(SYSTEM_MODULE_INFORMATION); 462 - SYSTEM_MODULE_INFORMATION* smi = HeapAlloc(GetProcessHeap(), 0, SystemInformationLength); 463 - SYSTEM_MODULE* sm; 461 + ULONG SystemInformationLength = sizeof(RTL_PROCESS_MODULES); 462 + RTL_PROCESS_MODULES* smi = HeapAlloc(GetProcessHeap(), 0, SystemInformationLength); 463 + RTL_PROCESS_MODULE_INFORMATION* sm; 464 464 465 465 /* Request the needed length */ 466 466 status = pNtQuerySystemInformation(SystemModuleInformation, smi, 0, &ReturnLength); ··· 480 480 /* Loop through all the modules/drivers, Wine doesn't get here (yet) */ 481 481 for (i = 0; i < ModuleCount ; i++) 482 482 { 483 - ok( i == sm->Id, "Id (%d) should have matched %u\n", sm->Id, i); 483 + ok( i == sm->LoadOrderIndex, "LoadOrderIndex (%d) should have matched %u\n", sm->LoadOrderIndex, i); 484 484 sm++; 485 485 } 486 486 ··· 590 590 ReturnLength = 0xdeadbeef; 591 591 status = pNtQuerySystemInformation(SystemExtendedHandleInformation, shi, SystemInformationLength, &ReturnLength); 592 592 ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status ); 593 - ExpectedLength = FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handle[shi->Count]); 593 + ExpectedLength = FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handles[shi->NumberOfHandles]); 594 594 ok( ReturnLength == ExpectedLength, "Expected length %u, got %u\n", ExpectedLength, ReturnLength ); 595 - ok( shi->Count > 1, "Expected more than 1 handle, got %u\n", (DWORD)shi->Count ); 595 + ok( shi->NumberOfHandles > 1, "Expected more than 1 handle, got %u\n", (DWORD)shi->NumberOfHandles ); 596 596 597 - for (i = 0, found = FALSE; i < shi->Count && !found; i++) 598 - found = (shi->Handle[i].UniqueProcessId == GetCurrentProcessId()) && 599 - ((HANDLE)(ULONG_PTR)shi->Handle[i].HandleValue == EventHandle); 597 + for (i = 0, found = FALSE; i < shi->NumberOfHandles && !found; i++) 598 + found = (shi->Handles[i].UniqueProcessId == GetCurrentProcessId()) && 599 + ((HANDLE)(ULONG_PTR)shi->Handles[i].HandleValue == EventHandle); 600 600 ok( found, "Expected to find event handle %p (pid %x) in handle list\n", EventHandle, GetCurrentProcessId() ); 601 601 602 602 if (!found) 603 603 { 604 - for (i = 0; i < shi->Count; i++) 605 - trace( "%d: handle %x pid %x\n", i, (DWORD)shi->Handle[i].HandleValue, (DWORD)shi->Handle[i].UniqueProcessId ); 604 + for (i = 0; i < shi->NumberOfHandles; i++) 605 + trace( "%d: handle %x pid %x\n", i, (DWORD)shi->Handles[i].HandleValue, (DWORD)shi->Handles[i].UniqueProcessId ); 606 606 } 607 607 608 608 CloseHandle(EventHandle); ··· 610 610 ReturnLength = 0xdeadbeef; 611 611 status = pNtQuerySystemInformation(SystemExtendedHandleInformation, shi, SystemInformationLength, &ReturnLength); 612 612 ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status ); 613 - for (i = 0, found = FALSE; i < shi->Count && !found; i++) 614 - found = (shi->Handle[i].UniqueProcessId == GetCurrentProcessId()) && 615 - ((HANDLE)(ULONG_PTR)shi->Handle[i].HandleValue == EventHandle); 613 + for (i = 0, found = FALSE; i < shi->NumberOfHandles && !found; i++) 614 + found = (shi->Handles[i].UniqueProcessId == GetCurrentProcessId()) && 615 + ((HANDLE)(ULONG_PTR)shi->Handles[i].HandleValue == EventHandle); 616 616 ok( !found, "Unexpectedly found event handle in handle list\n" ); 617 617 618 618 status = pNtQuerySystemInformation(SystemExtendedHandleInformation, NULL, SystemInformationLength, &ReturnLength); ··· 635 635 for (i = sizeof(buffer); i>= expected; i--) 636 636 { 637 637 ReturnLength = 0xdeadbeef; 638 - status = pNtQuerySystemInformation(SystemCacheInformation, sci, i, &ReturnLength); 638 + status = pNtQuerySystemInformation(SystemFileCacheInformation, sci, i, &ReturnLength); 639 639 ok(!status && (ReturnLength == expected), 640 640 "%d: got 0x%x and %u (expected STATUS_SUCCESS and %u)\n", i, status, ReturnLength, expected); 641 641 } 642 642 643 643 /* buffer too small for the full result. 644 644 Up to win7, the function succeeds with a partial result. */ 645 - status = pNtQuerySystemInformation(SystemCacheInformation, sci, i, &ReturnLength); 645 + status = pNtQuerySystemInformation(SystemFileCacheInformation, sci, i, &ReturnLength); 646 646 if (!status) 647 647 { 648 648 expected = offsetof(SYSTEM_CACHE_INFORMATION, MinimumWorkingSet); 649 649 for (; i>= expected; i--) 650 650 { 651 651 ReturnLength = 0xdeadbeef; 652 - status = pNtQuerySystemInformation(SystemCacheInformation, sci, i, &ReturnLength); 652 + status = pNtQuerySystemInformation(SystemFileCacheInformation, sci, i, &ReturnLength); 653 653 ok(!status && (ReturnLength == expected), 654 654 "%d: got 0x%x and %u (expected STATUS_SUCCESS and %u)\n", i, status, ReturnLength, expected); 655 655 } ··· 657 657 658 658 /* buffer too small for the result, this call will always fail */ 659 659 ReturnLength = 0xdeadbeef; 660 - status = pNtQuerySystemInformation(SystemCacheInformation, sci, i, &ReturnLength); 660 + status = pNtQuerySystemInformation(SystemFileCacheInformation, sci, i, &ReturnLength); 661 661 ok( status == STATUS_INFO_LENGTH_MISMATCH && 662 662 ((ReturnLength == expected) || broken(!ReturnLength) || broken(ReturnLength == 0xfffffff0)), 663 663 "%d: got 0x%x and %u (expected STATUS_INFO_LENGTH_MISMATCH and %u)\n", i, status, ReturnLength, expected); ··· 665 665 if (0) { 666 666 /* this crashes on some vista / win7 machines */ 667 667 ReturnLength = 0xdeadbeef; 668 - status = pNtQuerySystemInformation(SystemCacheInformation, sci, 0, &ReturnLength); 668 + status = pNtQuerySystemInformation(SystemFileCacheInformation, sci, 0, &ReturnLength); 669 669 ok( status == STATUS_INFO_LENGTH_MISMATCH && 670 670 ((ReturnLength == expected) || broken(!ReturnLength) || broken(ReturnLength == 0xfffffff0)), 671 671 "0: got 0x%x and %u (expected STATUS_INFO_LENGTH_MISMATCH and %u)\n", status, ReturnLength, expected); ··· 1129 1129 NTSTATUS status; 1130 1130 ULONG ReturnLength; 1131 1131 VM_COUNTERS pvi; 1132 + #ifndef __REACTOS__ 1132 1133 ULONG old_size = FIELD_OFFSET(VM_COUNTERS,PrivatePageCount); 1134 + #endif 1133 1135 HANDLE process; 1134 1136 SIZE_T prev_size; 1135 1137 const SIZE_T alloc_size = 16 * 1024 * 1024; ··· 1139 1141 ok( status == STATUS_ACCESS_VIOLATION || status == STATUS_INVALID_HANDLE, 1140 1142 "Expected STATUS_ACCESS_VIOLATION or STATUS_INVALID_HANDLE(W2K3), got %08x\n", status); 1141 1143 1144 + #ifndef __REACTOS__ 1142 1145 status = pNtQueryInformationProcess(NULL, ProcessVmCounters, &pvi, old_size, NULL); 1143 1146 ok( status == STATUS_INVALID_HANDLE, "Expected STATUS_INVALID_HANDLE, got %08x\n", status); 1147 + #endif 1144 1148 1145 1149 /* Windows XP and W2K3 will report success for a size of 44 AND 48 ! 1146 1150 Windows W2K will only report success for 44. ··· 1150 1154 status = pNtQueryInformationProcess( GetCurrentProcess(), ProcessVmCounters, &pvi, 24, &ReturnLength); 1151 1155 ok( status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status); 1152 1156 1157 + #ifndef __REACTOS__ 1153 1158 status = pNtQueryInformationProcess( GetCurrentProcess(), ProcessVmCounters, &pvi, old_size, &ReturnLength); 1154 1159 ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status); 1155 1160 ok( old_size == ReturnLength, "Inconsistent length %d\n", ReturnLength); 1161 + #endif 1156 1162 1157 1163 status = pNtQueryInformationProcess( GetCurrentProcess(), ProcessVmCounters, &pvi, 46, &ReturnLength); 1158 1164 ok( status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status); 1165 + #ifndef __REACTOS__ 1159 1166 ok( ReturnLength == old_size || ReturnLength == sizeof(pvi), "Inconsistent length %d\n", ReturnLength); 1167 + #endif 1160 1168 1161 1169 /* Check if we have some return values */ 1162 1170 dump_vm_counters("VM counters for GetCurrentProcess", &pvi); ··· 1995 2003 module = GetModuleHandleA( "ntdll.dll" ); 1996 2004 memset(msn, 0, sizeof(*msn)); 1997 2005 readcount = 0; 1998 - status = pNtQueryVirtualMemory(NtCurrentProcess(), module, MemorySectionName, msn, sizeof(*msn), &readcount); 2006 + status = pNtQueryVirtualMemory(NtCurrentProcess(), module, MemoryMappedFilenameInformation, msn, sizeof(*msn), &readcount); 1999 2007 ok( status == STATUS_BUFFER_OVERFLOW, "Expected STATUS_BUFFER_OVERFLOW, got %08x\n", status); 2000 2008 ok( readcount > 0, "Expected readcount to be > 0\n"); 2001 2009 ··· 2003 2011 module = GetModuleHandleA( "ntdll.dll" ); 2004 2012 memset(msn, 0, sizeof(*msn)); 2005 2013 readcount = 0; 2006 - status = pNtQueryVirtualMemory(NtCurrentProcess(), module, MemorySectionName, msn, sizeof(*msn) - 1, &readcount); 2014 + status = pNtQueryVirtualMemory(NtCurrentProcess(), module, MemoryMappedFilenameInformation, msn, sizeof(*msn) - 1, &readcount); 2007 2015 ok( status == STATUS_INFO_LENGTH_MISMATCH, "Expected STATUS_INFO_LENGTH_MISMATCH, got %08x\n", status); 2008 2016 ok( readcount > 0, "Expected readcount to be > 0\n"); 2009 2017 ··· 2012 2020 memset(msn, 0x55, sizeof(*msn)); 2013 2021 memset(buffer_name, 0x77, sizeof(buffer_name)); 2014 2022 readcount = 0; 2015 - status = pNtQueryVirtualMemory(NtCurrentProcess(), module, MemorySectionName, msn, sizeof(buffer_name), &readcount); 2023 + status = pNtQueryVirtualMemory(NtCurrentProcess(), module, MemoryMappedFilenameInformation, msn, sizeof(buffer_name), &readcount); 2016 2024 ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status); 2017 2025 ok( readcount > 0, "Expected readcount to be > 0\n"); 2018 2026 trace ("Section Name: %s\n", wine_dbgstr_w(msn->SectionFileName.Buffer)); ··· 2024 2032 trace("Check section name of non mapped memory\n"); 2025 2033 memset(msn, 0, sizeof(buffer_name)); 2026 2034 readcount = 0; 2027 - status = pNtQueryVirtualMemory(NtCurrentProcess(), &buffer_name, MemorySectionName, msn, sizeof(buffer_name), &readcount); 2035 + status = pNtQueryVirtualMemory(NtCurrentProcess(), &buffer_name, MemoryMappedFilenameInformation, msn, sizeof(buffer_name), &readcount); 2028 2036 ok( status == STATUS_INVALID_ADDRESS, "Expected STATUS_INVALID_ADDRESS, got %08x\n", status); 2029 2037 ok( readcount == 0 || broken(readcount != 0) /* wow64 */, "Expected readcount to be 0\n"); 2030 2038
+5 -5
modules/rostests/winetests/ntdll/om.c
··· 1623 1623 ok( status == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got %08x\n", status ); 1624 1624 1625 1625 found = FALSE; 1626 - for (i = 0; i < shi->Count; i++) 1626 + for (i = 0; i < shi->NumberOfHandles; i++) 1627 1627 { 1628 - if (shi->Handle[i].UniqueProcessId != GetCurrentProcessId()) 1628 + if (shi->Handles[i].UniqueProcessId != GetCurrentProcessId()) 1629 1629 continue; 1630 - if ((HANDLE)(ULONG_PTR)shi->Handle[i].HandleValue != handle) 1630 + if ((HANDLE)(ULONG_PTR)shi->Handles[i].HandleValue != handle) 1631 1631 continue; 1632 1632 1633 - ok( shi->Handle[i].ObjectTypeIndex == event_type_index, "Event type does not match: %u vs %u\n", 1634 - shi->Handle[i].ObjectTypeIndex, event_type_index ); 1633 + ok( shi->Handles[i].ObjectTypeIndex == event_type_index, "Event type does not match: %u vs %u\n", 1634 + shi->Handles[i].ObjectTypeIndex, event_type_index ); 1635 1635 1636 1636 found = TRUE; 1637 1637 break;
+19 -19
modules/rostests/winetests/ntdll/rtl.c
··· 935 935 "RtlGetThreadErrorMode returned 0x%x, expected 0x%x\n", mode, 0x70); 936 936 if (!is_wow64) 937 937 { 938 - ok(NtCurrentTeb()->HardErrorDisabled == 0x70, 938 + ok(NtCurrentTeb()->HardErrorMode == 0x70, 939 939 "The TEB contains 0x%x, expected 0x%x\n", 940 - NtCurrentTeb()->HardErrorDisabled, 0x70); 940 + NtCurrentTeb()->HardErrorMode, 0x70); 941 941 } 942 942 943 943 status = pRtlSetThreadErrorMode(0, &mode); ··· 951 951 "RtlGetThreadErrorMode returned 0x%x, expected 0x%x\n", mode, 0); 952 952 if (!is_wow64) 953 953 { 954 - ok(NtCurrentTeb()->HardErrorDisabled == 0, 954 + ok(NtCurrentTeb()->HardErrorMode == 0, 955 955 "The TEB contains 0x%x, expected 0x%x\n", 956 - NtCurrentTeb()->HardErrorDisabled, 0); 956 + NtCurrentTeb()->HardErrorMode, 0); 957 957 } 958 958 959 959 for (mode = 1; mode; mode <<= 1) ··· 3242 3242 int count; 3243 3243 }; 3244 3244 3245 - static void WINAPI ldr_enum_callback(LDR_MODULE *module, void *context, BOOLEAN *stop) 3245 + static void WINAPI ldr_enum_callback(LDR_DATA_TABLE_ENTRY *module, void *context, BOOLEAN *stop) 3246 3246 { 3247 3247 static const WCHAR ntdllW[] = {'n','t','d','l','l','.','d','l','l',0}; 3248 3248 struct ldr_enum_context *ctx = context; ··· 3420 3420 IMAGE_THUNK_DATA *thunk_list; 3421 3421 DWORD *calls = context; 3422 3422 LIST_ENTRY *mark; 3423 - LDR_MODULE *mod; 3423 + LDR_DATA_TABLE_ENTRY *mod; 3424 3424 ULONG size; 3425 3425 int i, j; 3426 3426 ··· 3435 3435 3436 3436 /* expect module to be last module listed in LdrData load order list */ 3437 3437 mark = &NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList; 3438 - mod = CONTAINING_RECORD(mark->Blink, LDR_MODULE, InMemoryOrderModuleList); 3439 - ok(mod->BaseAddress == data->Loaded.DllBase, "Expected base address %p, got %p\n", 3440 - data->Loaded.DllBase, mod->BaseAddress); 3438 + mod = CONTAINING_RECORD(mark->Blink, LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks); 3439 + ok(mod->DllBase == data->Loaded.DllBase, "Expected base address %p, got %p\n", 3440 + data->Loaded.DllBase, mod->DllBase); 3441 3441 ok(!lstrcmpiW(mod->BaseDllName.Buffer, ws2_32dllW), "Expected ws2_32.dll, got %s\n", 3442 3442 wine_dbgstr_w(mod->BaseDllName.Buffer)); 3443 3443 ··· 3487 3487 { 3488 3488 DWORD *calls = context; 3489 3489 LIST_ENTRY *mark; 3490 - LDR_MODULE *mod; 3490 + LDR_DATA_TABLE_ENTRY *mod; 3491 3491 3492 3492 *calls <<= 4; 3493 3493 *calls |= reason; ··· 3496 3496 return; 3497 3497 3498 3498 mark = &NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList; 3499 - mod = CONTAINING_RECORD(mark->Blink, LDR_MODULE, InMemoryOrderModuleList); 3500 - ok(mod->BaseAddress == data->Loaded.DllBase, "Expected base address %p, got %p\n", 3501 - data->Loaded.DllBase, mod->BaseAddress); 3502 - if (mod->BaseAddress != data->Loaded.DllBase) 3499 + mod = CONTAINING_RECORD(mark->Blink, LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks); 3500 + ok(mod->DllBase == data->Loaded.DllBase, "Expected base address %p, got %p\n", 3501 + data->Loaded.DllBase, mod->DllBase); 3502 + if (mod->DllBase != data->Loaded.DllBase) 3503 3503 return; 3504 3504 3505 3505 orig_entry = mod->EntryPoint; ··· 3526 3526 { 3527 3527 DWORD *calls = context; 3528 3528 LIST_ENTRY *mark; 3529 - LDR_MODULE *mod; 3529 + LDR_DATA_TABLE_ENTRY *mod; 3530 3530 3531 3531 *calls <<= 4; 3532 3532 *calls |= reason; ··· 3535 3535 return; 3536 3536 3537 3537 mark = &NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList; 3538 - mod = CONTAINING_RECORD(mark->Blink, LDR_MODULE, InMemoryOrderModuleList); 3539 - ok(mod->BaseAddress == data->Loaded.DllBase, "Expected base address %p, got %p\n", 3540 - data->Loaded.DllBase, mod->BaseAddress); 3541 - if (mod->BaseAddress != data->Loaded.DllBase) 3538 + mod = CONTAINING_RECORD(mark->Blink, LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks); 3539 + ok(mod->DllBase == data->Loaded.DllBase, "Expected base address %p, got %p\n", 3540 + data->Loaded.DllBase, mod->DllBase); 3541 + if (mod->DllBase != data->Loaded.DllBase) 3542 3542 return; 3543 3543 3544 3544 orig_entry = mod->EntryPoint;
+1 -1
modules/rostests/winetests/psapi/psapi_main.c
··· 381 381 buf = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, buf_len); 382 382 383 383 ret_len = 0xdeadbeef; 384 - status = pNtQueryVirtualMemory(process, addr, MemorySectionName, buf, buf_len, &ret_len); 384 + status = pNtQueryVirtualMemory(process, addr, MemoryMappedFilenameInformation, buf, buf_len, &ret_len); 385 385 ok(!status, "NtQueryVirtualMemory error %x\n", status); 386 386 387 387 section_name = (MEMORY_SECTION_NAME *)buf;
-4
modules/rostests/winetests/user32/clipboard.c
··· 26 26 #include "winuser.h" 27 27 #include "winnls.h" 28 28 29 - #ifdef __REACTOS__ 30 - #define WM_CLIPBOARDUPDATE 0x031D 31 - #endif 32 - 33 29 static BOOL (WINAPI *pAddClipboardFormatListener)(HWND hwnd); 34 30 static BOOL (WINAPI *pRemoveClipboardFormatListener)(HWND hwnd); 35 31 static BOOL (WINAPI *pGetUpdatedClipboardFormats)( UINT *formats, UINT count, UINT *out_count );
+11 -11
ntoskrnl/ex/sysinfo.c
··· 2507 2507 DPRINT("NtQuerySystemInformation - SystemExtendedHandleInformation\n"); 2508 2508 2509 2509 /* Set initial required buffer size */ 2510 - *ReqSize = FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handle); 2510 + *ReqSize = FIELD_OFFSET(SYSTEM_HANDLE_INFORMATION_EX, Handles); 2511 2511 2512 2512 /* Check user's buffer size */ 2513 2513 if (Size < *ReqSize) ··· 2529 2529 } 2530 2530 2531 2531 /* Reset of count of handles */ 2532 - HandleInformation->Count = 0; 2532 + HandleInformation->NumberOfHandles = 0; 2533 2533 2534 2534 /* Enter a critical region */ 2535 2535 KeEnterCriticalRegion(); ··· 2554 2554 (HandleTableEntry->NextFreeTableEntry != -2)) 2555 2555 { 2556 2556 /* Increase of count of handles */ 2557 - ++HandleInformation->Count; 2557 + ++HandleInformation->NumberOfHandles; 2558 2558 2559 2559 /* Lock the entry */ 2560 2560 if (ExpLockHandleTableEntry(HandleTable, HandleTableEntry)) ··· 2572 2572 POBJECT_HEADER ObjectHeader = ObpGetHandleObject(HandleTableEntry); 2573 2573 2574 2574 /* Filling handle information */ 2575 - HandleInformation->Handle[Index].UniqueProcessId = 2575 + HandleInformation->Handles[Index].UniqueProcessId = 2576 2576 (USHORT)(ULONG_PTR) HandleTable->UniqueProcessId; 2577 2577 2578 - HandleInformation->Handle[Index].CreatorBackTraceIndex = 0; 2578 + HandleInformation->Handles[Index].CreatorBackTraceIndex = 0; 2579 2579 2580 2580 #if 0 /* FIXME!!! Type field corrupted */ 2581 2581 HandleInformation->Handles[Index].ObjectTypeIndex = 2582 2582 (UCHAR) ObjectHeader->Type->Index; 2583 2583 #else 2584 - HandleInformation->Handle[Index].ObjectTypeIndex = 0; 2584 + HandleInformation->Handles[Index].ObjectTypeIndex = 0; 2585 2585 #endif 2586 2586 2587 - HandleInformation->Handle[Index].HandleAttributes = 2587 + HandleInformation->Handles[Index].HandleAttributes = 2588 2588 HandleTableEntry->ObAttributes & OBJ_HANDLE_ATTRIBUTES; 2589 2589 2590 - HandleInformation->Handle[Index].HandleValue = 2590 + HandleInformation->Handles[Index].HandleValue = 2591 2591 (USHORT)(ULONG_PTR) Handle.GenericHandleOverlay; 2592 2592 2593 - HandleInformation->Handle[Index].Object = &ObjectHeader->Body; 2593 + HandleInformation->Handles[Index].Object = &ObjectHeader->Body; 2594 2594 2595 - HandleInformation->Handle[Index].GrantedAccess = 2595 + HandleInformation->Handles[Index].GrantedAccess = 2596 2596 HandleTableEntry->GrantedAccess; 2597 2597 2598 - HandleInformation->Handle[Index].Reserved = 0; 2598 + HandleInformation->Handles[Index].Reserved = 0; 2599 2599 2600 2600 ++Index; 2601 2601 }
+2 -2
sdk/include/ndk/extypes.h
··· 1603 1603 1604 1604 typedef struct _SYSTEM_HANDLE_INFORMATION_EX 1605 1605 { 1606 - ULONG_PTR Count; 1606 + ULONG_PTR NumberOfHandles; 1607 1607 ULONG_PTR Reserved; 1608 - SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX Handle[1]; 1608 + SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX Handles[1]; 1609 1609 } SYSTEM_HANDLE_INFORMATION_EX, *PSYSTEM_HANDLE_INFORMATION_EX; 1610 1610 1611 1611 // FIXME: Class 65-89
+18
sdk/include/psdk/processthreadsapi.h
··· 17 17 SetThreadStackGuarantee( 18 18 _Inout_ PULONG StackSizeInBytes); 19 19 20 + #if (_WIN32_WINNT >= 0x602) || defined(__REACTOS__) 21 + FORCEINLINE 22 + HANDLE 23 + GetCurrentProcessToken( 24 + VOID) 25 + { 26 + return (HANDLE)(LONG_PTR)-4; 27 + } 28 + 29 + FORCEINLINE 30 + HANDLE 31 + GetCurrentThreadToken( 32 + VOID) 33 + { 34 + return (HANDLE)(LONG_PTR)-5; 35 + } 36 + 20 37 FORCEINLINE 21 38 HANDLE 22 39 GetCurrentThreadEffectiveToken( ··· 24 41 { 25 42 return (HANDLE)(LONG_PTR)-6; 26 43 } 44 + #endif // (_WIN32_WINNT >= 0x602) || defined(__REACTOS__) 27 45 28 46 #ifdef __cplusplus 29 47 } // extern "C"
+64
sdk/include/psdk/shellscalingapi.h
··· 1 + /* 2 + * PROJECT: ReactOS SDK 3 + * LICENSE: MIT (https://spdx.org/licenses/MIT) 4 + * PURPOSE: API definitions for api-ms-win-shcore-scaling-l1-1-1.dll 5 + * COPYRIGHT: Copyright 2025 Carl Bialorucki (carl.bialorucki@reactos.org) 6 + */ 7 + 8 + #pragma once 9 + 10 + #include <shtypes.h> 11 + 12 + typedef enum 13 + { 14 + MDT_EFFECTIVE_DPI, 15 + MDT_ANGULAR_DPI, 16 + MDT_RAW_DPI, 17 + MDT_DEFAULT = MDT_EFFECTIVE_DPI 18 + } MONITOR_DPI_TYPE; 19 + 20 + typedef enum 21 + { 22 + PROCESS_DPI_UNAWARE, 23 + PROCESS_SYSTEM_DPI_AWARE, 24 + PROCESS_PER_MONITOR_DPI_AWARE 25 + } PROCESS_DPI_AWARENESS; 26 + 27 + typedef enum 28 + { 29 + DEVICE_PRIMARY, 30 + DEVICE_IMMERSIVE, 31 + } DISPLAY_DEVICE_TYPE; 32 + 33 + typedef enum 34 + { 35 + SCF_VALUE_NONE, 36 + SCF_SCALE, 37 + SCF_PHYSICAL, 38 + } SCALE_CHANGE_FLAGS; 39 + 40 + #if (NTDDI_VERSION >= NTDDI_WIN8) 41 + DEVICE_SCALE_FACTOR WINAPI GetScaleFactorForDevice(_In_ DISPLAY_DEVICE_TYPE deviceType); 42 + HRESULT WINAPI RegisterScaleChangeNotifications(_In_ DISPLAY_DEVICE_TYPE displayDevice, _In_ HWND hwndNotify, _In_ UINT uMsgNotify, _Out_ DWORD *pdwCookie); 43 + HRESULT WINAPI RevokeScaleChangeNotifications(_In_ DISPLAY_DEVICE_TYPE displayDevice, _In_ DWORD dwCookie); 44 + #endif // (NTDDI_VERSION >= NTDDI_WIN8) 45 + 46 + #if (NTDDI_VERSION >= NTDDI_WINBLUE) 47 + HRESULT WINAPI GetScaleFactorForMonitor(_In_ HMONITOR hMon, _Out_ DEVICE_SCALE_FACTOR *pScale); 48 + HRESULT WINAPI RegisterScaleChangeEvent(_In_ HANDLE hEvent, _Out_ DWORD_PTR *pdwCookie); 49 + HRESULT WINAPI UnregisterScaleChangeEvent(_In_ DWORD_PTR dwCookie); 50 + HRESULT WINAPI SetProcessDpiAwareness(_In_ PROCESS_DPI_AWARENESS value); 51 + HRESULT WINAPI GetProcessDpiAwareness(_In_opt_ HANDLE hprocess, _Out_ PROCESS_DPI_AWARENESS *value); 52 + HRESULT WINAPI GetDpiForMonitor(_In_ HMONITOR hmonitor, _In_ MONITOR_DPI_TYPE dpiType, _Out_ UINT *dpiX, _Out_ UINT *dpiY); 53 + #endif // (NTDDI_VERSION >= NTDDI_WINBLUE) 54 + 55 + #if (NTDDI_VERSION >= NTDDI_WIN10) 56 + typedef enum 57 + { 58 + SHELL_UI_COMPONENT_TASKBARS, 59 + SHELL_UI_COMPONENT_NOTIFICATIONAREA, 60 + SHELL_UI_COMPONENT_DESKBAND, 61 + } SHELL_UI_COMPONENT; 62 + 63 + UINT WINAPI GetDpiForShellUIComponent(_In_ SHELL_UI_COMPONENT); 64 + #endif // (NTDDI_VERSION >= NTDDI_WIN10)
+21
sdk/include/psdk/shtypes.idl
··· 189 189 cpp_quote("#define PERCEIVEDFLAG_GDIPLUS 0x0010") 190 190 cpp_quote("#define PERCEIVEDFLAG_WMSDK 0x0020") 191 191 cpp_quote("#define PERCEIVEDFLAG_ZIPFOLDER 0x0040") 192 + 193 + typedef [v1_enum] enum DEVICE_SCALE_FACTOR 194 + { 195 + DEVICE_SCALE_FACTOR_INVALID = 0, 196 + SCALE_100_PERCENT = 100, 197 + SCALE_120_PERCENT = 120, 198 + SCALE_125_PERCENT = 125, 199 + SCALE_140_PERCENT = 140, 200 + SCALE_150_PERCENT = 150, 201 + SCALE_160_PERCENT = 160, 202 + SCALE_175_PERCENT = 175, 203 + SCALE_180_PERCENT = 180, 204 + SCALE_200_PERCENT = 200, 205 + SCALE_225_PERCENT = 225, 206 + SCALE_250_PERCENT = 250, 207 + SCALE_300_PERCENT = 300, 208 + SCALE_350_PERCENT = 350, 209 + SCALE_400_PERCENT = 400, 210 + SCALE_450_PERCENT = 450, 211 + SCALE_500_PERCENT = 500 212 + } DEVICE_SCALE_FACTOR;
+1074 -175
sdk/include/psdk/wincrypt.h
··· 21 21 #ifndef __WINE_WINCRYPT_H 22 22 #define __WINE_WINCRYPT_H 23 23 24 + #ifdef __REACTOS__ 24 25 #include <specstrings.h> 26 + #endif 25 27 26 28 #ifdef __cplusplus 27 29 extern "C" { 28 30 #endif 29 31 30 - #ifdef _MSC_VER 31 - #pragma warning(push) 32 - #pragma warning(disable:4201) 32 + #include <bcrypt.h> 33 + #ifndef __REACTOS__ 34 + #include <ncrypt.h> 33 35 #endif 34 36 35 - #include <bcrypt.h> 36 - /* FIXME: #include <ncrypt.h> */ 37 - 37 + #ifndef WINADVAPI 38 38 #ifdef _ADVAPI32_ 39 39 # define WINADVAPI 40 40 #else 41 41 # define WINADVAPI DECLSPEC_IMPORT 42 + #endif 43 + #endif 44 + 45 + #ifndef WINCRYPT32API 46 + #ifdef _CRYPT32_ 47 + # define WINCRYPT32API 48 + #else 49 + # define WINCRYPT32API DECLSPEC_IMPORT 50 + #endif 42 51 #endif 43 52 44 53 /* some typedefs for function parameters */ ··· 97 106 BYTE* pbOuterString; 98 107 DWORD cbOuterString; 99 108 } HMAC_INFO, *PHMAC_INFO; 100 - 109 + 101 110 typedef struct _CRYPTOAPI_BLOB { 102 111 DWORD cbData; 103 112 BYTE* pbData; ··· 538 547 #define GET_CRL_DIST_POINT_ERR_INDEX(x) \ 539 548 (((x) >> CRL_DIST_POINT_ERR_INDEX_SHIFT) & CRL_DIST_POINT_ERR_INDEX_MASK) 540 549 550 + #ifdef __REACTOS__ 541 551 #define CRL_DIST_POINT_ERR_CRL_ISSUER_BIT 0x80000000L 552 + #else 553 + #define CRL_DIST_POINT_ERR_CRL_ISSUER_BIT __MSABI_LONG(0x80000000) 554 + #endif 542 555 #define IS_CRL_DIST_POINT_ERR_CRL_ISSUER(x) \ 543 556 ((x) & CRL_DIST_POINT_ERR_CRL_ISSUER_BIT) 544 557 ··· 581 594 PCERT_GENERAL_SUBTREE rgExcludedSubtree; 582 595 } CERT_NAME_CONSTRAINTS_INFO, *PCERT_NAME_CONSTRAINTS_INFO; 583 596 597 + #ifdef __REACTOS__ 584 598 #define CERT_EXCLUDED_SUBTREE_BIT 0x80000000L 599 + #else 600 + #define CERT_EXCLUDED_SUBTREE_BIT __MSABI_LONG(0x80000000) 601 + #endif 585 602 #define IS_CERT_EXCLUDED_SUBTREE(x) ((x) & CERT_EXCLUDED_SUBTREE_BIT) 586 603 587 604 typedef struct _CRYPT_ATTRIBUTE { ··· 615 632 CRYPT_BIT_BLOB Signature; 616 633 } CERT_SIGNED_CONTENT_INFO, *PCERT_SIGNED_CONTENT_INFO; 617 634 635 + typedef struct _OCSP_SIGNATURE_INFO { 636 + CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; 637 + CRYPT_BIT_BLOB Signature; 638 + DWORD cCertEncoded; 639 + PCERT_BLOB rgCertEncoded; 640 + } OCSP_SIGNATURE_INFO, *POCSP_SIGNATURE_INFO; 641 + 642 + typedef struct _OCSP_SIGNED_REQUEST_INFO { 643 + CRYPT_DER_BLOB ToBeSigned; 644 + POCSP_SIGNATURE_INFO pOptionalSignatureInfo; 645 + } OCSP_SIGNED_REQUEST_INFO, *POCSP_SIGNED_REQUEST_INFO; 646 + 647 + typedef struct _OCSP_CERT_ID { 648 + CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; 649 + CRYPT_HASH_BLOB IssuerNameHash; 650 + CRYPT_HASH_BLOB IssuerKeyHash; 651 + CRYPT_INTEGER_BLOB SerialNumber; 652 + } OCSP_CERT_ID, *POCSP_CERT_ID; 653 + 654 + typedef struct _OCSP_REQUEST_ENTRY { 655 + OCSP_CERT_ID CertId; 656 + DWORD cExtension; 657 + PCERT_EXTENSION rgExtension; 658 + } OCSP_REQUEST_ENTRY, *POCSP_REQUEST_ENTRY; 659 + 660 + #define OCSP_REQUEST_V1 0 661 + 662 + typedef struct _OCSP_REQUEST_INFO { 663 + DWORD dwVersion; 664 + PCERT_ALT_NAME_ENTRY pRequestorName; 665 + DWORD cRequestEntry; 666 + POCSP_REQUEST_ENTRY rgRequestEntry; 667 + DWORD cExtension; 668 + PCERT_EXTENSION rgExtension; 669 + } OCSP_REQUEST_INFO, *POCSP_REQUEST_INFO; 670 + 671 + #define OCSP_SUCCESSFUL_RESPONSE 0 672 + #define OCSP_MALFORMED_REQUEST_RESPONSE 1 673 + #define OCSP_INTERNAL_ERROR_RESPONSE 2 674 + #define OCSP_TRY_LATER_RESPONSE 3 675 + #define OCSP_SIG_REQUIRED_RESPONSE 5 676 + #define OCSP_UNAUTHORIZED_RESPONSE 6 677 + 678 + #define szOID_PKIX_OCSP_BASIC_SIGNED_RESPONSE "1.3.6.1.5.5.7.48.1.1" 679 + 680 + typedef struct _OCSP_RESPONSE_INFO { 681 + DWORD dwStatus; 682 + LPSTR pszObjId; 683 + CRYPT_OBJID_BLOB Value; 684 + } OCSP_RESPONSE_INFO, *POCSP_RESPONSE_INFO; 685 + 686 + typedef struct _OCSP_BASIC_SIGNED_RESPONSE_INFO { 687 + CRYPT_DER_BLOB ToBeSigned; 688 + OCSP_SIGNATURE_INFO SignatureInfo; 689 + } OCSP_BASIC_SIGNED_RESPONSE_INFO, *POCSP_BASIC_SIGNED_RESPONSE_INFO; 690 + 691 + typedef struct _OCSP_BASIC_REVOKED_INFO { 692 + FILETIME RevocationDate; 693 + DWORD dwCrlReasonCode; 694 + } OCSP_BASIC_REVOKED_INFO, *POCSP_BASIC_REVOKED_INFO; 695 + 696 + #define OCSP_BASIC_GOOD_CERT_STATUS 0 697 + #define OCSP_BASIC_REVOKED_CERT_STATUS 1 698 + #define OCSP_BASIC_UNKNOWN_CERT_STATUS 2 699 + 700 + typedef struct _OCSP_BASIC_RESPONSE_ENTRY { 701 + OCSP_CERT_ID CertId; 702 + DWORD dwCertStatus; 703 + union { 704 + POCSP_BASIC_REVOKED_INFO pRevokedInfo; 705 + } DUMMYUNIONNAME; 706 + FILETIME ThisUpdate; 707 + FILETIME NextUpdate; 708 + DWORD cExtension; 709 + PCERT_EXTENSION rgExtension; 710 + } OCSP_BASIC_RESPONSE_ENTRY, *POCSP_BASIC_RESPONSE_ENTRY; 711 + 712 + #define OCSP_BASIC_RESPONSE_V1 0 713 + #define OCSP_BASIC_BY_NAME_RESPONDER_ID 1 714 + #define OCSP_BASIC_BY_KEY_RESPONDER_ID 2 715 + 716 + typedef struct _OCSP_BASIC_RESPONSE_INFO { 717 + DWORD dwVersion; 718 + DWORD dwResponderIdChoice; 719 + union { 720 + CERT_NAME_BLOB ByNameResponderId; 721 + CRYPT_HASH_BLOB ByKeyResponderId; 722 + } DUMMYUNIONNAME; 723 + FILETIME ProducedAt; 724 + DWORD cResponseEntry; 725 + POCSP_BASIC_RESPONSE_ENTRY rgResponseEntry; 726 + DWORD cExtension; 727 + PCERT_EXTENSION rgExtension; 728 + } OCSP_BASIC_RESPONSE_INFO, *POCSP_BASIC_RESPONSE_INFO; 729 + 618 730 typedef struct _CRL_CONTEXT { 619 731 DWORD dwCertEncodingType; 620 732 BYTE *pbCrlEncoded; ··· 695 807 696 808 typedef struct _VTableProvStruc { 697 809 DWORD Version; 698 - #ifdef WINE_STRICT_PROTOTYPES 810 + #ifndef WINE_NO_STRICT_PROTOTYPES 699 811 BOOL (WINAPI *FuncVerifyImage)(LPCSTR,BYTE*); 700 812 void (WINAPI *FuncReturnhWnd)(HWND*); 701 813 #else ··· 998 1110 #define CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG 0x00004000 999 1111 #define CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG 0x00008000 1000 1112 #define MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG 0x00010000 1113 + #define MICROSOFT_ROOT_CERT_CHAIN_POLICY_CHECK_APPLICATION_ROOT_FLAG 0x00020000 1001 1114 1002 1115 typedef struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA { 1003 1116 DWORD cbSize; ··· 1103 1216 } DUMMYUNIONNAME2; 1104 1217 } CERT_SYSTEM_STORE_RELOCATE_PARA, *PCERT_SYSTEM_STORE_RELOCATE_PARA; 1105 1218 1219 + #ifdef __REACTOS__ 1106 1220 typedef BOOL 1107 1221 (WINAPI *PFN_CERT_ENUM_SYSTEM_STORE_LOCATION)( 1108 1222 _In_ LPCWSTR pwszStoreLocation, ··· 1126 1240 _In_ PCERT_PHYSICAL_STORE_INFO pStoreInfo, 1127 1241 _Reserved_ void *pvReserved, 1128 1242 _Inout_opt_ void *pvArg); 1243 + #else 1244 + typedef BOOL (WINAPI *PFN_CERT_ENUM_SYSTEM_STORE_LOCATION)( 1245 + LPCWSTR pwszStoreLocation, DWORD dwFlags, void *pvReserved, void *pvArg); 1246 + 1247 + typedef BOOL (WINAPI *PFN_CERT_ENUM_SYSTEM_STORE)(const void *pvSystemStore, 1248 + DWORD dwFlags, PCERT_SYSTEM_STORE_INFO pStoreInfo, void *pvReserved, 1249 + void *pvArg); 1250 + 1251 + typedef BOOL (WINAPI *PFN_CERT_ENUM_PHYSICAL_STORE)(const void *pvSystemStore, 1252 + DWORD dwFlags, LPCWSTR pwszStoreName, PCERT_PHYSICAL_STORE_INFO pStoreInfo, 1253 + void *pvReserved, void *pvArg); 1254 + #endif // __REACTOS 1129 1255 1130 1256 /* Encode/decode object */ 1131 - typedef LPVOID (__WINE_ALLOC_SIZE(1) WINAPI *PFN_CRYPT_ALLOC)(_In_ size_t cbsize); 1132 - typedef VOID(WINAPI *PFN_CRYPT_FREE)(_In_ LPVOID pv); 1257 + typedef LPVOID (__WINE_ALLOC_SIZE(1) WINAPI *PFN_CRYPT_ALLOC)(size_t cbsize); 1258 + typedef VOID (WINAPI *PFN_CRYPT_FREE)(LPVOID pv); 1133 1259 1134 1260 typedef struct _CRYPT_ENCODE_PARA { 1135 1261 DWORD cbSize; ··· 1152 1278 HCRYPTOIDFUNCADDR hStoreProvFuncAddr2; 1153 1279 } CERT_STORE_PROV_INFO, *PCERT_STORE_PROV_INFO; 1154 1280 1281 + #ifdef __REACTOS__ 1155 1282 typedef BOOL 1156 1283 (WINAPI *PFN_CERT_DLL_OPEN_STORE_PROV_FUNC)( 1157 1284 _In_ LPCSTR lpszStoreProvider, ··· 1260 1387 _In_ DWORD dwFlags, 1261 1388 _In_ DWORD dwCtrlType, 1262 1389 _In_opt_ void const *pvCtrlPara); 1390 + #else 1391 + typedef BOOL (WINAPI *PFN_CERT_DLL_OPEN_STORE_PROV_FUNC)( 1392 + LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV_LEGACY hCryptProv, 1393 + DWORD dwFlags, const void *pvPara, HCERTSTORE hCertStore, 1394 + PCERT_STORE_PROV_INFO pStoreProvInfo); 1395 + 1396 + typedef void (WINAPI *PFN_CERT_STORE_PROV_CLOSE)(HCERTSTOREPROV hStoreProv, 1397 + DWORD dwFlags); 1398 + 1399 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_READ_CERT)(HCERTSTOREPROV hStoreProv, 1400 + PCCERT_CONTEXT pStoreCertContext, DWORD dwFlags, 1401 + PCCERT_CONTEXT *ppProvCertContext); 1402 + 1403 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_WRITE_CERT)(HCERTSTOREPROV hStoreProv, 1404 + PCCERT_CONTEXT pCertContext, DWORD dwFlags); 1405 + 1406 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_DELETE_CERT)( 1407 + HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwFlags); 1408 + 1409 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_SET_CERT_PROPERTY)( 1410 + HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwPropId, 1411 + DWORD dwFlags, const void *pvData); 1412 + 1413 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_READ_CRL)(HCERTSTOREPROV hStoreProv, 1414 + PCCRL_CONTEXT pStoreCrlContext, DWORD dwFlags, 1415 + PCCRL_CONTEXT *ppProvCrlContext); 1416 + 1417 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_WRITE_CRL)(HCERTSTOREPROV hStoreProv, 1418 + PCCRL_CONTEXT pCrlContext, DWORD dwFlags); 1419 + 1420 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_DELETE_CRL)(HCERTSTOREPROV hStoreProv, 1421 + PCCRL_CONTEXT pCrlContext, DWORD dwFlags); 1422 + 1423 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_SET_CRL_PROPERTY)( 1424 + HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwPropId, 1425 + DWORD dwFlags, const void *pvData); 1426 + 1427 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_READ_CTL)(HCERTSTOREPROV hStoreProv, 1428 + PCCTL_CONTEXT pStoreCtlContext, DWORD dwFlags, 1429 + PCCTL_CONTEXT *ppProvCtlContext); 1430 + 1431 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_WRITE_CTL)(HCERTSTOREPROV hStoreProv, 1432 + PCCTL_CONTEXT pCtlContext, DWORD dwFlags); 1433 + 1434 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_DELETE_CTL)( 1435 + HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwFlags); 1436 + 1437 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_SET_CTL_PROPERTY)( 1438 + HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwPropId, 1439 + DWORD dwFlags, const void *pvData); 1440 + 1441 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_CONTROL)(HCERTSTOREPROV hStoreProv, 1442 + DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara); 1443 + #endif 1263 1444 1264 1445 typedef struct _CERT_STORE_PROV_FIND_INFO { 1265 1446 DWORD cbSize; ··· 1271 1452 typedef const CERT_STORE_PROV_FIND_INFO CCERT_STORE_PROV_FIND_INFO, 1272 1453 *PCCERT_STORE_PROV_FIND_INFO; 1273 1454 1455 + #ifdef __REACTOS__ 1274 1456 typedef 1275 1457 _Success_(return != 0) 1276 1458 BOOL ··· 1344 1526 _In_ DWORD dwFlags, 1345 1527 _Out_writes_bytes_to_opt_(*pcbData, *pcbData) void *pvData, 1346 1528 _Inout_ DWORD *pcbData); 1529 + #else 1530 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_FIND_CERT)(HCERTSTOREPROV hStoreProv, 1531 + PCCERT_STORE_PROV_FIND_INFO pFindInfo, PCCERT_CONTEXT pPrevCertContext, 1532 + DWORD dwFlags, void **ppvStoreProvFindInfo, PCCERT_CONTEXT *ppProvCertContext); 1533 + 1534 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_FREE_FIND_CERT)( 1535 + HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, 1536 + void *pvStoreProvFindInfo, DWORD dwFlags); 1537 + 1538 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_GET_CERT_PROPERTY)( 1539 + HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwPropId, 1540 + DWORD dwFlags, void *pvData, DWORD *pcbData); 1541 + 1542 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_FIND_CRL)(HCERTSTOREPROV hStoreProv, 1543 + PCCERT_STORE_PROV_FIND_INFO pFindInfo, PCCRL_CONTEXT pPrevCrlContext, 1544 + DWORD dwFlags, void **ppvStoreProvFindInfo, PCCRL_CONTEXT *ppProvCrlContext); 1545 + 1546 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_FREE_FIND_CRL)( 1547 + HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, 1548 + void *pvStoreProvFindInfo, DWORD dwFlags); 1549 + 1550 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_GET_CRL_PROPERTY)( 1551 + HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwPropId, 1552 + DWORD dwFlags, void *pvData, DWORD *pcbData); 1553 + 1554 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_FIND_CTL)(HCERTSTOREPROV hStoreProv, 1555 + PCCTL_CONTEXT pCtlContext, void *pvStoreProvFindInfo, DWORD dwFlags); 1556 + 1557 + typedef BOOL (WINAPI *PFN_CERT_STORE_PROV_GET_CTL_PROPERTY)( 1558 + HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwPropId, 1559 + DWORD dwFlags, void *pvData); 1560 + #endif 1347 1561 1348 1562 typedef struct _CERT_CREATE_CONTEXT_PARA { 1349 1563 DWORD cbSize; ··· 1356 1570 void *pvFuncAddr; 1357 1571 } CRYPT_OID_FUNC_ENTRY, *PCRYPT_OID_FUNC_ENTRY; 1358 1572 1573 + #ifdef __REACTOS__ 1359 1574 typedef BOOL 1360 1575 (WINAPI *PFN_CRYPT_ENUM_OID_FUNC)( 1361 1576 _In_ DWORD dwEncodingType, ··· 1368 1583 _In_reads_(cValue) const DWORD rgcbValueData[], 1369 1584 _Inout_opt_ void *pvArg); 1370 1585 1586 + #else 1587 + typedef BOOL (WINAPI *PFN_CRYPT_ENUM_OID_FUNC)(DWORD dwEncodingType, 1588 + LPCSTR pszFuncName, LPCSTR pszOID, DWORD cValue, const DWORD rgdwValueType[], 1589 + LPCWSTR const rgpwszValueName[], const BYTE * const rgpbValueData[], 1590 + const DWORD rgcbValueData[], void *pvArg); 1591 + #endif 1592 + 1371 1593 #define CRYPT_MATCH_ANY_ENCODING_TYPE 0xffffffff 1372 1594 1373 1595 #define CALG_OID_INFO_CNG_ONLY 0xffffffff 1374 1596 #define CALG_OID_INFO_PARAMETERS 0xfffffffe 1375 1597 1376 - #if defined(__GNUC__) 1377 - #define CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','H','a','s','h','P','a','r','a','m','e','t','e','r','s',0} 1378 - #define CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','P','a','r','a','m','e','t','e','r','s',0} 1379 - #define CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','M','g','f','1','P','a','r','a','m','e','t','e','r','s',0} 1380 - #define CRYPT_OID_INFO_NO_SIGN_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','N','o','S','i','g','n',0} 1381 - #define CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','O','A','E','P','P','a','r','a','m','e','t','e','r','s',0} 1382 - #define CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','W','r','a','p','P','a','r','a','m','e','t','e','r','s',0} 1383 - #define CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','N','o','P','a','r','a','m','e','t','e','r','s',0} 1384 - #elif defined(_MSC_VER) 1598 + #if defined(_MSC_VER) || defined(__MINGW32__) 1385 1599 #define CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM L"CryptOIDInfoHashParameters" 1386 1600 #define CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM L"CryptOIDInfoECCParameters" 1387 1601 #define CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM L"CryptOIDInfoMgf1Parameters" ··· 1390 1604 #define CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM L"CryptOIDInfoECCWrapParameters" 1391 1605 #define CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM L"CryptOIDInfoNoParameters" 1392 1606 #else 1393 - static const WCHAR CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','H','a','s','h','P','a','r','a','m','e','t','e','r','s',0}; 1394 - static const WCHAR CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','P','a','r','a','m','e','t','e','r','s',0}; 1395 - static const WCHAR CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','M','g','f','1','P','a','r','a','m','e','t','e','r','s',0}; 1396 - static const WCHAR CRYPT_OID_INFO_NO_SIGN_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','N','o','S','i','g','n',0}; 1397 - static const WCHAR CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','O','A','E','P','P','a','r','a','m','e','t','e','r','s',0}; 1607 + static const WCHAR CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','H','a','s','h','P','a','r','a','m','e','t','e','r','s',0}; 1608 + static const WCHAR CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','P','a','r','a','m','e','t','e','r','s',0}; 1609 + static const WCHAR CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','M','g','f','1','P','a','r','a','m','e','t','e','r','s',0}; 1610 + static const WCHAR CRYPT_OID_INFO_NO_SIGN_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','N','o','S','i','g','n',0}; 1611 + static const WCHAR CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','O','A','E','P','P','a','r','a','m','e','t','e','r','s',0}; 1398 1612 static const WCHAR CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','W','r','a','p','P','a','r','a','m','e','t','e','r','s',0}; 1399 - static const WCHAR CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','N','o','P','a','r','a','m','e','t','e','r','s',0}; 1613 + static const WCHAR CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','N','o','P','a','r','a','m','e','t','e','r','s',0}; 1400 1614 #endif 1401 1615 1402 1616 typedef struct _CRYPT_OID_INFO { ··· 1417 1631 } CRYPT_OID_INFO, *PCRYPT_OID_INFO; 1418 1632 typedef const CRYPT_OID_INFO CCRYPT_OID_INFO, *PCCRYPT_OID_INFO; 1419 1633 1634 + #ifdef __REACTOS__ 1420 1635 typedef BOOL 1421 1636 (WINAPI *PFN_CRYPT_ENUM_OID_INFO)( 1422 1637 _In_ PCCRYPT_OID_INFO pInfo, 1423 1638 _Inout_opt_ void *pvArg); 1639 + #else 1640 + typedef BOOL (WINAPI *PFN_CRYPT_ENUM_OID_INFO)(PCCRYPT_OID_INFO pInfo, 1641 + void *pvArg); 1642 + #endif 1424 1643 1425 1644 typedef struct _CRYPT_SIGN_MESSAGE_PARA { 1426 1645 DWORD cbSize; ··· 1449 1668 #define CRYPT_MESSAGE_KEYID_SIGNER_FLAG 0x00000004 1450 1669 #define CRYPT_MESSAGE_SILENT_KEYSET_FLAG 0x00000008 1451 1670 1671 + #ifdef __REACTOS__ 1452 1672 typedef PCCERT_CONTEXT 1453 1673 (WINAPI *PFN_CRYPT_GET_SIGNER_CERTIFICATE)( 1454 1674 _Inout_opt_ void *pvGetArg, 1455 1675 _In_ DWORD dwCertEncodingType, 1456 1676 _In_ PCERT_INFO pSignerId, 1457 1677 _In_ HCERTSTORE hMsgCertStore); 1678 + #else 1679 + typedef PCCERT_CONTEXT (WINAPI *PFN_CRYPT_GET_SIGNER_CERTIFICATE)(void *pvArg, 1680 + DWORD dwCertEncodingType, PCERT_INFO pSignerId, HCERTSTORE hMsgCertStore); 1681 + #endif 1458 1682 1459 1683 typedef struct _CRYPT_VERIFY_MESSAGE_PARA { 1460 1684 DWORD cbSize; ··· 1538 1762 1539 1763 typedef HANDLE HCRYPTASYNC, *PHCRYPTASYNC; 1540 1764 1765 + #ifdef __REACTOS__ 1541 1766 typedef void 1542 1767 (WINAPI *PFN_CRYPT_ASYNC_PARAM_FREE_FUNC)( 1543 1768 _In_ LPSTR pszParamOid, 1544 1769 _In_ LPVOID pvParam); 1770 + #else 1771 + typedef void (WINAPI *PFN_CRYPT_ASYNC_PARAM_FREE_FUNC)(LPSTR pszParamOid, 1772 + LPVOID pvParam); 1773 + #endif 1545 1774 1546 1775 #define CRYPT_PARAM_ASYNC_RETRIEVAL_COMPLETION ((LPCSTR)1) 1547 1776 #define CRYPT_PARAM_CANCEL_ASYNC_RETRIEVAL ((LPCSTR)2) 1548 1777 1778 + #ifdef __REACTOS__ 1549 1779 typedef void 1550 1780 (WINAPI *PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC)( 1551 1781 _Inout_opt_ void *pvCompletion, ··· 1562 1792 typedef BOOL 1563 1793 (WINAPI *PFN_CANCEL_ASYNC_RETRIEVAL_FUNC)( 1564 1794 _In_opt_ HCRYPTASYNC hAsyncRetrieve); 1795 + #else 1796 + typedef void (WINAPI *PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC)( 1797 + void *pvCompletion, DWORD dwCompletionCode, LPCSTR pszURL, LPSTR pszObjectOid, 1798 + void *pvObject); 1799 + 1800 + typedef struct _CRYPT_ASYNC_RETRIEVAL_COMPLETION 1801 + { 1802 + PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC pfnCompletion; 1803 + void *pvCompletion; 1804 + } CRYPT_ASYNC_RETRIEVAL_COMPLETION, *PCRYPT_ASYNC_RETRIEVAL_COMPLETION; 1805 + 1806 + typedef BOOL (WINAPI *PFN_CANCEL_ASYNC_RETRIEVAL_FUNC)( 1807 + HCRYPTASYNC hAsyncRetrieve); 1808 + #endif 1565 1809 1566 1810 typedef struct _CRYPT_BLOB_ARRAY 1567 1811 { ··· 1600 1844 DWORD dwMaxUrlRetrievalByteCount; 1601 1845 } CRYPT_RETRIEVE_AUX_INFO, *PCRYPT_RETRIEVE_AUX_INFO; 1602 1846 1847 + #ifdef __REACTOS__ 1603 1848 typedef void 1604 1849 (WINAPI *PFN_FREE_ENCODED_OBJECT_FUNC)( 1605 1850 _In_opt_ LPCSTR pszObjectOid, 1606 1851 _Inout_ PCRYPT_BLOB_ARRAY pObject, 1607 1852 _Inout_opt_ void *pvFreeContext); 1853 + #else 1854 + typedef void (WINAPI *PFN_FREE_ENCODED_OBJECT_FUNC)(LPCSTR pszObjectOid, 1855 + PCRYPT_BLOB_ARRAY pObject, void *pvFreeContext); 1856 + #endif 1608 1857 1609 1858 #define SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC \ 1610 1859 "SchemeDllRetrieveEncodedObject" ··· 1652 1901 #define CRYPT_CHECK_FRESHNESS_TIME_VALIDITY 0x00000400 1653 1902 #define CRYPT_ACCUMULATIVE_TIMEOUT 0x00000800 1654 1903 1904 + #ifdef __REACTOS__ 1655 1905 typedef BOOL 1656 1906 (WINAPI *PFN_CRYPT_CANCEL_RETRIEVAL)( 1657 1907 _In_ DWORD dwFlags, 1658 1908 _Inout_opt_ void *pvArg); 1909 + #else 1910 + typedef BOOL (WINAPI *PFN_CRYPT_CANCEL_RETRIEVAL)(DWORD dwFlags, void *pvArg); 1911 + #endif 1659 1912 1660 1913 typedef struct _CERT_CRL_CONTEXT_PAIR 1661 1914 { ··· 1726 1979 #define ALG_TYPE_STREAM (4 << 9) 1727 1980 #define ALG_TYPE_DH (5 << 9) 1728 1981 #define ALG_TYPE_SECURECHANNEL (6 << 9) 1729 - #define ALG_TYPE_DH_EPHEM (7 << 9) /* FIXME: find the real TYPE name */ 1982 + #define ALG_TYPE_ECDH (7 << 9) 1730 1983 1731 1984 /* SIDs */ 1732 1985 #define ALG_SID_ANY (0) ··· 1760 2013 /* Fortezza */ 1761 2014 #define ALG_SID_SKIPJACK 10 1762 2015 #define ALG_SID_TEK 11 1763 - /* Diffie-Hellman SIDs */ 2016 + /* Diffie-Hellmans SIDs */ 1764 2017 #define ALG_SID_DH_SANDF 1 1765 2018 #define ALG_SID_DH_EPHEM 2 1766 2019 #define ALG_SID_AGREED_KEY_ANY 3 1767 2020 #define ALG_SID_KEA 4 1768 2021 #define ALG_SID_ECDH 5 1769 - #define ALG_SID_ECDH_EPHEM 6 /* FIXME: find the real SID name */ 2022 + #define ALG_SID_ECDH_EPHEM 6 1770 2023 /* RC2 SIDs */ 1771 2024 #define ALG_SID_RC4 1 1772 2025 #define ALG_SID_RC2 2 ··· 1816 2069 #define CALG_RSA_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY) 1817 2070 #define CALG_DSS_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY) 1818 2071 #define CALG_NO_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_ANY | ALG_SID_ANY) 2072 + #define CALG_ECDSA (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_ECDSA) 1819 2073 #define CALG_DH_SF (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_DH_SANDF) 1820 2074 #define CALG_DH_EPHEM (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_DH_EPHEM) 1821 2075 #define CALG_AGREEDKEY_ANY (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_AGREED_KEY_ANY) 1822 2076 #define CALG_KEA_KEYX (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_KEA) 1823 2077 #define CALG_HUGHES_MD5 (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ANY | ALG_SID_MD5) 2078 + #define CALG_ECDH (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_ECDH) 2079 + #define CALG_ECDH_EPHEM (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ECDH | ALG_SID_ECDH_EPHEM) 1824 2080 #define CALG_RSA_KEYX (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_RSA | ALG_SID_RSA_ANY) 1825 - #define CALG_ECDH (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_ECDH) 1826 - #define CALG_ECDH_EPHEM (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH_EPHEM | ALG_SID_ECDH_EPHEM) /* FIXME: find the original TYPE and SID names */ 1827 2081 #define CALG_ECMQV (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ANY | ALG_SID_ECMQV) 1828 2082 #define CALG_DES (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DES) 1829 2083 #define CALG_RC2 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_RC2) ··· 1847 2101 #define CALG_PCT1_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_PCT1_MASTER) 1848 2102 #define CALG_SSL2_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SSL2_MASTER) 1849 2103 #define CALG_TLS1_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_TLS1_MASTER) 1850 - #define CALG_ECDSA (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_ECDSA) 2104 + 2105 + 1851 2106 /* Protocol Flags */ 1852 2107 #define CRYPT_FLAG_PCT1 0x0001 1853 2108 #define CRYPT_FLAG_SSL2 0x0002 ··· 1858 2113 1859 2114 /* Provider names */ 1860 2115 #define MS_DEF_PROV_A "Microsoft Base Cryptographic Provider v1.0" 1861 - #if defined(__GNUC__) 1862 - # define MS_DEF_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1863 - 'B','a','s','e',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ', \ 1864 - 'P','r','o','v','i','d','e','r',' ','v','1','.','0',0 } 1865 - #elif defined(_MSC_VER) 2116 + #if defined(_MSC_VER) || defined(__MINGW32__) 1866 2117 # define MS_DEF_PROV_W L"Microsoft Base Cryptographic Provider v1.0" 1867 2118 #else 1868 2119 static const WCHAR MS_DEF_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', ··· 1872 2123 #define MS_DEF_PROV WINELIB_NAME_AW(MS_DEF_PROV_) 1873 2124 1874 2125 #define MS_ENHANCED_PROV_A "Microsoft Enhanced Cryptographic Provider v1.0" 1875 - #if defined(__GNUC__) 1876 - # define MS_ENHANCED_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1877 - 'E','n','h','a','n','c','e','d',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ', \ 1878 - 'P','r','o','v','i','d','e','r',' ','v','1','.','0',0 } 1879 - #elif defined(_MSC_VER) 2126 + #if defined(_MSC_VER) || defined(__MINGW32__) 1880 2127 # define MS_ENHANCED_PROV_W L"Microsoft Enhanced Cryptographic Provider v1.0" 1881 2128 #else 1882 2129 static const WCHAR MS_ENHANCED_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', ··· 1886 2133 #define MS_ENHANCED_PROV WINELIB_NAME_AW(MS_ENHANCED_PROV_) 1887 2134 1888 2135 #define MS_STRONG_PROV_A "Microsoft Strong Cryptographic Provider" 1889 - #if defined(__GNUC__) 1890 - # define MS_STRONG_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1891 - 'S','t','r','o','n','g',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ', \ 1892 - 'P','r','o','v','i','d','e','r',0 } 1893 - #elif defined(_MSC_VER) 2136 + #if defined(_MSC_VER) || defined(__MINGW32__) 1894 2137 # define MS_STRONG_PROV_W L"Microsoft Strong Cryptographic Provider" 1895 2138 #else 1896 2139 static const WCHAR MS_STRONG_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', ··· 1900 2143 #define MS_STRONG_PROV WINELIB_NAME_AW(MS_STRONG_PROV_) 1901 2144 1902 2145 #define MS_DEF_RSA_SIG_PROV_A "Microsoft RSA Signature Cryptographic Provider" 1903 - #if defined(__GNUC__) 1904 - # define MS_DEF_RSA_SIG_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1905 - 'R','S','A',' ','S','i','g','n','a','t','u','r','e',' ', \ 1906 - 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1907 - #elif defined(_MSC_VER) 2146 + #if defined(_MSC_VER) || defined(__MINGW32__) 1908 2147 # define MS_DEF_RSA_SIG_PROV_W L"Microsoft RSA Signature Cryptographic Provider" 1909 2148 #else 1910 2149 static const WCHAR MS_DEF_RSA_SIG_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', ··· 1914 2153 #define MS_DEF_RSA_SIG_PROV WINELIB_NAME_AW(MS_DEF_RSA_SIG_PROV_) 1915 2154 1916 2155 #define MS_DEF_RSA_SCHANNEL_PROV_A "Microsoft RSA SChannel Cryptographic Provider" 1917 - #if defined(__GNUC__) 1918 - # define MS_DEF_RSA_SCHANNEL_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1919 - 'R','S','A',' ','S','C','h','a','n','n','e','l',' ', \ 1920 - 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1921 - #elif defined(_MSC_VER) 2156 + #if defined(_MSC_VER) || defined(__MINGW32__) 1922 2157 # define MS_DEF_RSA_SCHANNEL_PROV_W L"Microsoft RSA SChannel Cryptographic Provider" 1923 2158 #else 1924 2159 static const WCHAR MS_DEF_RSA_SCHANNEL_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', ··· 1928 2163 #define MS_DEF_RSA_SCHANNEL_PROV WINELIB_NAME_AW(MS_DEF_RSA_SCHANNEL_PROV_) 1929 2164 1930 2165 #define MS_DEF_DSS_PROV_A "Microsoft Base DSS Cryptographic Provider" 1931 - #if defined(__GNUC__) 1932 - # define MS_DEF_DSS_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1933 - 'B','a','s','e',' ','D','S','S',' ', \ 1934 - 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1935 - #elif defined(_MSC_VER) 2166 + #if defined(_MSC_VER) || defined(__MINGW32__) 1936 2167 # define MS_DEF_DSS_PROV_W L"Microsoft Base DSS Cryptographic Provider" 1937 2168 #else 1938 2169 static const WCHAR MS_DEF_DSS_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', ··· 1942 2173 #define MS_DEF_DSS_PROV WINELIB_NAME_AW(MS_DEF_DSS_PROV_) 1943 2174 1944 2175 #define MS_DEF_DSS_DH_PROV_A "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" 1945 - #if defined(__GNUC__) 1946 - # define MS_DEF_DSS_DH_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1947 - 'B','a','s','e',' ','D','S','S',' ','a','n','d',' ', \ 1948 - 'D','i','f','f','i','e','-','H','e','l','l','m','a','n',' ', \ 1949 - 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1950 - #elif defined(_MSC_VER) 2176 + #if defined(_MSC_VER) || defined(__MINGW32__) 1951 2177 # define MS_DEF_DSS_DH_PROV_W L"Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" 1952 2178 #else 1953 2179 static const WCHAR MS_DEF_DSS_DH_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', ··· 1958 2184 #define MS_DEF_DSS_DH_PROV WINELIB_NAME_AW(MS_DEF_DSS_DH_PROV_) 1959 2185 1960 2186 #define MS_ENH_DSS_DH_PROV_A "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" 1961 - #if defined(__GNUC__) 1962 - # define MS_ENH_DSS_DH_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1963 - 'E','n','h','a','n','c','e','d',' ','D','S','S',' ','a','n','d',' ', \ 1964 - 'D','i','f','f','i','e','-','H','e','l','l','m','a','n',' ', \ 1965 - 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1966 - #elif defined(_MSC_VER) 2187 + #if defined(_MSC_VER) || defined(__MINGW32__) 1967 2188 # define MS_ENH_DSS_DH_PROV_W L"Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" 1968 2189 #else 1969 2190 static const WCHAR MS_ENH_DSS_DH_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', ··· 1974 2195 #define MS_ENH_DSS_DH_PROV WINELIB_NAME_AW(MS_ENH_DSS_DH_PROV_) 1975 2196 1976 2197 #define MS_DEF_DH_SCHANNEL_PROV_A "Microsoft DH SChannel Cryptographic Provider" 1977 - #if defined(__GNUC__) 1978 - # define MS_DEF_DH_SCHANNEL_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1979 - 'D','H',' ','S','C','h','a','n','n','e','l',' ', \ 1980 - 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1981 - #elif defined(_MSC_VER) 2198 + #if defined(_MSC_VER) || defined(__MINGW32__) 1982 2199 # define MS_DEF_DH_SCHANNEL_PROV_W L"Microsoft DH SChannel Cryptographic Provider" 1983 2200 #else 1984 2201 static const WCHAR MS_DEF_DH_SCHANNEL_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', ··· 1988 2205 #define MS_DEF_DH_SCHANNEL_PROV WINELIB_NAME_AW(MS_DEF_DH_SCHANNEL_PROV_) 1989 2206 1990 2207 #define MS_SCARD_PROV_A "Microsoft Base Smart Card Cryptographic Provider" 1991 - #if defined(__GNUC__) 1992 - # define MS_SCARD_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1993 - 'B','a','s','e',' ','S','m','a','r','t',' ','C','a','r','d',' ', \ 1994 - 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1995 - #elif defined(_MSC_VER) 2208 + #if defined(_MSC_VER) || defined(__MINGW32__) 1996 2209 # define MS_SCARD_PROV_W L"Microsoft Base Smart Card Cryptographic Provider" 1997 2210 #else 1998 2211 static const WCHAR MS_SCARD_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', ··· 2002 2215 #define MS_SCARD_PROV WINELIB_NAME_AW(MS_SCARD_PROV_) 2003 2216 2004 2217 #define MS_ENH_RSA_AES_PROV_A "Microsoft Enhanced RSA and AES Cryptographic Provider" 2005 - #if defined(__GNUC__) 2006 - # define MS_ENH_RSA_AES_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 2007 - 'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ',\ 2008 - 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 2009 - #elif defined(_MSC_VER) 2218 + #if defined(_MSC_VER) || defined(__MINGW32__) 2010 2219 # define MS_ENH_RSA_AES_PROV_W L"Microsoft Enhanced RSA and AES Cryptographic Provider" 2011 2220 #else 2012 2221 static const WCHAR MS_ENH_RSA_AES_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', ··· 2016 2225 #define MS_ENH_RSA_AES_PROV WINELIB_NAME_AW(MS_ENH_RSA_AES_PROV_) 2017 2226 2018 2227 #define MS_ENH_RSA_AES_PROV_XP_A "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)" 2019 - #if defined(__GNUC__) 2020 - # define MS_ENH_RSA_AES_PROV_XP_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 2021 - 'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ',\ 2022 - 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',' ',\ 2023 - '(','P','r','o','t','o','t','y','p','e',')',0 } 2024 - #elif defined(_MSC_VER) 2228 + #if defined(_MSC_VER) || defined(__MINGW32__) 2025 2229 # define MS_ENH_RSA_AES_PROV_XP_W L"Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)" 2026 2230 #else 2027 2231 static const WCHAR MS_ENH_RSA_AES_PROV_XP_W[] = { 'M','i','c','r','o','s','o','f','t',' ', ··· 2192 2396 #define CRYPT_MODE_OFB 3 2193 2397 #define CRYPT_MODE_CFB 4 2194 2398 2195 - #define CRYPT_ENCRYPT 0x0001 2399 + #define CRYPT_ENCRYPT 0x0001 2196 2400 #define CRYPT_DECRYPT 0x0002 2197 2401 #define CRYPT_EXPORT 0x0004 2198 2402 #define CRYPT_READ 0x0008 ··· 2338 2542 #define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE \ 2339 2543 (CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) 2340 2544 2341 - #if defined(__GNUC__) 2342 - #define CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH (const WCHAR[])\ 2343 - {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t',\ 2344 - '\\','S','y','s','t','e','m','C','e','r','t','i','f','i','c','a','t','e','s',\ 2345 - 0 } 2346 - #define CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH (const WCHAR[])\ 2347 - {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',\ 2348 - 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',\ 2349 - 't','i','f','i','c','a','t','e','s',0 } 2350 - #elif defined(_MSC_VER) 2545 + #if defined(_MSC_VER) || defined(__MINGW32__) 2351 2546 #define CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH \ 2352 2547 L"Software\\Microsoft\\SystemCertificates" 2353 2548 #define CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH \ 2354 2549 L"Software\\Policies\\Microsoft\\SystemCertificates" 2355 2550 #else 2356 - static const WCHAR CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH[] = 2551 + static const WCHAR CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH[] = 2357 2552 {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\', 2358 2553 'S','y','s','t','e','m','C','e','r','t','i','f','i','c','a','t','e','s',0 }; 2359 - static const WCHAR CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH[] = 2554 + static const WCHAR CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH[] = 2360 2555 {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\', 2361 2556 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r', 2362 2557 't','i','f','i','c','a','t','e','s',0 }; 2363 2558 #endif 2364 2559 2365 - #if defined(__GNUC__) 2366 - #define CERT_EFSBLOB_REGPATH (const WCHAR[])\ 2367 - {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',\ 2368 - 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',\ 2369 - 't','i','f','i','c','a','t','e','s','\\','E','F','S',0 } 2370 - #define CERT_EFSBLOB_VALUE_NAME (const WCHAR[]) {'E','F','S','B','l','o','b',0 } 2371 - #elif defined(_MSC_VER) 2560 + #if defined(_MSC_VER) || defined(__MINGW32__) 2372 2561 #define CERT_EFSBLOB_REGPATH CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH L"\\EFS" 2373 2562 #define CERT_EFSBLOB_VALUE_NAME L"EFSBlob" 2374 2563 #else ··· 2376 2565 {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\', 2377 2566 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r', 2378 2567 't','i','f','i','c','a','t','e','s','\\','E','F','S',0 }; 2379 - static const CERT_EFSBLOB_VALUE_NAME[] = { 'E','F','S','B','l','o','b',0 }; 2568 + static const WCHAR CERT_EFSBLOB_VALUE_NAME[] = { 'E','F','S','B','l','o','b',0 }; 2380 2569 #endif 2381 2570 2382 - #if defined(__GNUC__) 2383 - #define CERT_PROT_ROOT_FLAGS_REGPATH (const WCHAR[])\ 2384 - {'\\','R','o','o','t','\\','P','r','o','t','e','c','t','e','d','R','o','o','t',\ 2385 - 's',0 } 2386 - #define CERT_PROT_ROOT_FLAGS_VALUE_NAME (const WCHAR[])\ 2387 - {'F','l','a','g','s',0 } 2388 - #elif defined(_MSC_VER) 2571 + #if defined(_MSC_VER) || defined(__MINGW32__) 2389 2572 #define CERT_PROT_ROOT_FLAGS_REGPATH L"\\Root\\ProtectedRoots" 2390 2573 #define CERT_PROT_ROOT_FLAGS_VALUE_NAME L"Flags" 2391 2574 #else ··· 2402 2585 #define CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG 0x10 2403 2586 #define CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG 0x20 2404 2587 2405 - #if defined(__GNUC__) 2406 - #define CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH (const WCHAR[])\ 2407 - {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',\ 2408 - 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',\ 2409 - 't','i','f','i','c','a','t','e','s','\\','T','r','u','s','t','e','d',\ 2410 - 'P','u','b','l','i','s','h','e','r','\\','S','a','f','e','r',0 } 2411 - #elif defined(_MSC_VER) 2588 + #if defined(_MSC_VER) || defined(__MINGW32__) 2412 2589 #define CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH \ 2413 2590 CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH L"\\TrustedPublisher\\Safer" 2414 2591 #else ··· 2419 2596 'P','u','b','l','i','s','h','e','r','\\','S','a','f','e','r',0 }; 2420 2597 #endif 2421 2598 2422 - #if defined(__GNUC__) 2423 - #define CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH (const WCHAR[])\ 2424 - {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',\ 2425 - 'S','y','s','t','e','m','C','e','r','t','i','f','i','c','a','t','e','s','\\',\ 2426 - 'T','r','u','s','t','e','d','P','u','b','l','i','s','h','e','r','\\',\ 2427 - 'S','a','f','e','r',0 } 2428 - #define CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME (const WCHAR[])\ 2429 - {'A','u','t','h','e','n','t','i','c','o','d','e','F','l','a','g','s',0 }; 2430 - #elif defined(_MSC_VER) 2599 + #if defined(_MSC_VER) || defined(__MINGW32__) 2431 2600 #define CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH \ 2432 2601 CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH L"\\TrustedPublisher\\Safer" 2433 2602 #define CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME L"AuthenticodeFlags" ··· 2514 2683 2515 2684 #define CRYPT_OID_REGPATH "Software\\Microsoft\\Cryptography\\OID" 2516 2685 #define CRYPT_OID_REG_ENCODING_TYPE_PREFIX "EncodingType " 2517 - #if defined(__GNUC__) 2518 - # define CRYPT_OID_REG_DLL_VALUE_NAME (const WCHAR []){ 'D','l','l',0 } 2519 - # define CRYPT_OID_REG_FUNC_NAME_VALUE_NAME \ 2520 - (const WCHAR []){ 'F','u','n','c','N','a','m','e',0 } 2521 - # define CRYPT_OID_REG_FLAGS_VALUE_NAME \ 2522 - (const WCHAR []){ 'C','r','y','p','t','F','l','a','g','s',0 } 2523 - #elif defined(_MSC_VER) 2686 + #if defined(_MSC_VER) || defined(__MINGW32__) 2524 2687 # define CRYPT_OID_REG_DLL_VALUE_NAME L"Dll" 2525 2688 # define CRYPT_OID_REG_FUNC_NAME_VALUE_NAME L"FuncName" 2526 2689 # define CRYPT_OID_REG_FLAGS_VALUE_NAME L"CryptFlags" ··· 2586 2749 #define CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG 0x1 2587 2750 2588 2751 /* predefined store names */ 2589 - #if defined(__GNUC__) 2590 - # define CERT_PHYSICAL_STORE_DEFAULT_NAME (const WCHAR[])\ 2591 - {'.','D','e','f','a','u','l','t','0'} 2592 - # define CERT_PHYSICAL_STORE_GROUP_POLICY_NAME (const WCHAR[])\ 2593 - {'.','G','r','o','u','p','P','o','l','i','c','y',0} 2594 - # define CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME (const WCHAR[])\ 2595 - {'.','L','o','c','a','l','M','a','c','h','i','n','e',0} 2596 - # define CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME (const WCHAR[])\ 2597 - {'.','U','s','e','r','C','e','r','t','i','f','i','c','a','t','e',0} 2598 - # define CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME (const WCHAR[])\ 2599 - {'.','L','o','c','a','l','M','a','c','h','i','n','e','G','r','o','u','p',\ 2600 - 'P','o','l','i','c','y',0} 2601 - # define CERT_PHYSICAL_STORE_ENTERPRISE_NAME (const WCHAR[])\ 2602 - {'.','E','n','t','e','r','p','r','i','s','e',0} 2603 - # define CERT_PHYSICAL_STORE_AUTH_ROOT_NAME (const WCHAR[])\ 2604 - {'.','A','u','t','h','R','o','o','t',0} 2605 - #elif defined(_MSC_VER) 2752 + #if defined(_MSC_VER) || defined(__MINGW32__) 2606 2753 # define CERT_PHYSICAL_STORE_DEFAULT_NAME \ 2607 2754 L".Default" 2608 2755 # define CERT_PHYSICAL_STORE_GROUP_POLICY_NAME \ ··· 2618 2765 # define CERT_PHYSICAL_STORE_AUTH_ROOT_NAME \ 2619 2766 L".AuthRoot" 2620 2767 #else 2621 - static const WCHAR CERT_PHYSICAL_STORE_DEFAULT_NAME[] = 2768 + static const WCHAR CERT_PHYSICAL_STORE_DEFAULT_NAME[] = 2622 2769 {'.','D','e','f','a','u','l','t','0'}; 2623 2770 static const WCHAR CERT_PHYSICAL_STORE_GROUP_POLICY_NAME[] = 2624 2771 {'.','G','r','o','u','p','P','o','l','i','c','y',0}; ··· 2701 2848 #define CERT_SIGNATURE_HASH_PROP_ID 15 2702 2849 #define CERT_SMART_CARD_DATA_PROP_ID 16 2703 2850 #define CERT_EFS_PROP_ID 17 2704 - #define CERT_FORTEZZA_DATA_PROP 18 2851 + #define CERT_FORTEZZA_DATA_PROP_ID 18 2705 2852 #define CERT_ARCHIVED_PROP_ID 19 2706 2853 #define CERT_KEY_IDENTIFIER_PROP_ID 20 2707 2854 #define CERT_AUTO_ENROLL_PROP_ID 21 ··· 2993 3140 #define CRYPT_STRING_BASE64X509CRLHEADER 0x00000009 2994 3141 #define CRYPT_STRING_HEXADDR 0x0000000a 2995 3142 #define CRYPT_STRING_HEXASCIIADDR 0x0000000b 3143 + #define CRYPT_STRING_HEXRAW 0x0000000c 3144 + #define CRYPT_STRING_BASE64URI 0x0000000d 3145 + 3146 + #define CRYPT_STRING_PERCENTESCAPE 0x08000000 3147 + #define CRYPT_STRING_HASHDATA 0x10000000 3148 + #define CRYPT_STRING_STRICT 0x20000000 2996 3149 #define CRYPT_STRING_NOCRLF 0x40000000 2997 3150 #define CRYPT_STRING_NOCR 0x80000000 2998 3151 ··· 3131 3284 #define szOID_INFOSEC_mosaicUpdatedSig "2.16.840.1.101.2.1.1.19" 3132 3285 #define szOID_INFOSEC_mosaicKMandUpdSig "2.16.840.1.101.2.1.1.20" 3133 3286 #define szOID_INFOSEC_mosaicUpdateInteg "2.16.840.1.101.2.1.1.21" 3287 + #define szOID_NIST_sha256 "2.16.840.1.101.3.4.2.1" 3288 + #define szOID_NIST_sha384 "2.16.840.1.101.3.4.2.2" 3289 + #define szOID_NIST_sha512 "2.16.840.1.101.3.4.2.3" 3134 3290 #define szOID_COMMON_NAME "2.5.4.3" 3135 3291 #define szOID_SUR_NAME "2.5.4.4" 3136 3292 #define szOID_DEVICE_SERIAL_NUMBER "2.5.4.5" ··· 3348 3504 #define szOID_NETSCAPE_DATA_TYPE "2.16.840.1.113730.2" 3349 3505 #define szOID_NETSCAPE_CERT_SEQUENCE "2.16.840.1.113730.2.5" 3350 3506 3351 - #define szOID_NIST_sha256 "2.16.840.1.101.3.4.2.1" 3352 - #define szOID_NIST_sha384 "2.16.840.1.101.3.4.2.2" 3353 - #define szOID_NIST_sha512 "2.16.840.1.101.3.4.2.3" 3354 - 3355 3507 /* Bits for szOID_NETSCAPE_CERT_TYPE */ 3356 3508 #define NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE 0x80 3357 3509 #define NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE 0x40 ··· 3432 3584 #define CMC_ADD_EXTENSIONS ((LPCSTR)62) 3433 3585 #define CMC_ADD_ATTRIBUTES ((LPCSTR)63) 3434 3586 #define X509_CERTIFICATE_TEMPLATE ((LPCSTR)64) 3587 + #define OCSP_SIGNED_REQUEST ((LPCSTR)65) 3588 + #define OCSP_REQUEST ((LPCSTR)66) 3589 + #define OCSP_RESPONSE ((LPCSTR)67) 3590 + #define OCSP_BASIC_SIGNED_RESPONSE ((LPCSTR)68) 3591 + #define OCSP_BASIC_RESPONSE ((LPCSTR)69) 3592 + #define CNG_RSA_PUBLIC_KEY_BLOB ((LPCSTR)72) 3435 3593 #define X509_OBJECT_IDENTIFIER ((LPCSTR)73) 3436 3594 #define PKCS7_SIGNER_INFO ((LPCSTR)500) 3437 3595 #define CMS_SIGNER_INFO ((LPCSTR)501) ··· 3503 3661 #define CERT_NAME_URL_TYPE 7 3504 3662 #define CERT_NAME_UPN_TYPE 8 3505 3663 3506 - #define CERT_NAME_ISSUER_FLAG 0x00000001 3507 - #define CERT_NAME_DISABLE_IE4_UTF8_FLAG 0x00010000 3664 + #define CERT_NAME_ISSUER_FLAG 0x00000001 3665 + #define CERT_NAME_SEARCH_ALL_NAMES_FLAG 0x00000002 3666 + #define CERT_NAME_DISABLE_IE4_UTF8_FLAG 0x00010000 3667 + #define CERT_NAME_STR_ENABLE_PUNYCODE_FLAG 0x00200000 3508 3668 3509 3669 /* CryptFormatObject flags */ 3510 3670 #define CRYPT_FORMAT_STR_MULTI_LINE 0x0001 ··· 3638 3798 3639 3799 /* message-related definitions */ 3640 3800 3801 + #ifdef __REACTOS__ 3641 3802 typedef BOOL 3642 3803 (WINAPI *PFN_CMSG_STREAM_OUTPUT)( 3643 3804 _In_opt_ const void *pvArg, 3644 3805 _In_reads_bytes_opt_(cbData) BYTE *pbData, 3645 3806 _In_ DWORD cbData, 3646 3807 _In_ BOOL fFinal); 3808 + #else 3809 + typedef BOOL (WINAPI *PFN_CMSG_STREAM_OUTPUT)(const void *pvArg, BYTE *pbData, 3810 + DWORD cbData, BOOL fFinal); 3811 + #endif 3647 3812 3648 3813 #define CMSG_INDEFINITE_LENGTH 0xffffffff 3649 3814 ··· 4045 4210 #define CMSG_KEY_AGREE_VERSION CMSG_ENVELOPED_RECIPIENT_V3 4046 4211 #define CMSG_MAIL_LIST_VERSION CMSG_ENVELOPED_RECIPIENT_V4 4047 4212 4048 - typedef void * (WINAPI *PFN_CMSG_ALLOC)(_In_ size_t cb); 4049 - typedef void (WINAPI *PFN_CMSG_FREE)(_Inout_ void *pv); 4213 + typedef void * (__WINE_ALLOC_SIZE(1) WINAPI *PFN_CMSG_ALLOC)(size_t cb); 4214 + typedef void (WINAPI *PFN_CMSG_FREE)(void *pv); 4050 4215 4051 4216 typedef struct _CMSG_CONTENT_ENCRYPT_INFO { 4052 4217 DWORD cbSize; ··· 4094 4259 } DUMMYUNIONNAME; 4095 4260 } CERT_STRONG_SIGN_PARA, *PCERT_STRONG_SIGN_PARA; 4096 4261 4262 + #define CERT_STRONG_SIGN_SERIALIZED_INFO_CHOICE 1 4263 + #define CERT_STRONG_SIGN_OID_INFO_CHOICE 2 4264 + 4265 + #define CERT_STRONG_SIGN_ENABLE_CRL_CHECK 0x1 4266 + #define CERT_STRONG_SIGN_ENABLE_OCSP_CHECK 0x2 4267 + 4268 + #ifdef __REACTOS__ 4097 4269 typedef BOOL 4098 4270 (WINAPI *PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY)( 4099 4271 _Inout_ PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, ··· 4115 4287 _In_ DWORD dwFlags, 4116 4288 _Reserved_ void *pvReserved, 4117 4289 _Out_ HCRYPTKEY *phContentEncryptKey); 4290 + #else 4291 + typedef BOOL (WINAPI *PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY)( 4292 + PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, DWORD dwFlags, 4293 + void *pvReserved); 4294 + 4295 + typedef BOOL (WINAPI *PFN_CMSG_EXPORT_KEY_TRANS)( 4296 + PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, 4297 + PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTransEncodeInfo, 4298 + PCMSG_KEY_TRANS_ENCRYPT_INFO pKeyTransEncryptInfo, 4299 + DWORD dwFlags, void *pvReserved); 4300 + 4301 + typedef BOOL (WINAPI *PFN_CMSG_IMPORT_KEY_TRANS)( 4302 + PCRYPT_ALGORITHM_IDENTIFIER pContentEncryptionAlgorithm, 4303 + PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara, DWORD dwFlags, 4304 + void *pvReserved, HCRYPTKEY *phContentEncryptKey); 4305 + #endif 4118 4306 4119 4307 /* CryptMsgGetAndVerifySigner flags */ 4120 4308 #define CMSG_TRUSTED_SIGNER_FLAG 0x1 ··· 4129 4317 #define CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG 0x2 4130 4318 4131 4319 /* PFXImportCertStore flags */ 4132 - #define CRYPT_USER_KEYSET 0x00001000 4133 - #define PKCS12_IMPORT_RESERVED_MASK 0xffff0000 4320 + #define CRYPT_USER_KEYSET 0x00001000 4321 + #define PKCS12_IMPORT_SILENT 0x00000040 4322 + #define PKCS12_PREFER_CNG_KSP 0x00000100 4323 + #define PKCS12_ALWAYS_CNG_KSP 0x00000200 4324 + #define PKCS12_ONLY_CERTIFICATES 0x00000400 4325 + #define PKCS12_ONLY_NOT_ENCRYPTED_CERTIFICATES 0x00000800 4326 + #define PKCS12_ALLOW_OVERWRITE_KEY 0x00004000 4327 + #define PKCS12_NO_PERSIST_KEY 0x00008000 4328 + #define PKCS12_VIRTUAL_ISOLATION_KEY 0x00010000 4329 + #define PKCS12_IMPORT_RESERVED_MASK 0xffff0000 4134 4330 /* PFXExportCertStore flags */ 4135 4331 #define REPORT_NO_PRIVATE_KEY 0x00000001 4136 4332 #define REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY 0x00000002 4137 4333 #define EXPORT_PRIVATE_KEYS 0x00000004 4138 4334 #define PKCS12_EXPORT_RESERVED_MASK 0xffff0000 4139 4335 4140 - #define CRYPT_USERDATA 0x00000001 4336 + #define CRYPT_USERDATA 0x00000001 4141 4337 4142 4338 /* function declarations */ 4339 + #ifdef __REACTOS__ 4143 4340 /* advapi32.dll */ 4144 4341 WINADVAPI 4145 4342 BOOL ··· 6150 6347 6151 6348 #ifdef _MSC_VER 6152 6349 #pragma warning(pop) 6350 + #endif 6351 + #else 6352 + /* advapi32.dll */ 6353 + WINADVAPI BOOL WINAPI CryptAcquireContextA(HCRYPTPROV *, LPCSTR, LPCSTR, DWORD, DWORD); 6354 + WINADVAPI BOOL WINAPI CryptAcquireContextW (HCRYPTPROV *, LPCWSTR, LPCWSTR, DWORD, DWORD); 6355 + #define CryptAcquireContext WINELIB_NAME_AW(CryptAcquireContext) 6356 + WINADVAPI BOOL WINAPI CryptGenRandom (HCRYPTPROV, DWORD, BYTE *); 6357 + WINADVAPI BOOL WINAPI CryptContextAddRef (HCRYPTPROV, DWORD *, DWORD); 6358 + WINADVAPI BOOL WINAPI CryptCreateHash (HCRYPTPROV, ALG_ID, HCRYPTKEY, DWORD, HCRYPTHASH *); 6359 + WINADVAPI BOOL WINAPI CryptDecrypt (HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, BYTE *, DWORD *); 6360 + WINADVAPI BOOL WINAPI CryptDeriveKey (HCRYPTPROV, ALG_ID, HCRYPTHASH, DWORD, HCRYPTKEY *); 6361 + WINADVAPI BOOL WINAPI CryptDestroyHash (HCRYPTHASH); 6362 + WINADVAPI BOOL WINAPI CryptDestroyKey (HCRYPTKEY); 6363 + WINADVAPI BOOL WINAPI CryptDuplicateKey (HCRYPTKEY, DWORD *, DWORD, HCRYPTKEY *); 6364 + WINADVAPI BOOL WINAPI CryptDuplicateHash (HCRYPTHASH, DWORD *, DWORD, HCRYPTHASH *); 6365 + WINADVAPI BOOL WINAPI CryptEncrypt (HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, BYTE *, DWORD *, DWORD); 6366 + WINADVAPI BOOL WINAPI CryptEnumProvidersA (DWORD, DWORD *, DWORD, DWORD *, LPSTR, DWORD *); 6367 + WINADVAPI BOOL WINAPI CryptEnumProvidersW (DWORD, DWORD *, DWORD, DWORD *, LPWSTR, DWORD *); 6368 + #define CryptEnumProviders WINELIB_NAME_AW(CryptEnumProviders) 6369 + WINADVAPI BOOL WINAPI CryptEnumProviderTypesA (DWORD, DWORD *, DWORD, DWORD *, LPSTR, DWORD *); 6370 + WINADVAPI BOOL WINAPI CryptEnumProviderTypesW (DWORD, DWORD *, DWORD, DWORD *, LPWSTR, DWORD *); 6371 + #define CryptEnumProviderTypes WINELIB_NAME_AW(CryptEnumProviderTypes) 6372 + WINADVAPI BOOL WINAPI CryptExportKey (HCRYPTKEY, HCRYPTKEY, DWORD, DWORD, BYTE *, DWORD *); 6373 + WINADVAPI BOOL WINAPI CryptGenKey (HCRYPTPROV, ALG_ID, DWORD, HCRYPTKEY *); 6374 + WINADVAPI BOOL WINAPI CryptGetKeyParam (HCRYPTKEY, DWORD, BYTE *, DWORD *, DWORD); 6375 + WINADVAPI BOOL WINAPI CryptGetHashParam (HCRYPTHASH, DWORD, BYTE *, DWORD *, DWORD); 6376 + WINADVAPI BOOL WINAPI CryptGetProvParam (HCRYPTPROV, DWORD, BYTE *, DWORD *, DWORD); 6377 + WINADVAPI BOOL WINAPI CryptGetDefaultProviderA (DWORD, DWORD *, DWORD, LPSTR, DWORD *); 6378 + WINADVAPI BOOL WINAPI CryptGetDefaultProviderW (DWORD, DWORD *, DWORD, LPWSTR, DWORD *); 6379 + #define CryptGetDefaultProvider WINELIB_NAME_AW(CryptGetDefaultProvider) 6380 + WINADVAPI BOOL WINAPI CryptGetUserKey (HCRYPTPROV, DWORD, HCRYPTKEY *); 6381 + WINADVAPI BOOL WINAPI CryptHashData (HCRYPTHASH, const BYTE *, DWORD, DWORD); 6382 + WINADVAPI BOOL WINAPI CryptHashSessionKey (HCRYPTHASH, HCRYPTKEY, DWORD); 6383 + WINADVAPI BOOL WINAPI CryptImportKey (HCRYPTPROV, const BYTE *, DWORD, HCRYPTKEY, DWORD, HCRYPTKEY *); 6384 + WINADVAPI BOOL WINAPI CryptReleaseContext (HCRYPTPROV, DWORD); 6385 + WINADVAPI BOOL WINAPI CryptSetHashParam (HCRYPTHASH, DWORD, const BYTE *, DWORD); 6386 + WINADVAPI BOOL WINAPI CryptSetKeyParam (HCRYPTKEY, DWORD, const BYTE *, DWORD); 6387 + WINADVAPI BOOL WINAPI CryptSetProviderA (LPCSTR, DWORD); 6388 + WINADVAPI BOOL WINAPI CryptSetProviderW (LPCWSTR, DWORD); 6389 + #define CryptSetProvider WINELIB_NAME_AW(CryptSetProvider) 6390 + WINADVAPI BOOL WINAPI CryptSetProviderExA (LPCSTR, DWORD, DWORD *, DWORD); 6391 + WINADVAPI BOOL WINAPI CryptSetProviderExW (LPCWSTR, DWORD, DWORD *, DWORD); 6392 + #define CryptSetProviderEx WINELIB_NAME_AW(CryptSetProviderEx) 6393 + WINADVAPI BOOL WINAPI CryptSetProvParam (HCRYPTPROV, DWORD, const BYTE *, DWORD); 6394 + WINADVAPI BOOL WINAPI CryptSignHashA (HCRYPTHASH, DWORD, LPCSTR, DWORD, BYTE *, DWORD *); 6395 + WINADVAPI BOOL WINAPI CryptSignHashW (HCRYPTHASH, DWORD, LPCWSTR, DWORD, BYTE *, DWORD *); 6396 + #define CryptSignHash WINELIB_NAME_AW(CryptSignHash) 6397 + WINADVAPI BOOL WINAPI CryptVerifySignatureA (HCRYPTHASH, const BYTE *, DWORD, HCRYPTKEY, LPCSTR, DWORD); 6398 + WINADVAPI BOOL WINAPI CryptVerifySignatureW (HCRYPTHASH, const BYTE *, DWORD, HCRYPTKEY, LPCWSTR, DWORD); 6399 + #define CryptVerifySignature WINELIB_NAME_AW(CryptVerifySignature) 6400 + 6401 + /* crypt32.dll functions */ 6402 + LPVOID WINAPI CryptMemAlloc(_In_ ULONG cbSize) __WINE_ALLOC_SIZE(1); 6403 + LPVOID WINAPI CryptMemRealloc(_In_opt_ LPVOID pv, _In_ ULONG cbSize) __WINE_ALLOC_SIZE(2); 6404 + VOID WINAPI CryptMemFree(_In_opt_ LPVOID pv); 6405 + WINCRYPT32API VOID WINAPI CryptMemFree(LPVOID pv); 6406 + WINCRYPT32API LPVOID WINAPI CryptMemAlloc(ULONG cbSize) __WINE_ALLOC_SIZE(1) __WINE_DEALLOC(CryptMemFree) __WINE_MALLOC; 6407 + WINCRYPT32API LPVOID WINAPI CryptMemRealloc(LPVOID pv, ULONG cbSize) __WINE_ALLOC_SIZE(2) __WINE_DEALLOC(CryptMemFree); 6408 + 6409 + WINCRYPT32API BOOL WINAPI CryptBinaryToStringA(const BYTE *pbBinary, 6410 + DWORD cbBinary, DWORD dwFlags, LPSTR pszString, DWORD *pcchString); 6411 + WINCRYPT32API BOOL WINAPI CryptBinaryToStringW(const BYTE *pbBinary, 6412 + DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString); 6413 + #define CryptBinaryToString WINELIB_NAME_AW(CryptBinaryToString) 6414 + 6415 + WINCRYPT32API BOOL WINAPI CryptStringToBinaryA(LPCSTR pszString, 6416 + DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary, 6417 + DWORD *pdwSkip, DWORD *pdwFlags); 6418 + WINCRYPT32API BOOL WINAPI CryptStringToBinaryW(LPCWSTR pszString, 6419 + DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary, 6420 + DWORD *pdwSkip, DWORD *pdwFlags); 6421 + #define CryptStringToBinary WINELIB_NAME_AW(CryptStringToBinary) 6422 + 6423 + WINCRYPT32API BOOL WINAPI CryptCreateAsyncHandle(DWORD dwFlags, PHCRYPTASYNC phAsync); 6424 + WINCRYPT32API BOOL WINAPI CryptSetAsyncParam(HCRYPTASYNC hAsync, LPSTR pszParamOid, 6425 + LPVOID pvParam, PFN_CRYPT_ASYNC_PARAM_FREE_FUNC pfnFree); 6426 + WINCRYPT32API BOOL WINAPI CryptGetAsyncParam(HCRYPTASYNC hAsync, LPSTR pszParamOid, 6427 + LPVOID *ppvParam, PFN_CRYPT_ASYNC_PARAM_FREE_FUNC *ppfnFree); 6428 + WINCRYPT32API BOOL WINAPI CryptCloseAsyncHandle(HCRYPTASYNC hAsync); 6429 + 6430 + WINCRYPT32API BOOL WINAPI CryptRegisterDefaultOIDFunction(DWORD,LPCSTR,DWORD,LPCWSTR); 6431 + WINCRYPT32API BOOL WINAPI CryptRegisterOIDFunction(DWORD,LPCSTR,LPCSTR,LPCWSTR,LPCSTR); 6432 + WINCRYPT32API BOOL WINAPI CryptGetOIDFunctionValue(DWORD dwEncodingType, LPCSTR pszFuncName, 6433 + LPCSTR pszOID, LPCWSTR szValueName, DWORD *pdwValueType, 6434 + BYTE *pbValueData, DWORD *pcbValueData); 6435 + WINCRYPT32API BOOL WINAPI CryptSetOIDFunctionValue(DWORD dwEncodingType, LPCSTR pszFuncName, 6436 + LPCSTR pszOID, LPCWSTR pwszValueName, DWORD dwValueType, 6437 + const BYTE *pbValueData, DWORD cbValueData); 6438 + WINCRYPT32API BOOL WINAPI CryptUnregisterDefaultOIDFunction(DWORD,LPCSTR,LPCWSTR); 6439 + WINCRYPT32API BOOL WINAPI CryptUnregisterOIDFunction(DWORD,LPCSTR,LPCSTR); 6440 + WINCRYPT32API BOOL WINAPI CryptEnumOIDFunction(DWORD dwEncodingType, LPCSTR pszFuncName, 6441 + LPCSTR pszOID, DWORD dwFlags, void *pvArg, 6442 + PFN_CRYPT_ENUM_OID_FUNC pfnEnumOIDFunc); 6443 + WINCRYPT32API HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet(LPCSTR,DWORD); 6444 + WINCRYPT32API BOOL WINAPI CryptGetDefaultOIDDllList(HCRYPTOIDFUNCSET hFuncSet, 6445 + DWORD dwEncodingType, LPWSTR pwszDllList, DWORD *pcchDllList); 6446 + WINCRYPT32API BOOL WINAPI CryptGetDefaultOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, 6447 + DWORD dwEncodingType, LPCWSTR pwszDll, DWORD dwFlags, void **ppvFuncAddr, 6448 + HCRYPTOIDFUNCADDR *phFuncAddr); 6449 + WINCRYPT32API BOOL WINAPI CryptGetOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, 6450 + DWORD dwEncodingType, LPCSTR pszOID, DWORD dwFlags, void **ppvFuncAddr, 6451 + HCRYPTOIDFUNCADDR *phFuncAddr); 6452 + WINCRYPT32API BOOL WINAPI CryptFreeOIDFunctionAddress(HCRYPTOIDFUNCADDR hFuncAddr, 6453 + DWORD dwFlags); 6454 + WINCRYPT32API BOOL WINAPI CryptInstallOIDFunctionAddress(HMODULE hModule, 6455 + DWORD dwEncodingType, LPCSTR pszFuncName, DWORD cFuncEntry, 6456 + const CRYPT_OID_FUNC_ENTRY rgFuncEntry[], DWORD dwFlags); 6457 + WINCRYPT32API BOOL WINAPI CryptInstallDefaultContext(HCRYPTPROV hCryptProv, 6458 + DWORD dwDefaultType, const void *pvDefaultPara, DWORD dwFlags, 6459 + void *pvReserved, HCRYPTDEFAULTCONTEXT *phDefaultContext); 6460 + WINCRYPT32API BOOL WINAPI CryptUninstallDefaultContext(HCRYPTDEFAULTCONTEXT hDefaultContext, 6461 + DWORD dwFlags, void *pvReserved); 6462 + 6463 + WINCRYPT32API BOOL WINAPI CryptEnumOIDInfo(DWORD dwGroupId, DWORD dwFlags, void *pvArg, 6464 + PFN_CRYPT_ENUM_OID_INFO pfnEnumOIDInfo); 6465 + WINCRYPT32API PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey, 6466 + DWORD dwGroupId); 6467 + WINCRYPT32API BOOL WINAPI CryptRegisterOIDInfo(PCCRYPT_OID_INFO pInfo, DWORD dwFlags); 6468 + WINCRYPT32API BOOL WINAPI CryptUnregisterOIDInfo(PCCRYPT_OID_INFO pInfo); 6469 + 6470 + WINCRYPT32API LPCWSTR WINAPI CryptFindLocalizedName(LPCWSTR pwszCryptName); 6471 + 6472 + WINCRYPT32API LPCSTR WINAPI CertAlgIdToOID(DWORD dwAlgId); 6473 + WINCRYPT32API DWORD WINAPI CertOIDToAlgId(LPCSTR pszObjId); 6474 + 6475 + /* cert store functions */ 6476 + WINCRYPT32API HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwEncodingType, 6477 + HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara); 6478 + 6479 + WINCRYPT32API HCERTSTORE WINAPI CertOpenSystemStoreA(HCRYPTPROV_LEGACY hProv, 6480 + LPCSTR szSubSystemProtocol); 6481 + WINCRYPT32API HCERTSTORE WINAPI CertOpenSystemStoreW(HCRYPTPROV_LEGACY hProv, 6482 + LPCWSTR szSubSystemProtocol); 6483 + #define CertOpenSystemStore WINELIB_NAME_AW(CertOpenSystemStore) 6484 + 6485 + WINCRYPT32API PCCERT_CONTEXT WINAPI CertEnumCertificatesInStore(HCERTSTORE hCertStore, 6486 + PCCERT_CONTEXT pPrev); 6487 + 6488 + WINCRYPT32API PCCRL_CONTEXT WINAPI CertEnumCRLsInStore(HCERTSTORE hCertStore, 6489 + PCCRL_CONTEXT pPrev); 6490 + 6491 + WINCRYPT32API PCCTL_CONTEXT WINAPI CertEnumCTLsInStore(HCERTSTORE hCertStore, 6492 + PCCTL_CONTEXT pPrev); 6493 + 6494 + WINCRYPT32API BOOL WINAPI CertEnumSystemStoreLocation(DWORD dwFlags, void *pvArg, 6495 + PFN_CERT_ENUM_SYSTEM_STORE_LOCATION pfnEnum); 6496 + 6497 + WINCRYPT32API BOOL WINAPI CertEnumSystemStore(DWORD dwFlags, void *pvSystemStoreLocationPara, 6498 + void *pvArg, PFN_CERT_ENUM_SYSTEM_STORE pfnEnum); 6499 + 6500 + WINCRYPT32API BOOL WINAPI CertRegisterSystemStore(const void *store, DWORD flags, 6501 + CERT_SYSTEM_STORE_INFO *info, void *reserved); 6502 + 6503 + WINCRYPT32API BOOL WINAPI CertUnregisterSystemStore(const void *store, DWORD flags); 6504 + 6505 + WINCRYPT32API BOOL WINAPI CertEnumPhysicalStore(const void *pvSystemStore, DWORD dwFlags, 6506 + void *pvArg, PFN_CERT_ENUM_PHYSICAL_STORE pfnEnum); 6507 + 6508 + WINCRYPT32API BOOL WINAPI CertRegisterPhysicalStore(const void *pvSystemStore, DWORD dwFlags, 6509 + LPCWSTR pwszStoreName, PCERT_PHYSICAL_STORE_INFO pStoreInfo, void *pvReserved); 6510 + 6511 + WINCRYPT32API BOOL WINAPI CertUnregisterPhysicalStore(const void *pvSystemStore, DWORD dwFlags, 6512 + LPCWSTR pwszStoreName); 6513 + 6514 + WINCRYPT32API BOOL WINAPI CertSaveStore(HCERTSTORE hCertStore, DWORD dwMsgAndCertEncodingType, 6515 + DWORD dwSaveAs, DWORD dwSaveTo, void* pvSaveToPara, DWORD dwFlags); 6516 + 6517 + WINCRYPT32API BOOL WINAPI CertAddStoreToCollection(HCERTSTORE hCollectionStore, 6518 + HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority); 6519 + 6520 + WINCRYPT32API void WINAPI CertRemoveStoreFromCollection(HCERTSTORE hCollectionStore, 6521 + HCERTSTORE hSiblingStore); 6522 + 6523 + WINCRYPT32API BOOL WINAPI CertCreateCertificateChainEngine(PCERT_CHAIN_ENGINE_CONFIG pConfig, 6524 + HCERTCHAINENGINE *phChainEngine); 6525 + 6526 + WINCRYPT32API BOOL WINAPI CertResyncCertificateChainEngine(HCERTCHAINENGINE hChainEngine); 6527 + 6528 + WINCRYPT32API VOID WINAPI CertFreeCertificateChainEngine(HCERTCHAINENGINE hChainEngine); 6529 + 6530 + WINCRYPT32API BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine, 6531 + PCCERT_CONTEXT pCertContext, LPFILETIME pTime, HCERTSTORE hAdditionalStore, 6532 + PCERT_CHAIN_PARA pChainPara, DWORD dwFlags, LPVOID pvReserved, 6533 + PCCERT_CHAIN_CONTEXT *ppChainContext); 6534 + 6535 + WINCRYPT32API PCCERT_CHAIN_CONTEXT WINAPI CertDuplicateCertificateChain( 6536 + PCCERT_CHAIN_CONTEXT pChainContext); 6537 + 6538 + WINCRYPT32API VOID WINAPI CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT pChainContext); 6539 + 6540 + WINCRYPT32API PCCERT_CHAIN_CONTEXT WINAPI CertFindChainInStore(HCERTSTORE hCertStore, 6541 + DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, 6542 + const void *pvFindPara, PCCERT_CHAIN_CONTEXT pPrevChainContext); 6543 + 6544 + WINCRYPT32API BOOL WINAPI CertVerifyCertificateChainPolicy(LPCSTR szPolicyOID, 6545 + PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, 6546 + PCERT_CHAIN_POLICY_STATUS pPolicyStatus); 6547 + 6548 + WINCRYPT32API DWORD WINAPI CertEnumCertificateContextProperties(PCCERT_CONTEXT pCertContext, 6549 + DWORD dwPropId); 6550 + 6551 + WINCRYPT32API BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext, 6552 + DWORD dwPropId, void *pvData, DWORD *pcbData); 6553 + 6554 + WINCRYPT32API BOOL WINAPI CertSetCertificateContextProperty(PCCERT_CONTEXT pCertContext, 6555 + DWORD dwPropId, DWORD dwFlags, const void *pvData); 6556 + 6557 + WINCRYPT32API DWORD WINAPI CertEnumCRLContextProperties(PCCRL_CONTEXT pCRLContext, 6558 + DWORD dwPropId); 6559 + 6560 + WINCRYPT32API BOOL WINAPI CertGetCRLContextProperty(PCCRL_CONTEXT pCRLContext, 6561 + DWORD dwPropId, void *pvData, DWORD *pcbData); 6562 + 6563 + WINCRYPT32API BOOL WINAPI CertSetCRLContextProperty(PCCRL_CONTEXT pCRLContext, 6564 + DWORD dwPropId, DWORD dwFlags, const void *pvData); 6565 + 6566 + WINCRYPT32API DWORD WINAPI CertEnumCTLContextProperties(PCCTL_CONTEXT pCTLContext, 6567 + DWORD dwPropId); 6568 + 6569 + WINCRYPT32API BOOL WINAPI CertEnumSubjectInSortedCTL(PCCTL_CONTEXT pCTLContext, 6570 + void **ppvNextSubject, PCRYPT_DER_BLOB pSubjectIdentifier, 6571 + PCRYPT_DER_BLOB pEncodedAttributes); 6572 + 6573 + WINCRYPT32API BOOL WINAPI CertGetCTLContextProperty(PCCTL_CONTEXT pCTLContext, 6574 + DWORD dwPropId, void *pvData, DWORD *pcbData); 6575 + 6576 + WINCRYPT32API BOOL WINAPI CertSetCTLContextProperty(PCCTL_CONTEXT pCTLContext, 6577 + DWORD dwPropId, DWORD dwFlags, const void *pvData); 6578 + 6579 + WINCRYPT32API BOOL WINAPI CertGetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, 6580 + void *pvData, DWORD *pcbData); 6581 + 6582 + WINCRYPT32API BOOL WINAPI CertSetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, 6583 + DWORD dwFlags, const void *pvData); 6584 + 6585 + WINCRYPT32API BOOL WINAPI CertControlStore(HCERTSTORE hCertStore, DWORD dwFlags, 6586 + DWORD dwCtrlType, void const *pvCtrlPara); 6587 + 6588 + WINCRYPT32API HCERTSTORE WINAPI CertDuplicateStore(HCERTSTORE hCertStore); 6589 + 6590 + WINCRYPT32API BOOL WINAPI CertCloseStore( HCERTSTORE hCertStore, DWORD dwFlags ); 6591 + 6592 + WINCRYPT32API BOOL WINAPI CertFreeCertificateContext( PCCERT_CONTEXT pCertContext ); 6593 + 6594 + WINCRYPT32API BOOL WINAPI CertFreeCRLContext( PCCRL_CONTEXT pCrlContext ); 6595 + 6596 + WINCRYPT32API BOOL WINAPI CertFreeCTLContext( PCCTL_CONTEXT pCtlContext ); 6597 + 6598 + WINCRYPT32API BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE hCertStore, 6599 + PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition, 6600 + PCCERT_CONTEXT *ppStoreContext); 6601 + 6602 + WINCRYPT32API BOOL WINAPI CertAddCRLContextToStore( HCERTSTORE hCertStore, 6603 + PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, 6604 + PCCRL_CONTEXT *ppStoreContext ); 6605 + 6606 + WINCRYPT32API BOOL WINAPI CertAddCTLContextToStore( HCERTSTORE hCertStore, 6607 + PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition, 6608 + PCCTL_CONTEXT *ppStoreContext ); 6609 + 6610 + WINCRYPT32API BOOL WINAPI CertAddCertificateLinkToStore(HCERTSTORE hCertStore, 6611 + PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition, 6612 + PCCERT_CONTEXT *ppStoreContext); 6613 + 6614 + WINCRYPT32API BOOL WINAPI CertAddCRLLinkToStore(HCERTSTORE hCertStore, 6615 + PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, 6616 + PCCRL_CONTEXT *ppStoreContext); 6617 + 6618 + WINCRYPT32API BOOL WINAPI CertAddCTLLinkToStore(HCERTSTORE hCertStore, 6619 + PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition, 6620 + PCCTL_CONTEXT *ppStoreContext); 6621 + 6622 + WINCRYPT32API BOOL WINAPI CertAddEncodedCertificateToStore(HCERTSTORE hCertStore, 6623 + DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded, 6624 + DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext); 6625 + 6626 + WINCRYPT32API BOOL WINAPI CertAddEncodedCertificateToSystemStoreA(LPCSTR pszCertStoreName, 6627 + const BYTE *pbCertEncoded, DWORD cbCertEncoded); 6628 + WINCRYPT32API BOOL WINAPI CertAddEncodedCertificateToSystemStoreW(LPCWSTR pszCertStoreName, 6629 + const BYTE *pbCertEncoded, DWORD cbCertEncoded); 6630 + #define CertAddEncodedCertificateToSystemStore \ 6631 + WINELIB_NAME_AW(CertAddEncodedCertificateToSystemStore) 6632 + 6633 + WINCRYPT32API BOOL WINAPI CertAddEncodedCRLToStore(HCERTSTORE hCertStore, 6634 + DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded, 6635 + DWORD dwAddDisposition, PCCRL_CONTEXT *ppCrlContext); 6636 + 6637 + WINCRYPT32API BOOL WINAPI CertAddEncodedCTLToStore(HCERTSTORE hCertStore, 6638 + DWORD dwMsgAndCertEncodingType, const BYTE *pbCtlEncoded, DWORD cbCtlEncoded, 6639 + DWORD dwAddDisposition, PCCTL_CONTEXT *ppCtlContext); 6640 + 6641 + WINCRYPT32API BOOL WINAPI CertAddSerializedElementToStore(HCERTSTORE hCertStore, 6642 + const BYTE *pbElement, DWORD cbElement, DWORD dwAddDisposition, DWORD dwFlags, 6643 + DWORD dwContextTypeFlags, DWORD *pdwContentType, const void **ppvContext); 6644 + 6645 + WINCRYPT32API BOOL WINAPI CertCompareCertificate(DWORD dwCertEncodingType, 6646 + PCERT_INFO pCertId1, PCERT_INFO pCertId2); 6647 + WINCRYPT32API BOOL WINAPI CertCompareCertificateName(DWORD dwCertEncodingType, 6648 + PCERT_NAME_BLOB pCertName1, PCERT_NAME_BLOB pCertName2); 6649 + WINCRYPT32API BOOL WINAPI CertCompareIntegerBlob(PCRYPT_INTEGER_BLOB pInt1, 6650 + PCRYPT_INTEGER_BLOB pInt2); 6651 + WINCRYPT32API BOOL WINAPI CertComparePublicKeyInfo(DWORD dwCertEncodingType, 6652 + PCERT_PUBLIC_KEY_INFO pPublicKey1, PCERT_PUBLIC_KEY_INFO pPublicKey2); 6653 + WINCRYPT32API DWORD WINAPI CertGetPublicKeyLength(DWORD dwCertEncodingType, 6654 + PCERT_PUBLIC_KEY_INFO pPublicKey); 6655 + 6656 + WINCRYPT32API const void * WINAPI CertCreateContext(DWORD dwContextType, DWORD dwEncodingType, 6657 + const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, 6658 + PCERT_CREATE_CONTEXT_PARA pCreatePara); 6659 + 6660 + WINCRYPT32API PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, 6661 + const BYTE *pbCertEncoded, DWORD cbCertEncoded); 6662 + 6663 + WINCRYPT32API PCCRL_CONTEXT WINAPI CertCreateCRLContext( DWORD dwCertEncodingType, 6664 + const BYTE* pbCrlEncoded, DWORD cbCrlEncoded); 6665 + 6666 + WINCRYPT32API PCCTL_CONTEXT WINAPI CertCreateCTLContext(DWORD dwMsgAndCertEncodingType, 6667 + const BYTE *pbCtlEncoded, DWORD cbCtlEncoded); 6668 + 6669 + WINCRYPT32API PCCERT_CONTEXT WINAPI CertCreateSelfSignCertificate(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hProv, 6670 + PCERT_NAME_BLOB pSubjectIssuerBlob, DWORD dwFlags, 6671 + PCRYPT_KEY_PROV_INFO pKeyProvInfo, 6672 + PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, PSYSTEMTIME pStartTime, 6673 + PSYSTEMTIME pEndTime, PCERT_EXTENSIONS pExtensions); 6674 + 6675 + WINCRYPT32API BOOL WINAPI CertDeleteCertificateFromStore(PCCERT_CONTEXT pCertContext); 6676 + 6677 + WINCRYPT32API BOOL WINAPI CertDeleteCRLFromStore(PCCRL_CONTEXT pCrlContext); 6678 + 6679 + WINCRYPT32API BOOL WINAPI CertDeleteCTLFromStore(PCCTL_CONTEXT pCtlContext); 6680 + 6681 + WINCRYPT32API PCCERT_CONTEXT WINAPI CertDuplicateCertificateContext( 6682 + PCCERT_CONTEXT pCertContext); 6683 + 6684 + WINCRYPT32API PCCRL_CONTEXT WINAPI CertDuplicateCRLContext(PCCRL_CONTEXT pCrlContext); 6685 + 6686 + WINCRYPT32API PCCTL_CONTEXT WINAPI CertDuplicateCTLContext(PCCTL_CONTEXT pCtlContext); 6687 + 6688 + WINCRYPT32API PCCERT_CONTEXT WINAPI CertFindCertificateInStore( HCERTSTORE hCertStore, 6689 + DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, 6690 + const void *pvFindPara, PCCERT_CONTEXT pPrevCertContext ); 6691 + 6692 + WINCRYPT32API PCCRL_CONTEXT WINAPI CertFindCRLInStore(HCERTSTORE hCertStore, 6693 + DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, 6694 + const void *pvFindPara, PCCRL_CONTEXT pPrevCrlContext); 6695 + 6696 + WINCRYPT32API PCCTL_CONTEXT WINAPI CertFindCTLInStore(HCERTSTORE hCertStore, 6697 + DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, 6698 + const void *pvFindPara, PCCTL_CONTEXT pPrevCtlContext); 6699 + 6700 + WINCRYPT32API PCCERT_CONTEXT WINAPI CertGetIssuerCertificateFromStore(HCERTSTORE hCertStore, 6701 + PCCERT_CONTEXT pSubjectContext, PCCERT_CONTEXT pPrevIssuerContext, 6702 + DWORD *pdwFlags); 6703 + 6704 + WINCRYPT32API PCCERT_CONTEXT WINAPI CertGetSubjectCertificateFromStore(HCERTSTORE hCertStore, 6705 + DWORD dwCertEncodingType, PCERT_INFO pCertId); 6706 + 6707 + WINCRYPT32API PCCRL_CONTEXT WINAPI CertGetCRLFromStore(HCERTSTORE hCertStore, 6708 + PCCERT_CONTEXT pIssuerContext, PCCRL_CONTEXT pPrevCrlContext, DWORD *pdwFlags); 6709 + 6710 + WINCRYPT32API BOOL WINAPI CertSerializeCertificateStoreElement(PCCERT_CONTEXT pCertContext, 6711 + DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement); 6712 + 6713 + WINCRYPT32API BOOL WINAPI CertSerializeCRLStoreElement(PCCRL_CONTEXT pCrlContext, 6714 + DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement); 6715 + 6716 + WINCRYPT32API BOOL WINAPI CertSerializeCTLStoreElement(PCCTL_CONTEXT pCtlContext, 6717 + DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement); 6718 + 6719 + WINCRYPT32API BOOL WINAPI CertGetIntendedKeyUsage(DWORD dwCertEncodingType, 6720 + PCERT_INFO pCertInfo, BYTE *pbKeyUsage, DWORD cbKeyUsage); 6721 + 6722 + WINCRYPT32API BOOL WINAPI CertGetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, DWORD dwFlags, 6723 + PCERT_ENHKEY_USAGE pUsage, DWORD *pcbUsage); 6724 + WINCRYPT32API BOOL WINAPI CertSetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, 6725 + PCERT_ENHKEY_USAGE pUsage); 6726 + WINCRYPT32API BOOL WINAPI CertAddEnhancedKeyUsageIdentifier(PCCERT_CONTEXT pCertContext, 6727 + LPCSTR pszUsageIdentifier); 6728 + WINCRYPT32API BOOL WINAPI CertRemoveEnhancedKeyUsageIdentifier(PCCERT_CONTEXT pCertContext, 6729 + LPCSTR pszUsageIdentifier); 6730 + WINCRYPT32API BOOL WINAPI CertGetValidUsages(DWORD cCerts, PCCERT_CONTEXT *rghCerts, 6731 + int *cNumOIDs, LPSTR *rghOIDs, DWORD *pcbOIDs); 6732 + 6733 + WINCRYPT32API BOOL WINAPI CryptEncodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType, 6734 + const void *pvStructInfo, BYTE *pbEncoded, DWORD *pcbEncoded); 6735 + WINCRYPT32API BOOL WINAPI CryptEncodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, 6736 + const void *pvStructInfo, DWORD dwFlags, PCRYPT_ENCODE_PARA pEncodePara, 6737 + void *pvEncoded, DWORD *pcbEncoded); 6738 + 6739 + WINCRYPT32API BOOL WINAPI CryptDecodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType, 6740 + const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, void *pvStructInfo, 6741 + DWORD *pcbStructInfo); 6742 + WINCRYPT32API BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, 6743 + const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, 6744 + PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo); 6745 + 6746 + WINCRYPT32API BOOL WINAPI CryptFormatObject(DWORD dwCertEncodingType, DWORD dwFormatType, 6747 + DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, 6748 + const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat); 6749 + 6750 + WINCRYPT32API BOOL WINAPI CryptHashCertificate(HCRYPTPROV_LEGACY hCryptProv, ALG_ID Algid, 6751 + DWORD dwFlags, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, 6752 + DWORD *pcbComputedHash); 6753 + 6754 + WINCRYPT32API BOOL WINAPI CryptHashCertificate2(LPCWSTR pwszCNGHashAlgid, DWORD dwFlags, 6755 + void *pvReserved, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, 6756 + DWORD *pcbComputedHash); 6757 + 6758 + WINCRYPT32API BOOL WINAPI CryptHashPublicKeyInfo(HCRYPTPROV_LEGACY hCryptProv, ALG_ID Algid, 6759 + DWORD dwFlags, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, 6760 + BYTE *pbComputedHash, DWORD *pcbComputedHash); 6761 + 6762 + WINCRYPT32API BOOL WINAPI CryptHashToBeSigned(HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEncodingType, 6763 + const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, 6764 + DWORD *pcbComputedHash); 6765 + 6766 + WINCRYPT32API BOOL WINAPI CryptQueryObject(DWORD dwObjectType, const void* pvObject, 6767 + DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, 6768 + DWORD dwFlags, DWORD* pdwMsgAndCertEncodingType, DWORD* pdwContentType, 6769 + DWORD* pdwFormatType, HCERTSTORE* phCertStore, HCRYPTMSG* phMsg, 6770 + const void** ppvContext); 6771 + 6772 + WINCRYPT32API BOOL WINAPI CryptSignCertificate(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, 6773 + DWORD dwCertEncodingType, const BYTE *pbEncodedToBeSigned, 6774 + DWORD cbEncodedToBeSigned, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, 6775 + const void *pvHashAuxInfo, BYTE *pbSignature, DWORD *pcbSignature); 6776 + 6777 + WINCRYPT32API BOOL WINAPI CryptSignAndEncodeCertificate(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, 6778 + DWORD dwKeySpec, DWORD dwCertEncodingType, LPCSTR lpszStructType, 6779 + const void *pvStructInfo, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, 6780 + const void *pvHashAuxInfo, BYTE *pbEncoded, DWORD *pcbEncoded); 6781 + 6782 + WINCRYPT32API BOOL WINAPI CryptVerifyCertificateSignature(HCRYPTPROV_LEGACY hCryptProv, 6783 + DWORD dwCertEncodingType, const BYTE *pbEncoded, DWORD cbEncoded, 6784 + PCERT_PUBLIC_KEY_INFO pPublicKey); 6785 + 6786 + WINCRYPT32API BOOL WINAPI CryptVerifyCertificateSignatureEx(HCRYPTPROV_LEGACY hCryptProv, 6787 + DWORD dwCertEncodingType, DWORD dwSubjectType, void *pvSubject, 6788 + DWORD dwIssuerType, void *pvIssuer, DWORD dwFlags, void *pvReserved); 6789 + 6790 + WINCRYPT32API PCRYPT_ATTRIBUTE WINAPI CertFindAttribute(LPCSTR pszObjId, DWORD cAttr, 6791 + CRYPT_ATTRIBUTE rgAttr[]); 6792 + WINCRYPT32API PCERT_EXTENSION WINAPI CertFindExtension(LPCSTR pszObjId, DWORD cExtensions, 6793 + CERT_EXTENSION rgExtensions[]); 6794 + WINCRYPT32API PCERT_RDN_ATTR WINAPI CertFindRDNAttr(LPCSTR pszObjId, PCERT_NAME_INFO pName); 6795 + 6796 + WINCRYPT32API BOOL WINAPI CertFindSubjectInSortedCTL(PCRYPT_DATA_BLOB pSubjectIdentifier, 6797 + PCCTL_CONTEXT pCtlContext, DWORD dwFlags, void *pvReserved, 6798 + PCRYPT_DER_BLOB pEncodedAttributes); 6799 + 6800 + WINCRYPT32API BOOL WINAPI CertIsRDNAttrsInCertificateName(DWORD dwCertEncodingType, 6801 + DWORD dwFlags, PCERT_NAME_BLOB pCertName, PCERT_RDN pRDN); 6802 + 6803 + WINCRYPT32API BOOL WINAPI CertIsValidCRLForCertificate(PCCERT_CONTEXT pCert, 6804 + PCCRL_CONTEXT pCrl, DWORD dwFlags, void *pvReserved); 6805 + WINCRYPT32API BOOL WINAPI CertFindCertificateInCRL(PCCERT_CONTEXT pCert, 6806 + PCCRL_CONTEXT pCrlContext, DWORD dwFlags, void *pvReserved, 6807 + PCRL_ENTRY *ppCrlEntry); 6808 + WINCRYPT32API BOOL WINAPI CertVerifyCRLRevocation(DWORD dwCertEncodingType, 6809 + PCERT_INFO pCertId, DWORD cCrlInfo, PCRL_INFO rgpCrlInfo[]); 6810 + 6811 + WINCRYPT32API BOOL WINAPI CertVerifySubjectCertificateContext(PCCERT_CONTEXT pSubject, 6812 + PCCERT_CONTEXT pIssuer, DWORD *pdwFlags); 6813 + 6814 + WINCRYPT32API LONG WINAPI CertVerifyCRLTimeValidity(LPFILETIME pTimeToVerify, 6815 + PCRL_INFO pCrlInfo); 6816 + WINCRYPT32API LONG WINAPI CertVerifyTimeValidity(LPFILETIME pTimeToVerify, 6817 + PCERT_INFO pCertInfo); 6818 + WINCRYPT32API BOOL WINAPI CertVerifyValidityNesting(PCERT_INFO pSubjectInfo, 6819 + PCERT_INFO pIssuerInfo); 6820 + 6821 + WINCRYPT32API BOOL WINAPI CertVerifyCTLUsage(DWORD dwEncodingType, DWORD dwSubjectType, 6822 + void *pvSubject, PCTL_USAGE pSubjectUsage, DWORD dwFlags, 6823 + PCTL_VERIFY_USAGE_PARA pVerifyUsagePara, 6824 + PCTL_VERIFY_USAGE_STATUS pVerifyUsageStatus); 6825 + 6826 + WINCRYPT32API BOOL WINAPI CertVerifyRevocation(DWORD dwEncodingType, DWORD dwRevType, 6827 + DWORD cContext, PVOID rgpvContext[], DWORD dwFlags, 6828 + PCERT_REVOCATION_PARA pRevPara, PCERT_REVOCATION_STATUS pRevStatus); 6829 + 6830 + WINCRYPT32API BOOL WINAPI CryptExportPublicKeyInfo(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, 6831 + DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo); 6832 + WINCRYPT32API BOOL WINAPI CryptExportPublicKeyInfoEx(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, 6833 + DWORD dwCertEncodingType, LPSTR pszPublicKeyObjId, DWORD dwFlags, 6834 + void *pvAuxInfo, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo); 6835 + WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfo(HCRYPTPROV hCryptProv, 6836 + DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, HCRYPTKEY *phKey); 6837 + WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfoEx(HCRYPTPROV hCryptProv, 6838 + DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, ALG_ID aiKeyAlg, 6839 + DWORD dwFlags, void *pvAuxInfo, HCRYPTKEY *phKey); 6840 + WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfoEx2(DWORD dwCertEncodingType, 6841 + PCERT_PUBLIC_KEY_INFO pInfo, DWORD dwFlags, void *pvAuxInfo, 6842 + BCRYPT_KEY_HANDLE *phKey); 6843 + 6844 + WINCRYPT32API BOOL WINAPI CryptAcquireCertificatePrivateKey(PCCERT_CONTEXT pCert, 6845 + DWORD dwFlags, void *pvReserved, HCRYPTPROV_OR_NCRYPT_KEY_HANDLE *phCryptProv, DWORD *pdwKeySpec, 6846 + BOOL *pfCallerFreeProv); 6847 + 6848 + WINCRYPT32API BOOL WINAPI CryptFindCertificateKeyProvInfo(PCCERT_CONTEXT pCert, 6849 + DWORD dwFlags, void *pvReserved); 6850 + 6851 + WINCRYPT32API BOOL WINAPI CryptProtectData( DATA_BLOB* pDataIn, LPCWSTR szDataDescr, 6852 + DATA_BLOB* pOptionalEntropy, PVOID pvReserved, 6853 + CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, DWORD dwFlags, DATA_BLOB* pDataOut ); 6854 + 6855 + WINCRYPT32API BOOL WINAPI CryptUnprotectData( DATA_BLOB* pDataIn, LPWSTR* ppszDataDescr, 6856 + DATA_BLOB* pOptionalEntropy, PVOID pvReserved, 6857 + CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, DWORD dwFlags, DATA_BLOB* pDataOut ); 6858 + 6859 + WINCRYPT32API BOOL WINAPI CryptProtectMemory(void *pData, DWORD cbData, DWORD dwFlags); 6860 + WINCRYPT32API BOOL WINAPI CryptUnprotectMemory(void *pData, DWORD cbData, DWORD dwFlags); 6861 + 6862 + WINCRYPT32API DWORD WINAPI CertGetNameStringA(PCCERT_CONTEXT pCertContext, DWORD dwType, 6863 + DWORD dwFlags, void *pvTypePara, LPSTR pszNameString, DWORD cchNameString); 6864 + WINCRYPT32API DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType, 6865 + DWORD dwFlags, void *pvTypePara, LPWSTR pszNameString, DWORD cchNameString); 6866 + #define CertGetNameString WINELIB_NAME_AW(CertGetNameString) 6867 + 6868 + WINCRYPT32API DWORD WINAPI CertRDNValueToStrA(DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, 6869 + LPSTR psz, DWORD csz); 6870 + WINCRYPT32API DWORD WINAPI CertRDNValueToStrW(DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, 6871 + LPWSTR psz, DWORD csz); 6872 + #define CertRDNValueToStr WINELIB_NAME_AW(CertRDNValueToStr) 6873 + 6874 + WINCRYPT32API DWORD WINAPI CertNameToStrA(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, 6875 + DWORD dwStrType, LPSTR psz, DWORD csz); 6876 + WINCRYPT32API DWORD WINAPI CertNameToStrW(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, 6877 + DWORD dwStrType, LPWSTR psz, DWORD csz); 6878 + #define CertNameToStr WINELIB_NAME_AW(CertNameToStr) 6879 + 6880 + WINCRYPT32API BOOL WINAPI CertStrToNameA(DWORD dwCertEncodingType, LPCSTR pszX500, 6881 + DWORD dwStrType, void *pvReserved, BYTE *pbEncoded, DWORD *pcbEncoded, 6882 + LPCSTR *ppszError); 6883 + WINCRYPT32API BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500, 6884 + DWORD dwStrType, void *pvReserved, BYTE *pbEncoded, DWORD *pcbEncoded, 6885 + LPCWSTR *ppszError); 6886 + #define CertStrToName WINELIB_NAME_AW(CertStrToName) 6887 + 6888 + WINCRYPT32API DWORD WINAPI CryptMsgCalculateEncodedLength(DWORD dwMsgEncodingType, 6889 + DWORD dwFlags, DWORD dwMsgType, const void *pvMsgEncodeInfo, 6890 + LPSTR pszInnerContentObjID, DWORD cbData); 6891 + 6892 + WINCRYPT32API BOOL WINAPI CryptMsgClose(HCRYPTMSG hCryptMsg); 6893 + 6894 + WINCRYPT32API BOOL WINAPI CryptMsgControl(HCRYPTMSG hCryptMsg, DWORD dwFlags, 6895 + DWORD dwCtrlType, const void *pvCtrlPara); 6896 + 6897 + WINCRYPT32API BOOL WINAPI CryptMsgCountersign(HCRYPTMSG hCryptMsg, DWORD dwIndex, 6898 + DWORD dwCountersigners, PCMSG_SIGNER_ENCODE_INFO rgCountersigners); 6899 + 6900 + WINCRYPT32API BOOL WINAPI CryptMsgCountersignEncoded(DWORD dwEncodingType, PBYTE pbSignerInfo, 6901 + DWORD cbSignerInfo, DWORD cCountersigners, 6902 + PCMSG_SIGNER_ENCODE_INFO rgCountersigners, PBYTE pbCountersignature, 6903 + PDWORD pcbCountersignature); 6904 + 6905 + WINCRYPT32API HCRYPTMSG WINAPI CryptMsgDuplicate(HCRYPTMSG hCryptMsg); 6906 + 6907 + WINCRYPT32API BOOL WINAPI CryptMsgEncodeAndSignCTL(DWORD dwMsgEncodingType, 6908 + PCTL_INFO pCtlInfo, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags, 6909 + BYTE *pbEncoded, DWORD *pcbEncoded); 6910 + 6911 + WINCRYPT32API BOOL WINAPI CryptMsgGetAndVerifySigner(HCRYPTMSG hCryptMsg, DWORD cSignerStore, 6912 + HCERTSTORE *rghSignerStore, DWORD dwFlags, PCCERT_CONTEXT *ppSigner, 6913 + DWORD *pdwSignerIndex); 6914 + 6915 + WINCRYPT32API BOOL WINAPI CryptMsgGetParam(HCRYPTMSG hCryptMsg, DWORD dwParamType, 6916 + DWORD dwIndex, void *pvData, DWORD *pcbData); 6917 + 6918 + WINCRYPT32API HCRYPTMSG WINAPI CryptMsgOpenToDecode(DWORD dwMsgEncodingType, DWORD dwFlags, 6919 + DWORD dwMsgType, HCRYPTPROV_LEGACY hCryptProv, PCERT_INFO pRecipientInfo, 6920 + PCMSG_STREAM_INFO pStreamInfo); 6921 + 6922 + WINCRYPT32API HCRYPTMSG WINAPI CryptMsgOpenToEncode(DWORD dwMsgEncodingType, DWORD dwFlags, 6923 + DWORD dwMsgType, const void *pvMsgEncodeInfo, LPSTR pszInnerContentObjID, 6924 + PCMSG_STREAM_INFO pStreamInfo); 6925 + 6926 + WINCRYPT32API BOOL WINAPI CryptMsgSignCTL(DWORD dwMsgEncodingType, BYTE *pbCtlContent, 6927 + DWORD cbCtlContent, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags, 6928 + BYTE *pbEncoded, DWORD *pcbEncoded); 6929 + 6930 + WINCRYPT32API BOOL WINAPI CryptMsgUpdate(HCRYPTMSG hCryptMsg, const BYTE *pbData, 6931 + DWORD cbData, BOOL fFinal); 6932 + 6933 + WINCRYPT32API BOOL WINAPI CryptMsgVerifyCountersignatureEncoded(HCRYPTPROV_LEGACY hCryptProv, 6934 + DWORD dwEncodingType, PBYTE pbSignerInfo, DWORD cbSignerInfo, 6935 + PBYTE pbSignerInfoCountersignature, DWORD cbSignerInfoCountersignature, 6936 + PCERT_INFO pciCountersigner); 6937 + 6938 + WINCRYPT32API BOOL WINAPI CryptMsgVerifyCountersignatureEncodedEx(HCRYPTPROV_LEGACY hCryptProv, 6939 + DWORD dwEncodingType, PBYTE pbSignerInfo, DWORD cbSignerInfo, 6940 + PBYTE pbSignerInfoCountersignature, DWORD cbSignerInfoCountersignature, 6941 + DWORD dwSignerType, void *pvSigner, DWORD dwFlags, void *pvReserved); 6942 + 6943 + WINCRYPT32API BOOL WINAPI CryptSignMessage(PCRYPT_SIGN_MESSAGE_PARA pSignPara, 6944 + BOOL fDetachedSignature, DWORD cToBeSigned, const BYTE *rgpbToBeSigned[], 6945 + DWORD rgcbToBeSigned[], BYTE *pbSignedBlob, DWORD *pcbSignedBlob); 6946 + WINCRYPT32API BOOL WINAPI CryptSignMessageWithKey(PCRYPT_KEY_SIGN_MESSAGE_PARA pSignPara, 6947 + const BYTE *pbToBeSigned, DWORD cbToBeSigned, BYTE *pbSignedBlob, 6948 + DWORD *pcbSignedBlob); 6949 + 6950 + WINCRYPT32API BOOL WINAPI CryptVerifyMessageSignature(PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, 6951 + DWORD dwSignerIndex, const BYTE* pbSignedBlob, DWORD cbSignedBlob, 6952 + BYTE* pbDecoded, DWORD* pcbDecoded, PCCERT_CONTEXT* ppSignerCert); 6953 + WINCRYPT32API BOOL WINAPI CryptVerifyMessageSignatureWithKey( 6954 + PCRYPT_KEY_VERIFY_MESSAGE_PARA pVerifyPara, 6955 + PCERT_PUBLIC_KEY_INFO pPublicKeyInfo, const BYTE *pbSignedBlob, 6956 + DWORD cbSignedBlob, BYTE *pbDecoded, DWORD *pcbDecoded); 6957 + 6958 + WINCRYPT32API BOOL WINAPI CryptVerifyDetachedMessageSignature( 6959 + PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, 6960 + const BYTE *pbDetachedSignBlob, DWORD cbDetachedSignBlob, DWORD cToBeSigned, 6961 + const BYTE *rgpbToBeSigned[], DWORD rgcbToBeSigned[], 6962 + PCCERT_CONTEXT *ppSignerCert); 6963 + WINCRYPT32API LONG WINAPI CryptGetMessageSignerCount(DWORD dwMsgEncodingType, 6964 + const BYTE *pbSignedBlob, DWORD cbSignedBlob); 6965 + 6966 + WINCRYPT32API BOOL WINAPI CryptEncryptMessage(PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara, 6967 + DWORD cRecipientCert, PCCERT_CONTEXT rgpRecipientCert[], 6968 + const BYTE *pbToBeEncrypted, DWORD cbToBeEncrypted, BYTE *pbEncryptedBlob, 6969 + DWORD *pcbEncryptedBlob); 6970 + WINCRYPT32API BOOL WINAPI CryptDecryptMessage(PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, 6971 + const BYTE *pbEncryptedBlob, DWORD cbEncryptedBlob, BYTE *pbDecrypted, 6972 + DWORD *pcbDecrypted, PCCERT_CONTEXT *ppXchgCert); 6973 + 6974 + WINCRYPT32API BOOL WINAPI CryptSignAndEncryptMessage(PCRYPT_SIGN_MESSAGE_PARA pSignPara, 6975 + PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara, DWORD cRecipientCert, 6976 + PCCERT_CONTEXT rgpRecipientCert[], const BYTE *pbToBeSignedAndEncrypted, 6977 + DWORD cbToBeSignedAndEncrypted, BYTE *pbSignedAndEncryptedBlob, 6978 + DWORD *pcbSignedAndEncryptedBlob); 6979 + WINCRYPT32API BOOL WINAPI CryptDecryptAndVerifyMessageSignature( 6980 + PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, 6981 + PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, 6982 + const BYTE *pbEncryptedBlob, DWORD cbEncryptedBlob, BYTE *pbDecrypted, 6983 + DWORD *pcbDecrypted, PCCERT_CONTEXT *ppXchgCert, PCCERT_CONTEXT *ppSignerCert); 6984 + 6985 + WINCRYPT32API HCERTSTORE WINAPI CryptGetMessageCertificates(DWORD dwMsgAndCertEncodingType, 6986 + HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const BYTE *pbSignedBlob, 6987 + DWORD cbSignedBlob); 6988 + 6989 + WINCRYPT32API BOOL WINAPI CryptDecodeMessage(DWORD dwMsgTypeFlags, 6990 + PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, 6991 + PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, 6992 + const BYTE *pbEncodedBlob, DWORD cbEncodedBlob, DWORD dwPrevInnerContentType, 6993 + DWORD *pdwMsgType, DWORD *pdwInnerContentType, BYTE *pbDecoded, 6994 + DWORD *pcbDecoded, PCCERT_CONTEXT *ppXchgCert, PCCERT_CONTEXT *ppSignerCert); 6995 + 6996 + WINCRYPT32API BOOL WINAPI CryptHashMessage(PCRYPT_HASH_MESSAGE_PARA pHashPara, 6997 + BOOL fDetachedHash, DWORD cToBeHashed, const BYTE *rgpbToBeHashed[], 6998 + DWORD rgcbToBeHashed[], BYTE *pbHashedBlob, DWORD *pcbHashedBlob, 6999 + BYTE *pbComputedHash, DWORD *pcbComputedHash); 7000 + WINCRYPT32API BOOL WINAPI CryptVerifyMessageHash(PCRYPT_HASH_MESSAGE_PARA pHashPara, 7001 + BYTE *pbHashedBlob, DWORD cbHashedBlob, BYTE *pbToBeHashed, 7002 + DWORD *pcbToBeHashed, BYTE *pbComputedHash, DWORD *pcbComputedHash); 7003 + WINCRYPT32API BOOL WINAPI CryptVerifyDetachedMessageHash(PCRYPT_HASH_MESSAGE_PARA pHashPara, 7004 + BYTE *pbDetachedHashBlob, DWORD cbDetachedHashBlob, DWORD cToBeHashed, 7005 + const BYTE *rgpbToBeHashed[], DWORD rgcbToBeHashed[], BYTE *pbComputedHash, 7006 + DWORD *pcbComputedHash); 7007 + 7008 + /* PFX functions */ 7009 + WINCRYPT32API HCERTSTORE WINAPI PFXImportCertStore(CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, 7010 + DWORD dwFlags); 7011 + WINCRYPT32API BOOL WINAPI PFXIsPFXBlob(CRYPT_DATA_BLOB *pPFX); 7012 + WINCRYPT32API BOOL WINAPI PFXVerifyPassword(CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, 7013 + DWORD dwFlags); 7014 + WINCRYPT32API BOOL WINAPI PFXExportCertStoreEx(HCERTSTORE hStore, CRYPT_DATA_BLOB *pPFX, 7015 + LPCWSTR szPassword, void *pvReserved, DWORD dwFlags); 7016 + WINCRYPT32API BOOL WINAPI PFXExportCertStore(HCERTSTORE hStore, CRYPT_DATA_BLOB *pPFX, 7017 + LPCWSTR szPassword, DWORD dwFlags); 7018 + 7019 + /* cryptnet.dll functions */ 7020 + BOOL WINAPI CryptCancelAsyncRetrieval(HCRYPTASYNC hAsyncRetrieval); 7021 + 7022 + BOOL WINAPI CryptGetObjectUrl(LPCSTR pszUrlOid, LPVOID pvPara, DWORD dwFlags, 7023 + PCRYPT_URL_ARRAY pUrlArray, DWORD *pcbUrlArray, PCRYPT_URL_INFO pUrlInfo, 7024 + DWORD *pcbUrlInfo, LPVOID pvReserved); 7025 + 7026 + BOOL WINAPI CryptGetTimeValidObject(LPCSTR pszTimeValidOid, void *pvPara, 7027 + PCCERT_CONTEXT pIssuer, LPFILETIME pftValidFor, DWORD dwFlags, DWORD dwTimeout, 7028 + void **ppvObject, PCRYPT_CREDENTIALS pCredentials, void *pvReserved); 7029 + 7030 + BOOL WINAPI CryptFlushTimeValidObject(LPCSTR pszFlushTimeValidOid, void *pvPara, 7031 + PCCERT_CONTEXT pIssuer, DWORD dwFlags, void *pvReserved); 7032 + 7033 + BOOL WINAPI CryptInstallCancelRetrieval(PFN_CRYPT_CANCEL_RETRIEVAL pfnCancel, 7034 + const void *pvArg, DWORD dwFlags, void *pvReserved); 7035 + 7036 + BOOL WINAPI CryptUninstallCancelRetrieval(DWORD dwFlags, void *pvReserved); 7037 + 7038 + BOOL WINAPI CryptRetrieveObjectByUrlA(LPCSTR pszURL, LPCSTR pszObjectOid, 7039 + DWORD dwRetrievalFlags, DWORD dwTimeout, LPVOID *ppvObject, 7040 + HCRYPTASYNC hAsyncRetrieve, PCRYPT_CREDENTIALS pCredentials, LPVOID pvVerify, 7041 + PCRYPT_RETRIEVE_AUX_INFO pAuxInfo); 7042 + BOOL WINAPI CryptRetrieveObjectByUrlW(LPCWSTR pszURL, LPCSTR pszObjectOid, 7043 + DWORD dwRetrievalFlags, DWORD dwTimeout, LPVOID *ppvObject, 7044 + HCRYPTASYNC hAsyncRetrieve, PCRYPT_CREDENTIALS pCredentials, LPVOID pvVerify, 7045 + PCRYPT_RETRIEVE_AUX_INFO pAuxInfo); 7046 + #define CryptRetrieveObjectByUrl WINELIB_NAME_AW(CryptRetrieveObjectByUrl) 7047 + 7048 + /* Not found in crypt32.dll but in softpub.dll */ 7049 + HRESULT WINAPI FindCertsByIssuer(PCERT_CHAIN pCertChains, DWORD *pcbCertChains, 7050 + DWORD *pcCertChains, BYTE* pbEncodedIssuerName, DWORD cbEncodedIssuerName, 7051 + LPCWSTR pwszPurpose, DWORD dwKeySpec); 6153 7052 #endif 6154 7053 6155 7054 #ifdef __cplusplus
+451 -5
sdk/include/psdk/wingdi.h
··· 10 10 11 11 #ifdef _MSC_VER 12 12 #pragma warning(push) 13 - #pragma warning(disable:4201) 14 - #pragma warning(disable:4820) 13 + #pragma warning(disable:4201) // nameless struct or union 14 + #pragma warning(disable:4820) // padding after member 15 15 #endif 16 16 17 17 /* Get/SetSystemPaletteUse() values */ ··· 1398 1398 #define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004 1399 1399 #define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008 1400 1400 #define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010 1401 + #define DISPLAY_DEVICE_TS_COMPATIBLE 0x00200000 1402 + #define DISPLAY_DEVICE_MODESPRUNED 0x08000000 1403 + 1404 + #if (_WIN32_WINNT >= 0x500) 1401 1405 #define DISPLAY_DEVICE_REMOVABLE 0x00000020 1406 + #define DISPLAY_DEVICE_RDPUDD 0x01000000 1402 1407 #define DISPLAY_DEVICE_DISCONNECT 0x02000000 1403 1408 #define DISPLAY_DEVICE_REMOTE 0x04000000 1404 - #define DISPLAY_DEVICE_MODESPRUNED 0x08000000 1409 + 1410 + #define DISPLAY_DEVICE_ACTIVE 0x00000001 1411 + #define DISPLAY_DEVICE_ATTACHED 0x00000002 1412 + #endif // (_WIN32_WINNT >= 0x500) 1413 + 1414 + #if (_WIN32_WINNT >= 0x600) 1415 + #define DISPLAY_DEVICE_UNSAFE_MODES_ON 0x00080000 1416 + #endif // (_WIN32_WINNT >= 0x600) 1417 + 1418 + #if (_WIN32_WINNT >= 0x602) 1419 + #define DISPLAY_DEVICE_ACC_DRIVER 0x00000040 1420 + #endif // (_WIN32_WINNT >= 0x602) 1421 + 1422 + #if (WINVER >= 0x601) 1423 + #define DISPLAYCONFIG_PATH_ACTIVE 0x00000001 1424 + #define DISPLAYCONFIG_PATH_PREFERRED_UNSCALED 0x00000004 1425 + #define DISPLAYCONFIG_PATH_SUPPORT_VIRTUAL_MODE 0x00000008 1426 + #define DISPLAYCONFIG_PATH_BOOST_REFRESH_RATE 0x00000010 1427 + #define DISPLAYCONFIG_PATH_VALID_FLAGS 0x0000001D 1428 + #define DISPLAYCONFIG_PATH_MODE_IDX_INVALID 0xFFFFFFFF 1429 + #define DISPLAYCONFIG_PATH_CLONE_GROUP_INVALID 0x0000FFFF 1430 + #define DISPLAYCONFIG_PATH_DESKTOP_IMAGE_IDX_INVALID 0x0000FFFF 1431 + #define DISPLAYCONFIG_PATH_SOURCE_MODE_IDX_INVALID 0x0000FFFF 1432 + #define DISPLAYCONFIG_PATH_TARGET_MODE_IDX_INVALID 0x0000FFFF 1433 + #define DISPLAYCONFIG_SOURCE_IN_USE 0x00000001 1434 + #define DISPLAYCONFIG_TARGET_IN_USE 0x00000001 1435 + #define DISPLAYCONFIG_TARGET_FORCIBLE 0x00000002 1436 + #define DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_BOOT 0x00000004 1437 + #define DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_PATH 0x00000008 1438 + #define DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_SYSTEM 0x00000010 1439 + #define DISPLAYCONFIG_TARGET_IS_HMD 0x00000020 1440 + 1441 + #define QDC_ALL_PATHS 0x00000001 1442 + #define QDC_ONLY_ACTIVE_PATHS 0x00000002 1443 + #define QDC_DATABASE_CURRENT 0x00000004 1444 + #define QDC_VIRTUAL_MODE_AWARE 0x00000010 1445 + #define QDC_INCLUDE_HMD 0x00000020 1446 + #define QDC_VIRTUAL_REFRESH_RATE_AWARE 0x00000040 1447 + 1448 + #define SDC_TOPOLOGY_INTERNAL 0x00000001 1449 + #define SDC_TOPOLOGY_CLONE 0x00000002 1450 + #define SDC_TOPOLOGY_EXTEND 0x00000004 1451 + #define SDC_TOPOLOGY_EXTERNAL 0x00000008 1452 + #define SDC_TOPOLOGY_SUPPLIED 0x00000010 1453 + #define SDC_USE_DATABASE_CURRENT (SDC_TOPOLOGY_INTERNAL | SDC_TOPOLOGY_CLONE | SDC_TOPOLOGY_EXTEND | SDC_TOPOLOGY_EXTERNAL) 1454 + #define SDC_USE_SUPPLIED_DISPLAY_CONFIG 0x00000020 1455 + #define SDC_VALIDATE 0x00000040 1456 + #define SDC_APPLY 0x00000080 1457 + #define SDC_NO_OPTIMIZATION 0x00000100 1458 + #define SDC_SAVE_TO_DATABASE 0x00000200 1459 + #define SDC_ALLOW_CHANGES 0x00000400 1460 + #define SDC_PATH_PERSIST_IF_REQUIRED 0x00000800 1461 + #define SDC_FORCE_MODE_ENUMERATION 0x00001000 1462 + #define SDC_ALLOW_PATH_ORDER_CHANGES 0x00002000 1463 + #define SDC_VIRTUAL_MODE_AWARE 0x00008000 1464 + #define SDC_VIRTUAL_REFRESH_RATE_AWARE 0x00020000 1405 1465 1406 - #define DISPLAY_DEVICE_ACTIVE 0x00000001 1407 - #define DISPLAY_DEVICE_ATTACHED 0x00000002 1466 + typedef struct DISPLAYCONFIG_RATIONAL 1467 + { 1468 + UINT32 Numerator; 1469 + UINT32 Denominator; 1470 + } DISPLAYCONFIG_RATIONAL; 1471 + 1472 + typedef enum 1473 + { 1474 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER = -1, 1475 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15, 1476 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SVIDEO, 1477 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPOSITE_VIDEO, 1478 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPONENT_VIDEO, 1479 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI, 1480 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI, 1481 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS, 1482 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = 8, 1483 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI, 1484 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL, 1485 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED, 1486 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL, 1487 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED, 1488 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE, 1489 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST, 1490 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_WIRED, 1491 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_VIRTUAL, 1492 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_USB_TUNNEL, 1493 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = 0x80000000, 1494 + DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = 0xFFFFFFFF 1495 + } DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY; 1496 + 1497 + typedef enum 1498 + { 1499 + DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED, 1500 + DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE, 1501 + DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED, 1502 + DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST = DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED, 1503 + DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_LOWERFIELDFIRST = 3, 1504 + DISPLAYCONFIG_SCANLINE_ORDERING_FORCE_UINT32 = 0xFFFFFFFF 1505 + } DISPLAYCONFIG_SCANLINE_ORDERING; 1506 + 1507 + typedef struct DISPLAYCONFIG_2DREGION 1508 + { 1509 + UINT32 cx; 1510 + UINT32 cy; 1511 + } DISPLAYCONFIG_2DREGION; 1512 + 1513 + typedef struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO 1514 + { 1515 + UINT64 pixelRate; 1516 + DISPLAYCONFIG_RATIONAL hSyncFreq; 1517 + DISPLAYCONFIG_RATIONAL vSyncFreq; 1518 + DISPLAYCONFIG_2DREGION activeSize; 1519 + DISPLAYCONFIG_2DREGION totalSize; 1520 + union 1521 + { 1522 + struct 1523 + { 1524 + UINT32 videoStandard : 16; 1525 + UINT32 vSyncFreqDivider : 6; 1526 + UINT32 reserved : 10; 1527 + } AdditionalSignalInfo; 1528 + UINT32 videoStandard; 1529 + } DUMMYUNIONNAME; 1530 + DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering; 1531 + } DISPLAYCONFIG_VIDEO_SIGNAL_INFO; 1532 + 1533 + typedef enum 1534 + { 1535 + DISPLAYCONFIG_SCALING_IDENTITY = 1, 1536 + DISPLAYCONFIG_SCALING_CENTERED, 1537 + DISPLAYCONFIG_SCALING_STRETCHED, 1538 + DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX, 1539 + DISPLAYCONFIG_SCALING_CUSTOM, 1540 + DISPLAYCONFIG_SCALING_PREFERRED = 128, 1541 + DISPLAYCONFIG_SCALING_FORCE_UINT32 = 0xFFFFFFFF 1542 + } DISPLAYCONFIG_SCALING; 1543 + 1544 + typedef enum 1545 + { 1546 + DISPLAYCONFIG_ROTATION_IDENTITY = 1, 1547 + DISPLAYCONFIG_ROTATION_ROTATE90, 1548 + DISPLAYCONFIG_ROTATION_ROTATE180, 1549 + DISPLAYCONFIG_ROTATION_ROTATE270, 1550 + DISPLAYCONFIG_ROTATION_FORCE_UINT32 = 0xFFFFFFFF 1551 + } DISPLAYCONFIG_ROTATION; 1552 + 1553 + typedef enum 1554 + { 1555 + DISPLAYCONFIG_MODE_INFO_TYPE_SOURCE = 1, 1556 + DISPLAYCONFIG_MODE_INFO_TYPE_TARGET, 1557 + DISPLAYCONFIG_MODE_INFO_TYPE_DESKTOP_IMAGE, 1558 + DISPLAYCONFIG_MODE_INFO_TYPE_FORCE_UINT32 = 0xFFFFFFFF 1559 + } DISPLAYCONFIG_MODE_INFO_TYPE; 1560 + 1561 + typedef enum 1562 + { 1563 + DISPLAYCONFIG_PIXELFORMAT_8BPP = 1, 1564 + DISPLAYCONFIG_PIXELFORMAT_16BPP, 1565 + DISPLAYCONFIG_PIXELFORMAT_24BPP, 1566 + DISPLAYCONFIG_PIXELFORMAT_32BPP, 1567 + DISPLAYCONFIG_PIXELFORMAT_NONGDI, 1568 + DISPLAYCONFIG_PIXELFORMAT_FORCE_UINT32 = 0xFFFFFFFF 1569 + } DISPLAYCONFIG_PIXELFORMAT; 1570 + 1571 + typedef struct DISPLAYCONFIG_SOURCE_MODE 1572 + { 1573 + UINT32 width; 1574 + UINT32 height; 1575 + DISPLAYCONFIG_PIXELFORMAT pixelFormat; 1576 + POINTL position; 1577 + } DISPLAYCONFIG_SOURCE_MODE; 1578 + 1579 + typedef struct DISPLAYCONFIG_TARGET_MODE 1580 + { 1581 + DISPLAYCONFIG_VIDEO_SIGNAL_INFO targetVideoSignalInfo; 1582 + } DISPLAYCONFIG_TARGET_MODE; 1583 + 1584 + typedef struct DISPLAYCONFIG_DESKTOP_IMAGE_INFO 1585 + { 1586 + POINTL PathSourceSize; 1587 + RECTL DesktopImageRegion; 1588 + RECTL DesktopImageClip; 1589 + } DISPLAYCONFIG_DESKTOP_IMAGE_INFO; 1590 + 1591 + typedef struct DISPLAYCONFIG_MODE_INFO 1592 + { 1593 + DISPLAYCONFIG_MODE_INFO_TYPE infoType; 1594 + UINT32 id; 1595 + LUID adapterId; 1596 + union 1597 + { 1598 + DISPLAYCONFIG_TARGET_MODE targetMode; 1599 + DISPLAYCONFIG_SOURCE_MODE sourceMode; 1600 + DISPLAYCONFIG_DESKTOP_IMAGE_INFO desktopImageInfo; 1601 + } DUMMYUNIONNAME; 1602 + } DISPLAYCONFIG_MODE_INFO; 1603 + 1604 + typedef struct DISPLAYCONFIG_PATH_SOURCE_INFO 1605 + { 1606 + LUID adapterId; 1607 + UINT32 id; 1608 + union 1609 + { 1610 + UINT32 modeInfoIdx; 1611 + struct 1612 + { 1613 + UINT32 cloneGroupId : 16; 1614 + UINT32 sourceModeInfoIdx : 16; 1615 + } DUMMYSTRUCTNAME; 1616 + } DUMMYUNIONNAME; 1617 + UINT32 statusFlags; 1618 + } DISPLAYCONFIG_PATH_SOURCE_INFO; 1619 + 1620 + typedef struct DISPLAYCONFIG_PATH_TARGET_INFO 1621 + { 1622 + LUID adapterId; 1623 + UINT32 id; 1624 + union 1625 + { 1626 + UINT32 modeInfoIdx; 1627 + struct 1628 + { 1629 + UINT32 desktopModeInfoIdx : 16; 1630 + UINT32 targetModeInfoIdx : 16; 1631 + } DUMMYSTRUCTNAME; 1632 + } DUMMYUNIONNAME; 1633 + DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY outputTechnology; 1634 + DISPLAYCONFIG_ROTATION rotation; 1635 + DISPLAYCONFIG_SCALING scaling; 1636 + DISPLAYCONFIG_RATIONAL refreshRate; 1637 + DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering; 1638 + BOOL targetAvailable; 1639 + UINT32 statusFlags; 1640 + } DISPLAYCONFIG_PATH_TARGET_INFO; 1641 + 1642 + typedef struct DISPLAYCONFIG_PATH_INFO 1643 + { 1644 + DISPLAYCONFIG_PATH_SOURCE_INFO sourceInfo; 1645 + DISPLAYCONFIG_PATH_TARGET_INFO targetInfo; 1646 + UINT32 flags; 1647 + } DISPLAYCONFIG_PATH_INFO; 1648 + 1649 + typedef enum DISPLAYCONFIG_TOPOLOGY_ID 1650 + { 1651 + DISPLAYCONFIG_TOPOLOGY_INTERNAL = 1, 1652 + DISPLAYCONFIG_TOPOLOGY_CLONE = 2, 1653 + DISPLAYCONFIG_TOPOLOGY_EXTEND = 4, 1654 + DISPLAYCONFIG_TOPOLOGY_EXTERNAL = 8, 1655 + DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32 = 0xFFFFFFFF 1656 + } DISPLAYCONFIG_TOPOLOGY_ID; 1657 + 1658 + typedef enum 1659 + { 1660 + DISPLAYCONFIG_DEVICE_INFO_SET_SOURCE_DPI_SCALE = -4, // Needed for Wine's tests 1661 + DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_DPI_SCALE = -3, // Needed for Wine's tests 1662 + 1663 + DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME = 1, 1664 + DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME, 1665 + DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE, 1666 + DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME, 1667 + DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE, 1668 + DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE, 1669 + DISPLAYCONFIG_DEVICE_INFO_GET_SUPPORT_VIRTUAL_RESOLUTION, 1670 + DISPLAYCONFIG_DEVICE_INFO_SET_SUPPORT_VIRTUAL_RESOLUTION, 1671 + DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO, 1672 + DISPLAYCONFIG_DEVICE_INFO_SET_ADVANCED_COLOR_STATE, 1673 + DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL, 1674 + DISPLAYCONFIG_DEVICE_INFO_GET_MONITOR_SPECIALIZATION, 1675 + DISPLAYCONFIG_DEVICE_INFO_SET_MONITOR_SPECIALIZATION, 1676 + DISPLAYCONFIG_DEVICE_INFO_SET_RESERVED1, 1677 + DISPLAYCONFIG_DEVICE_INFO_GET_ADVANCED_COLOR_INFO_2, 1678 + DISPLAYCONFIG_DEVICE_INFO_SET_HDR_STATE, 1679 + DISPLAYCONFIG_DEVICE_INFO_SET_WCG_STATE, 1680 + DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32 = 0xFFFFFFFF 1681 + } DISPLAYCONFIG_DEVICE_INFO_TYPE; 1682 + 1683 + typedef struct DISPLAYCONFIG_DEVICE_INFO_HEADER 1684 + { 1685 + DISPLAYCONFIG_DEVICE_INFO_TYPE type; 1686 + UINT32 size; 1687 + LUID adapterId; 1688 + UINT32 id; 1689 + } DISPLAYCONFIG_DEVICE_INFO_HEADER; 1690 + 1691 + typedef struct DISPLAYCONFIG_SOURCE_DEVICE_NAME 1692 + { 1693 + DISPLAYCONFIG_DEVICE_INFO_HEADER header; 1694 + WCHAR viewGdiDeviceName[CCHDEVICENAME]; 1695 + } DISPLAYCONFIG_SOURCE_DEVICE_NAME; 1696 + 1697 + typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS 1698 + { 1699 + union 1700 + { 1701 + struct 1702 + { 1703 + UINT32 friendlyNameFromEdid : 1; 1704 + UINT32 friendlyNameForced : 1; 1705 + UINT32 edidIdsValid : 1; 1706 + UINT32 reserved : 29; 1707 + } DUMMYSTRUCTNAME; 1708 + UINT32 value; 1709 + } DUMMYUNIONNAME; 1710 + } DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS; 1711 + 1712 + typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME 1713 + { 1714 + DISPLAYCONFIG_DEVICE_INFO_HEADER header; 1715 + DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS flags; 1716 + DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY outputTechnology; 1717 + UINT16 edidManufactureId; 1718 + UINT16 edidProductCodeId; 1719 + UINT32 connectorInstance; 1720 + WCHAR monitorFriendlyDeviceName[64]; 1721 + WCHAR monitorDevicePath[128]; 1722 + } DISPLAYCONFIG_TARGET_DEVICE_NAME; 1723 + 1724 + typedef struct DISPLAYCONFIG_TARGET_PREFERRED_MODE 1725 + { 1726 + DISPLAYCONFIG_DEVICE_INFO_HEADER header; 1727 + UINT32 width; 1728 + UINT32 height; 1729 + DISPLAYCONFIG_TARGET_MODE targetMode; 1730 + } DISPLAYCONFIG_TARGET_PREFERRED_MODE; 1731 + 1732 + typedef struct DISPLAYCONFIG_ADAPTER_NAME 1733 + { 1734 + DISPLAYCONFIG_DEVICE_INFO_HEADER header; 1735 + WCHAR adapterDevicePath[128]; 1736 + } DISPLAYCONFIG_ADAPTER_NAME; 1737 + 1738 + typedef struct DISPLAYCONFIG_TARGET_BASE_TYPE 1739 + { 1740 + DISPLAYCONFIG_DEVICE_INFO_HEADER header; 1741 + DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY baseOutputTechnology; 1742 + } DISPLAYCONFIG_TARGET_BASE_TYPE; 1743 + 1744 + typedef struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE 1745 + { 1746 + DISPLAYCONFIG_DEVICE_INFO_HEADER header; 1747 + union 1748 + { 1749 + struct 1750 + { 1751 + UINT32 bootPersistenceOn : 1; 1752 + UINT32 reserved : 31; 1753 + } DUMMYSTRUCTNAME; 1754 + UINT32 value; 1755 + } DUMMYUNIONNAME; 1756 + } DISPLAYCONFIG_SET_TARGET_PERSISTENCE; 1757 + 1758 + typedef struct DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION 1759 + { 1760 + DISPLAYCONFIG_DEVICE_INFO_HEADER header; 1761 + union 1762 + { 1763 + struct 1764 + { 1765 + UINT32 disableMonitorVirtualResolution : 1; 1766 + UINT32 reserved : 31; 1767 + } DUMMYSTRUCTNAME; 1768 + UINT32 value; 1769 + } DUMMYSTRUCTNAME; 1770 + } DISPLAYCONFIG_SUPPORT_VIRTUAL_RESOLUTION; 1771 + 1772 + typedef enum _DISPLAYCONFIG_COLOR_ENCODING 1773 + { 1774 + DISPLAYCONFIG_COLOR_ENCODING_RGB, 1775 + DISPLAYCONFIG_COLOR_ENCODING_YCBCR444, 1776 + DISPLAYCONFIG_COLOR_ENCODING_YCBCR422, 1777 + DISPLAYCONFIG_COLOR_ENCODING_YCBCR420, 1778 + DISPLAYCONFIG_COLOR_ENCODING_INTENSITY, 1779 + DISPLAYCONFIG_COLOR_ENCODING_FORCE_UINT32 = 0xFFFFFFFF 1780 + } DISPLAYCONFIG_COLOR_ENCODING; 1781 + 1782 + typedef struct _DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO 1783 + { 1784 + DISPLAYCONFIG_DEVICE_INFO_HEADER header; 1785 + union 1786 + { 1787 + struct 1788 + { 1789 + UINT32 advancedColorSupported : 1; 1790 + UINT32 advancedColorEnabled : 1; 1791 + UINT32 wideColorEnforced : 1; 1792 + UINT32 advancedColorForceDisabled : 1; 1793 + UINT32 reserved :28; 1794 + } DUMMYSTRUCTNAME; 1795 + UINT32 value; 1796 + } DUMMYUNIONNAME; 1797 + DISPLAYCONFIG_COLOR_ENCODING colorEncoding; 1798 + UINT32 bitsPerColorChannel; 1799 + } DISPLAYCONFIG_GET_ADVANCED_COLOR_INFO; 1800 + 1801 + typedef struct _DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE 1802 + { 1803 + DISPLAYCONFIG_DEVICE_INFO_HEADER header; 1804 + union 1805 + { 1806 + struct 1807 + { 1808 + UINT32 enableAdvancedColor :1; 1809 + UINT32 reserved :31; 1810 + } DUMMYSTRUCTNAME; 1811 + UINT32 value; 1812 + }DUMMYUNIONNAME; 1813 + } DISPLAYCONFIG_SET_ADVANCED_COLOR_STATE; 1814 + 1815 + typedef struct _DISPLAYCONFIG_SDR_WHITE_LEVEL 1816 + { 1817 + DISPLAYCONFIG_DEVICE_INFO_HEADER header; 1818 + ULONG SDRWhiteLevel; 1819 + } DISPLAYCONFIG_SDR_WHITE_LEVEL; 1820 + 1821 + typedef struct _DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION 1822 + { 1823 + DISPLAYCONFIG_DEVICE_INFO_HEADER header; 1824 + union 1825 + { 1826 + struct 1827 + { 1828 + UINT32 isSpecializationEnabled : 1; 1829 + UINT32 isSpecializationAvailableForMonitor : 1; 1830 + UINT32 isSpecializationAvailableForSystem : 1; 1831 + UINT32 reserved : 29; 1832 + } DUMMYSTRUCTNAME; 1833 + UINT32 value; 1834 + } DUMMYUNIONNAME; 1835 + } DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION; 1836 + 1837 + typedef struct _DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION 1838 + { 1839 + DISPLAYCONFIG_DEVICE_INFO_HEADER header; 1840 + union 1841 + { 1842 + struct 1843 + { 1844 + UINT32 isSpecializationEnabled : 1; 1845 + UINT32 reserved : 31; 1846 + } DUMMYSTRUCTNAME; 1847 + UINT32 value; 1848 + } DUMMYUNIONNAME; 1849 + GUID specializationType; 1850 + GUID specializationSubType; 1851 + WCHAR specializationApplicationName[128]; 1852 + } DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION; 1853 + #endif // (WINVER >= 0x601) 1408 1854 1409 1855 #ifndef RC_INVOKED 1410 1856 typedef struct _ABC {
+28 -2
sdk/include/psdk/winuser.h
··· 7 7 8 8 #ifdef _MSC_VER 9 9 #pragma warning(push) 10 - #pragma warning(disable:4201) 11 - #pragma warning(disable:4820) 10 + #pragma warning(disable:4201) // nameless struct or union 11 + #pragma warning(disable:4820) // padding after member 12 12 #endif 13 13 14 14 #if !defined(_USER32_) ··· 1586 1586 #define FE_FONTSMOOTHINGORIENTATIONRGB 0x0001 1587 1587 #endif 1588 1588 #endif 1589 + #if (NTDDI_VERSION >= NTDDI_WIN10_RS4) 1590 + #define SPI_GETHANDEDNESS 0x2024 1591 + #define SPI_SETHANDEDNESS 0x2025 1592 + typedef enum tagHANDEDNESS 1593 + { 1594 + HANDEDNESS_LEFT, 1595 + HANDEDNESS_RIGHT 1596 + } HANDEDNESS, *PHANDEDNESS; 1597 + #endif // (NTDDI_VERSION >= NTDDI_WIN10_RS4) 1589 1598 1590 1599 #define SPIF_UPDATEINIFILE 1 1591 1600 #define SPIF_SENDCHANGE 2 ··· 1931 1940 1932 1941 #if (_WIN32_WINNT >= 0x0501) 1933 1942 #define WM_THEMECHANGED 794 1943 + #define WM_CLIPBOARDUPDATE 797 1934 1944 #endif 1935 1945 1936 1946 #define BM_CLICK 245 ··· 2060 2070 #define LB_GETITEMDATA 409 2061 2071 #define LB_GETITEMHEIGHT 417 2062 2072 #define LB_GETITEMRECT 408 2073 + #if (_WIN32_WINNT >= 0x501) 2063 2074 #define LB_GETLISTBOXINFO 434 2075 + #define LB_MSGMAX 435 2076 + #elif (WINVER >= 0x400) 2077 + #define LB_MSGMAX 432 2078 + #else 2079 + #define LB_MSGMAX 424 2080 + #endif /* (_WIN32_WINNT >= 0x501) */ 2064 2081 #define LB_GETLOCALE 422 2065 2082 #define LB_GETSEL 391 2066 2083 #define LB_GETSELCOUNT 400 ··· 2625 2642 #define EC_LEFTMARGIN 1 2626 2643 #define EC_RIGHTMARGIN 2 2627 2644 #define EC_USEFONTINFO 0xffff 2645 + #if (WINVER >= 0x500) 2646 + #define EMSIS_COMPOSITIONSTRING 1 2647 + #define EIMES_GETCOMPSTRATONCE 1 2648 + #define EIMES_CANCELCOMPSTRINFOCUS 2 2649 + #define EIMES_COMPLETECOMPSTRKILLFOCUS 4 2650 + #endif /* (WINVER >= 0x500) */ 2628 2651 #define DC_HASDEFID 0x534B 2629 2652 #define DLGC_WANTARROWS 1 2630 2653 #define DLGC_WANTTAB 2 ··· 2675 2698 #define FLASHW_TIMERNOFG 12 2676 2699 #endif /* (WINVER >= 0x0500) */ 2677 2700 #define CURSOR_SHOWING 0x00000001 2701 + #if (WINVER >= 0x602) 2702 + #define CURSOR_SUPPRESSED 0x00000002 2703 + #endif /* (WINVER >= 0x602) */ 2678 2704 #define WS_ACTIVECAPTION 0x00000001 2679 2705 #if (_WIN32_WINNT >= 0x0400) 2680 2706 #define INPUT_MOUSE 0
+2661 -310
sdk/include/reactos/wine/winternl.h
··· 40 40 SynchronizationEvent 41 41 } EVENT_TYPE, *PEVENT_TYPE; 42 42 #define FSCTL_PIPE_LISTEN CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS) 43 + 44 + #define DUPLICATE_SAME_ATTRIBUTES 0x00000004 45 + 46 + #define THREAD_SET_LIMITED_INFORMATION 0x0400 47 + 48 + #ifndef _NTDEF_ 49 + typedef struct _RTL_BALANCED_NODE 50 + { 51 + union 52 + { 53 + struct _RTL_BALANCED_NODE *Children[2]; 54 + struct 55 + { 56 + struct _RTL_BALANCED_NODE *Left; 57 + struct _RTL_BALANCED_NODE *Right; 58 + } DUMMYSTRUCTNAME; 59 + } DUMMYUNIONNAME; 60 + #define RTL_BALANCED_NODE_RESERVED_PARENT_MASK 3 61 + union 62 + { 63 + UCHAR Red : 1; 64 + UCHAR Balance : 2; 65 + ULONG_PTR ParentValue; 66 + } DUMMYUNIONNAME2; 67 + } RTL_BALANCED_NODE, *PRTL_BALANCED_NODE; 68 + #endif // _NTDEF_ 69 + 70 + typedef struct _CONTEXT_CHUNK 71 + { 72 + LONG Offset; 73 + ULONG Length; 74 + } CONTEXT_CHUNK, *PCONTEXT_CHUNK; 75 + 76 + typedef struct _CONTEXT_EX 77 + { 78 + CONTEXT_CHUNK All; 79 + CONTEXT_CHUNK Legacy; 80 + CONTEXT_CHUNK XState; 81 + #ifdef _WIN64 82 + ULONG64 align; 83 + #endif 84 + } CONTEXT_EX, *PCONTEXT_EX; 85 + 86 + typedef struct _RTL_RB_TREE 87 + { 88 + RTL_BALANCED_NODE *root; 89 + RTL_BALANCED_NODE *min; 90 + } RTL_RB_TREE, *PRTL_RB_TREE; 91 + 43 92 #endif /* __REACTOS__ */ 44 93 45 94 /********************************************************************** ··· 92 141 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */ 93 142 typedef struct _FILETIME 94 143 { 95 - #ifdef WORDS_BIGENDIAN 96 - DWORD dwHighDateTime; 97 - DWORD dwLowDateTime; 98 - #else 99 144 DWORD dwLowDateTime; 100 145 DWORD dwHighDateTime; 101 - #endif 102 146 } FILETIME, *PFILETIME, *LPFILETIME; 103 147 #endif /* _FILETIME_ */ 104 148 105 - #if 0 106 149 /* 107 150 * RTL_SYSTEM_TIME and RTL_TIME_ZONE_INFORMATION are the same as 108 151 * the SYSTEMTIME and TIME_ZONE_INFORMATION structures defined ··· 121 164 WORD wSecond; 122 165 WORD wMilliseconds; 123 166 } RTL_SYSTEM_TIME, *PRTL_SYSTEM_TIME; 124 - #endif 125 167 168 + #ifdef __REACTOS__ 126 169 typedef struct _TIME_FIELDS { 127 170 CSHORT Year; 128 171 CSHORT Month; ··· 133 176 CSHORT Milliseconds; 134 177 CSHORT Weekday; 135 178 } TIME_FIELDS, *PTIME_FIELDS; 179 + #endif // __REACTOS__ 136 180 137 181 typedef struct _RTL_TIME_ZONE_INFORMATION { 138 182 LONG Bias; 139 183 WCHAR StandardName[32]; 184 + #ifdef __REACTOS__ 140 185 TIME_FIELDS StandardDate; 186 + #else 187 + RTL_SYSTEM_TIME StandardDate; 188 + #endif 141 189 LONG StandardBias; 142 190 WCHAR DaylightName[32]; 191 + #ifdef __REACTOS__ 143 192 TIME_FIELDS DaylightDate; 193 + #else 194 + RTL_SYSTEM_TIME DaylightDate; 195 + #endif 144 196 LONG DaylightBias; 145 197 } RTL_TIME_ZONE_INFORMATION, *PRTL_TIME_ZONE_INFORMATION; 146 198 ··· 148 200 { 149 201 LONG Bias; 150 202 WCHAR StandardName[32]; 203 + #ifdef __REACTOS__ 151 204 TIME_FIELDS StandardDate; 205 + #else 206 + RTL_SYSTEM_TIME StandardDate; 207 + #endif 152 208 LONG StandardBias; 153 209 WCHAR DaylightName[32]; 210 + #ifdef __REACTOS__ 154 211 TIME_FIELDS DaylightDate; 212 + #else 213 + RTL_SYSTEM_TIME DaylightDate; 214 + #endif 155 215 LONG DaylightBias; 156 216 WCHAR TimeZoneKeyName[128]; 157 217 BOOLEAN DynamicDaylightTimeDisabled; ··· 176 236 ULONG TimeStamp; 177 237 UNICODE_STRING DosPath; 178 238 } RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR; 239 + 240 + typedef struct _RTL_RELATIVE_NAME 241 + { 242 + UNICODE_STRING RelativeName; 243 + HANDLE ContainerDirectory; 244 + void *CurDirRef; 245 + } RTL_RELATIVE_NAME, *PRTL_RELATIVE_NAME; 179 246 180 247 typedef struct tagRTL_BITMAP { 181 248 ULONG SizeOfBitMap; /* Number of bits in the bitmap */ ··· 221 288 UNICODE_STRING ShellInfo; 222 289 UNICODE_STRING RuntimeInfo; 223 290 RTL_DRIVE_LETTER_CURDIR DLCurrentDirectory[0x20]; 291 + ULONG_PTR EnvironmentSize; 292 + ULONG_PTR EnvironmentVersion; 293 + PVOID PackageDependencyData; 294 + ULONG ProcessGroupId; 295 + ULONG LoaderThreads; 224 296 } RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS; 225 297 226 298 /* value for Flags field (FIXME: not the correct name) */ ··· 235 307 LIST_ENTRY InMemoryOrderModuleList; 236 308 LIST_ENTRY InInitializationOrderModuleList; 237 309 PVOID EntryInProgress; 310 + BOOLEAN ShutdownInProgress; 311 + HANDLE ShutdownThreadId; 238 312 } PEB_LDR_DATA, *PPEB_LDR_DATA; 239 313 240 314 typedef struct _GDI_TEB_BATCH ··· 253 327 254 328 typedef struct _ACTIVATION_CONTEXT_STACK 255 329 { 330 + RTL_ACTIVATION_CONTEXT_STACK_FRAME *ActiveFrame; 331 + LIST_ENTRY FrameListCache; 256 332 ULONG Flags; 257 333 ULONG NextCookieSequenceNumber; 258 - RTL_ACTIVATION_CONTEXT_STACK_FRAME *ActiveFrame; 259 - LIST_ENTRY FrameListCache; 334 + ULONG_PTR StackId; 260 335 } ACTIVATION_CONTEXT_STACK, *PACTIVATION_CONTEXT_STACK; 261 336 262 337 typedef struct _TEB_ACTIVE_FRAME_CONTEXT ··· 284 359 void *ExtensionIdentifier; 285 360 } TEB_ACTIVE_FRAME_EX, *PTEB_ACTIVE_FRAME_EX; 286 361 362 + typedef struct _FLS_CALLBACK 363 + { 364 + void *unknown; 365 + PFLS_CALLBACK_FUNCTION callback; /* ~0 if NULL callback is set, NULL if FLS index is free. */ 366 + } FLS_CALLBACK, *PFLS_CALLBACK; 367 + 368 + typedef struct _FLS_INFO_CHUNK 369 + { 370 + ULONG count; /* number of allocated FLS indexes in the chunk. */ 371 + FLS_CALLBACK callbacks[1]; /* the size is 0x10 for chunk 0 and is twice as 372 + * the previous chunk size for the rest. */ 373 + } FLS_INFO_CHUNK, *PFLS_INFO_CHUNK; 374 + 375 + typedef struct _GLOBAL_FLS_DATA 376 + { 377 + FLS_INFO_CHUNK *fls_callback_chunks[8]; 378 + LIST_ENTRY fls_list_head; 379 + ULONG fls_high_index; 380 + } GLOBAL_FLS_DATA, *PGLOBAL_FLS_DATA; 381 + 382 + typedef struct _TEB_FLS_DATA 383 + { 384 + LIST_ENTRY fls_list_entry; 385 + void **fls_data_chunks[8]; 386 + } TEB_FLS_DATA, *PTEB_FLS_DATA; 387 + 388 + /* undocumented layout of WOW64INFO.CrossProcessWorkList and CHPEV2_PROCESS_INFO.CrossProcessWorkList */ 389 + 390 + typedef struct 391 + { 392 + UINT next; 393 + UINT id; 394 + ULONGLONG addr; 395 + ULONGLONG size; 396 + UINT args[4]; 397 + } CROSS_PROCESS_WORK_ENTRY; 398 + 399 + typedef union 400 + { 401 + struct 402 + { 403 + UINT first; 404 + UINT counter; 405 + }; 406 + volatile LONGLONG hdr; 407 + } CROSS_PROCESS_WORK_HDR; 408 + 409 + typedef struct 410 + { 411 + CROSS_PROCESS_WORK_HDR free_list; 412 + CROSS_PROCESS_WORK_HDR work_list; 413 + ULONGLONG unknown[4]; 414 + CROSS_PROCESS_WORK_ENTRY entries[1]; 415 + } CROSS_PROCESS_WORK_LIST; 416 + 417 + typedef enum 418 + { 419 + CrossProcessPreVirtualAlloc = 0, 420 + CrossProcessPostVirtualAlloc = 1, 421 + CrossProcessPreVirtualFree = 2, 422 + CrossProcessPostVirtualFree = 3, 423 + CrossProcessPreVirtualProtect = 4, 424 + CrossProcessPostVirtualProtect = 5, 425 + CrossProcessFlushCache = 6, 426 + CrossProcessFlushCacheHeavy = 7, 427 + CrossProcessMemoryWrite = 8, 428 + } CROSS_PROCESS_NOTIFICATION; 429 + 430 + #define CROSS_PROCESS_LIST_FLUSH 0x80000000 431 + #define CROSS_PROCESS_LIST_ENTRY(list,pos) \ 432 + ((CROSS_PROCESS_WORK_ENTRY *)((char *)(list) + ((pos) & ~CROSS_PROCESS_LIST_FLUSH))) 433 + 434 + typedef struct _CHPE_V2_CPU_AREA_INFO 435 + { 436 + BOOLEAN InSimulation; /* 000 */ 437 + BOOLEAN InSyscallCallback; /* 001 */ 438 + ULONG64 EmulatorStackBase; /* 008 */ 439 + ULONG64 EmulatorStackLimit; /* 010 */ 440 + ARM64EC_NT_CONTEXT *ContextAmd64; /* 018 */ 441 + ULONG *SuspendDoorbell; /* 020 */ 442 + ULONG64 LoadingModuleModflag; /* 028 */ 443 + void *EmulatorData[4]; /* 030 */ 444 + ULONG64 EmulatorDataInline; /* 050 */ 445 + } CHPE_V2_CPU_AREA_INFO, *PCHPE_V2_CPU_AREA_INFO; 446 + 447 + /* equivalent of WOW64INFO, stored after the 64-bit PEB */ 448 + typedef struct _CHPEV2_PROCESS_INFO 449 + { 450 + ULONG Wow64ExecuteFlags; /* 000 */ 451 + USHORT NativeMachineType; /* 004 */ 452 + USHORT EmulatedMachineType; /* 006 */ 453 + HANDLE SectionHandle; /* 008 */ 454 + CROSS_PROCESS_WORK_LIST *CrossProcessWorkList; /* 010 */ 455 + void *unknown; /* 018 */ 456 + } CHPEV2_PROCESS_INFO, *PCHPEV2_PROCESS_INFO; 457 + 287 458 #define TEB_ACTIVE_FRAME_CONTEXT_FLAG_EXTENDED 0x00000001 288 459 #define TEB_ACTIVE_FRAME_FLAG_EXTENDED 0x00000001 460 + 461 + typedef NTSTATUS (WINAPI *KERNEL_CALLBACK_PROC)(void *, ULONG); /* FIXME: not the correct name */ 289 462 290 463 /*********************************************************************** 291 464 * PEB data structure ··· 295 468 BOOLEAN InheritedAddressSpace; /* 000/000 */ 296 469 BOOLEAN ReadImageFileExecOptions; /* 001/001 */ 297 470 BOOLEAN BeingDebugged; /* 002/002 */ 298 - BOOLEAN SpareBool; /* 003/003 */ 471 + UCHAR ImageUsedLargePages : 1; /* 003/003 */ 472 + UCHAR IsProtectedProcess : 1; 473 + UCHAR IsImageDynamicallyRelocated : 1; 474 + UCHAR SkipPatchingUser32Forwarders : 1; 475 + UCHAR IsPackagedProcess : 1; 476 + UCHAR IsAppContainer: 1; 477 + UCHAR IsProtectedProcessLight : 1; 478 + UCHAR IsLongPathAwareProcess : 1; 299 479 HANDLE Mutant; /* 004/008 */ 300 480 HMODULE ImageBaseAddress; /* 008/010 */ 301 481 PPEB_LDR_DATA LdrData; /* 00c/018 */ ··· 303 483 PVOID SubSystemData; /* 014/028 */ 304 484 HANDLE ProcessHeap; /* 018/030 */ 305 485 PRTL_CRITICAL_SECTION FastPebLock; /* 01c/038 */ 306 - PVOID /*PPEBLOCKROUTINE*/ FastPebLockRoutine; /* 020/040 */ 307 - PVOID /*PPEBLOCKROUTINE*/ FastPebUnlockRoutine; /* 024/048 */ 308 - ULONG EnvironmentUpdateCount; /* 028/050 */ 309 - PVOID KernelCallbackTable; /* 02c/058 */ 310 - ULONG Reserved[2]; /* 030/060 */ 311 - PVOID /*PPEB_FREE_BLOCK*/ FreeList; /* 038/068 */ 486 + PVOID AtlThunkSListPtr; /* 020/040 */ 487 + PVOID IFEOKey; /* 024/048 */ 488 + ULONG ProcessInJob : 1; /* 028/050 */ 489 + ULONG ProcessInitializing : 1; 490 + ULONG ProcessUsingVEH : 1; 491 + ULONG ProcessUsingVCH : 1; 492 + ULONG ProcessUsingFTH : 1; 493 + ULONG ProcessPreviouslyThrottled : 1; 494 + ULONG ProcessCurrentlyThrottled : 1; 495 + ULONG ProcessImagesHotPatched : 1; 496 + ULONG ReservedBits0 : 24; 497 + KERNEL_CALLBACK_PROC *KernelCallbackTable; /* 02c/058 */ 498 + ULONG Reserved; /* 030/060 */ 499 + ULONG AtlThunkSListPtr32; /* 034/064 */ 500 + PVOID ApiSetMap; /* 038/068 */ 312 501 ULONG TlsExpansionCounter; /* 03c/070 */ 313 502 PRTL_BITMAP TlsBitmap; /* 040/078 */ 314 503 ULONG TlsBitmapBits[2]; /* 044/080 */ 315 504 PVOID ReadOnlySharedMemoryBase; /* 04c/088 */ 316 - PVOID ReadOnlySharedMemoryHeap; /* 050/090 */ 505 + PVOID SharedData; /* 050/090 */ 317 506 PVOID *ReadOnlyStaticServerData; /* 054/098 */ 318 507 PVOID AnsiCodePageData; /* 058/0a0 */ 319 508 PVOID OemCodePageData; /* 05c/0a8 */ ··· 339 528 ULONG ImageSubSystem; /* 0b4/128 */ 340 529 ULONG ImageSubSystemMajorVersion; /* 0b8/12c */ 341 530 ULONG ImageSubSystemMinorVersion; /* 0bc/130 */ 342 - ULONG ImageProcessAffinityMask; /* 0c0/134 */ 343 - HANDLE GdiHandleBuffer[28]; /* 0c4/138 */ 344 - ULONG unknown[6]; /* 134/218 */ 531 + KAFFINITY ActiveProcessAffinityMask; /* 0c0/138 */ 532 + #ifdef _WIN64 533 + ULONG GdiHandleBuffer[60]; /* /140 */ 534 + #else 535 + ULONG GdiHandleBuffer[34]; /* 0c4/ */ 536 + #endif 345 537 PVOID PostProcessInitRoutine; /* 14c/230 */ 346 538 PRTL_BITMAP TlsExpansionBitmap; /* 150/238 */ 347 539 ULONG TlsExpansionBitmapBits[32]; /* 154/240 */ ··· 358 550 SIZE_T MinimumStackCommit; /* 208/318 */ 359 551 PVOID *FlsCallback; /* 20c/320 */ 360 552 LIST_ENTRY FlsListHead; /* 210/328 */ 361 - PRTL_BITMAP FlsBitmap; /* 218/338 */ 553 + union 554 + { 555 + PRTL_BITMAP FlsBitmap; /* 218/338 */ 556 + #ifdef _WIN64 557 + CHPEV2_PROCESS_INFO *ChpeV2ProcessInfo; /* /338 */ 558 + #endif 559 + }; 362 560 ULONG FlsBitmapBits[4]; /* 21c/340 */ 561 + ULONG FlsHighIndex; /* 22c/350 */ 562 + PVOID WerRegistrationData; /* 230/358 */ 563 + PVOID WerShipAssertPtr; /* 234/360 */ 564 + PVOID EcCodeBitMap; /* 238/368 */ 565 + PVOID pImageHeaderHash; /* 23c/370 */ 566 + ULONG HeapTracingEnabled : 1; /* 240/378 */ 567 + ULONG CritSecTracingEnabled : 1; 568 + ULONG LibLoaderTracingEnabled : 1; 569 + ULONG SpareTracingBits : 29; 570 + ULONGLONG CsrServerReadOnlySharedMemoryBase; /* 248/380 */ 571 + ULONG TppWorkerpListLock; /* 250/388 */ 572 + LIST_ENTRY TppWorkerpList; /* 254/390 */ 573 + PVOID WaitOnAddressHashTable [0x80]; /* 25c/3a0 */ 574 + PVOID TelemetryCoverageHeader; /* 45c/7a0 */ 575 + ULONG CloudFileFlags; /* 460/7a8 */ 576 + ULONG CloudFileDiagFlags; /* 464/7ac */ 577 + CHAR PlaceholderCompatibilityMode; /* 468/7b0 */ 578 + CHAR PlaceholderCompatibilityModeReserved[7]; /* 469/7b1 */ 579 + PVOID LeapSecondData; /* 470/7b8 */ 580 + ULONG LeapSecondFlags; /* 474/7c0 */ 581 + ULONG NtGlobalFlag2; /* 478/7c4 */ 363 582 } PEB, *PPEB; 364 583 365 584 ··· 378 597 ULONG CountOfOwnedCriticalSections; /* 038/006c */ 379 598 PVOID CsrClientThread; /* 03c/0070 */ 380 599 PVOID Win32ThreadInfo; /* 040/0078 */ 381 - ULONG Win32ClientInfo[31]; /* 044/0080 used for user32 private data in Wine */ 382 - PVOID WOW32Reserved; /* 0c0/0100 used for ntdll syscall thunks */ 600 + ULONG User32Reserved[26]; /* 044/0080 */ 601 + ULONG UserReserved[5]; /* 0ac/00e8 */ 602 + PVOID WOW32Reserved; /* 0c0/0100 */ 383 603 ULONG CurrentLocale; /* 0c4/0108 */ 384 604 ULONG FpSoftwareStatusRegister; /* 0c8/010c */ 385 - PVOID SystemReserved1[54]; /* 0cc/0110 used for krnl386.exe16 private data in Wine */ 605 + PVOID ReservedForDebuggerInstrumentation[16]; /* 0cc/0110 */ 606 + #ifdef _WIN64 607 + PVOID SystemReserved1[30]; /* /0190 */ 608 + #else 609 + PVOID SystemReserved1[26]; /* 10c/ used for krnl386 private data in Wine */ 610 + #endif 611 + char PlaceholderCompatibilityMode; /* 174/0280 */ 612 + BOOLEAN PlaceholderHydrationAlwaysExplicit;/* 175/0281 */ 613 + char PlaceholderReserved[10]; /* 176/0282 */ 614 + DWORD ProxiedProcessId; /* 180/028c */ 615 + ACTIVATION_CONTEXT_STACK ActivationContextStack; /* 184/0290 */ 616 + UCHAR WorkingOnBehalfOfTicket[8]; /* 19c/02b8 */ 386 617 LONG ExceptionCode; /* 1a4/02c0 */ 387 - ACTIVATION_CONTEXT_STACK ActivationContextStack; /* 1a8/02c8 */ 388 - BYTE SpareBytes1[24]; /* 1bc/02e8 */ 389 - PVOID SystemReserved2[10]; /* 1d4/0300 used for ntdll platform-specific private data in Wine */ 390 - GDI_TEB_BATCH GdiTebBatch; /* 1fc/0350 used for ntdll private data in Wine */ 391 - HANDLE gdiRgn; /* 6dc/0838 */ 392 - HANDLE gdiPen; /* 6e0/0840 */ 393 - HANDLE gdiBrush; /* 6e4/0848 */ 394 - CLIENT_ID RealClientId; /* 6e8/0850 */ 395 - HANDLE GdiCachedProcessHandle; /* 6f0/0860 */ 396 - ULONG GdiClientPID; /* 6f4/0868 */ 397 - ULONG GdiClientTID; /* 6f8/086c */ 398 - PVOID GdiThreadLocaleInfo; /* 6fc/0870 */ 399 - ULONG UserReserved[5]; /* 700/0878 */ 400 - PVOID glDispatchTable[280]; /* 714/0890 */ 401 - PVOID glReserved1[26]; /* b74/1150 */ 618 + ACTIVATION_CONTEXT_STACK *ActivationContextStackPointer; /* 1a8/02c8 */ 619 + ULONG_PTR InstrumentationCallbackSp; /* 1ac/02d0 */ 620 + ULONG_PTR InstrumentationCallbackPreviousPc; /* 1b0/02d8 */ 621 + ULONG_PTR InstrumentationCallbackPreviousSp; /* 1b4/02e0 */ 622 + #ifdef _WIN64 623 + ULONG TxFsContext; /* /02e8 */ 624 + BOOLEAN InstrumentationCallbackDisabled; /* /02ec */ 625 + BOOLEAN UnalignedLoadStoreExceptions; /* /02ed */ 626 + #else 627 + BOOLEAN InstrumentationCallbackDisabled; /* 1b8/ */ 628 + BYTE SpareBytes1[23]; /* 1b9/ */ 629 + ULONG TxFsContext; /* 1d0/ */ 630 + #endif 631 + GDI_TEB_BATCH GdiTebBatch; /* 1d4/02f0 used for ntdll private data in Wine */ 632 + CLIENT_ID RealClientId; /* 6b4/07d8 */ 633 + HANDLE GdiCachedProcessHandle; /* 6bc/07e8 */ 634 + ULONG GdiClientPID; /* 6c0/07f0 */ 635 + ULONG GdiClientTID; /* 6c4/07f4 */ 636 + PVOID GdiThreadLocaleInfo; /* 6c8/07f8 */ 637 + ULONG_PTR Win32ClientInfo[62]; /* 6cc/0800 used for user32 private data in Wine */ 638 + PVOID glDispatchTable[233]; /* 7c4/09f0 */ 639 + PVOID glReserved1[29]; /* b68/1138 */ 402 640 PVOID glReserved2; /* bdc/1220 */ 403 641 PVOID glSectionInfo; /* be0/1228 */ 404 642 PVOID glSection; /* be4/1230 */ ··· 406 644 PVOID glCurrentRC; /* bec/1240 */ 407 645 PVOID glContext; /* bf0/1248 */ 408 646 ULONG LastStatusValue; /* bf4/1250 */ 409 - UNICODE_STRING StaticUnicodeString; /* bf8/1258 used by advapi32 */ 410 - WCHAR StaticUnicodeBuffer[261]; /* c00/1268 used by advapi32 */ 647 + UNICODE_STRING StaticUnicodeString; /* bf8/1258 */ 648 + WCHAR StaticUnicodeBuffer[261]; /* c00/1268 */ 411 649 PVOID DeallocationStack; /* e0c/1478 */ 412 650 PVOID TlsSlots[64]; /* e10/1480 */ 413 651 LIST_ENTRY TlsLinks; /* f10/1680 */ 414 652 PVOID Vdm; /* f18/1690 */ 415 653 PVOID ReservedForNtRpc; /* f1c/1698 */ 416 654 PVOID DbgSsReserved[2]; /* f20/16a0 */ 417 - ULONG HardErrorDisabled; /* f28/16b0 */ 418 - PVOID Instrumentation[16]; /* f2c/16b8 */ 655 + ULONG HardErrorMode; /* f28/16b0 */ 656 + #ifdef _WIN64 657 + PVOID Instrumentation[11]; /* /16b8 */ 658 + #else 659 + PVOID Instrumentation[9]; /* f2c/ */ 660 + #endif 661 + GUID ActivityId; /* f50/1710 */ 662 + PVOID SubProcessTag; /* f60/1720 */ 663 + PVOID PerflibData; /* f64/1728 */ 664 + PVOID EtwTraceData; /* f68/1730 */ 419 665 PVOID WinSockData; /* f6c/1738 */ 420 666 ULONG GdiBatchCount; /* f70/1740 */ 421 - ULONG Spare2; /* f74/1744 */ 422 - PVOID Spare3; /* f78/1748 used for fakedll thunks */ 423 - PVOID Spare4; /* f7c/1750 */ 667 + ULONG IdealProcessorValue; /* f74/1744 */ 668 + ULONG GuaranteedStackBytes; /* f78/1748 */ 669 + PVOID ReservedForPerf; /* f7c/1750 */ 424 670 PVOID ReservedForOle; /* f80/1758 */ 425 671 ULONG WaitingOnLoaderLock; /* f84/1760 */ 426 - PVOID Reserved5[3]; /* f88/1768 used for x86_64 OSX and wineserver shared memory */ 672 + PVOID SavedPriorityState; /* f88/1768 */ 673 + ULONG_PTR ReservedForCodeCoverage; /* f8c/1770 */ 674 + PVOID ThreadPoolData; /* f90/1778 */ 427 675 PVOID *TlsExpansionSlots; /* f94/1780 */ 428 676 #ifdef _WIN64 429 - PVOID DeallocationBStore; /* /1788 */ 677 + union { 678 + PVOID DeallocationBStore; /* /1788 */ 679 + CHPE_V2_CPU_AREA_INFO *ChpeV2CpuAreaInfo; /* /1788 */ 680 + } DUMMYUNIONNAME; 430 681 PVOID BStoreLimit; /* /1790 */ 431 682 #endif 432 - ULONG ImpersonationLocale; /* f98/1798 */ 683 + ULONG MuiGeneration; /* f98/1798 */ 433 684 ULONG IsImpersonating; /* f9c/179c */ 434 685 PVOID NlsCache; /* fa0/17a0 */ 435 686 PVOID ShimData; /* fa4/17a8 */ 436 687 ULONG HeapVirtualAffinity; /* fa8/17b0 */ 437 688 PVOID CurrentTransactionHandle; /* fac/17b8 */ 438 689 TEB_ACTIVE_FRAME *ActiveFrame; /* fb0/17c0 */ 439 - PVOID *FlsSlots; /* fb4/17c8 */ 690 + TEB_FLS_DATA *FlsSlots; /* fb4/17c8 */ 691 + PVOID PreferredLanguages; /* fb8/17d0 */ 692 + PVOID UserPrefLanguages; /* fbc/17d8 */ 693 + PVOID MergedPrefLanguages; /* fc0/17e0 */ 694 + ULONG MuiImpersonation; /* fc4/17e8 */ 695 + USHORT CrossTebFlags; /* fc8/17ec */ 696 + USHORT SameTebFlags; /* fca/17ee */ 697 + PVOID TxnScopeEnterCallback; /* fcc/17f0 */ 698 + PVOID TxnScopeExitCallback; /* fd0/17f8 */ 699 + PVOID TxnScopeContext; /* fd4/1800 */ 700 + ULONG LockCount; /* fd8/1808 */ 701 + LONG WowTebOffset; /* fdc/180c */ 702 + PVOID ResourceRetValue; /* fe0/1810 */ 703 + PVOID ReservedForWdf; /* fe4/1818 */ 704 + ULONGLONG ReservedForCrt; /* fe8/1820 */ 705 + GUID EffectiveContainerId; /* ff0/1828 */ 440 706 } TEB, *PTEB; 707 + 708 + 709 + /*********************************************************************** 710 + * The 32-bit/64-bit version of the PEB and TEB for WoW64 711 + */ 712 + #ifndef __REACTOS__ 713 + typedef struct _NT_TIB32 714 + { 715 + ULONG ExceptionList; /* 0000 */ 716 + ULONG StackBase; /* 0004 */ 717 + ULONG StackLimit; /* 0008 */ 718 + ULONG SubSystemTib; /* 000c */ 719 + ULONG FiberData; /* 0010 */ 720 + ULONG ArbitraryUserPointer; /* 0014 */ 721 + ULONG Self; /* 0018 */ 722 + } NT_TIB32; 723 + 724 + typedef struct _NT_TIB64 725 + { 726 + ULONG64 ExceptionList; /* 0000 */ 727 + ULONG64 StackBase; /* 0008 */ 728 + ULONG64 StackLimit; /* 0010 */ 729 + ULONG64 SubSystemTib; /* 0018 */ 730 + ULONG64 FiberData; /* 0020 */ 731 + ULONG64 ArbitraryUserPointer; /* 0028 */ 732 + ULONG64 Self; /* 0030 */ 733 + } NT_TIB64; 734 + #endif 735 + 736 + typedef struct _CLIENT_ID32 737 + { 738 + ULONG UniqueProcess; 739 + ULONG UniqueThread; 740 + } CLIENT_ID32; 741 + 742 + typedef struct _CLIENT_ID64 743 + { 744 + ULONG64 UniqueProcess; 745 + ULONG64 UniqueThread; 746 + } CLIENT_ID64; 747 + 748 + #ifndef __REACTOS__ 749 + typedef struct _LIST_ENTRY32 750 + { 751 + ULONG Flink; 752 + ULONG Blink; 753 + } LIST_ENTRY32; 754 + 755 + typedef struct _LIST_ENTRY64 756 + { 757 + ULONG64 Flink; 758 + ULONG64 Blink; 759 + } LIST_ENTRY64; 760 + #endif 761 + 762 + typedef struct _UNICODE_STRING32 763 + { 764 + USHORT Length; 765 + USHORT MaximumLength; 766 + ULONG Buffer; 767 + } UNICODE_STRING32; 768 + 769 + typedef struct _UNICODE_STRING64 770 + { 771 + USHORT Length; 772 + USHORT MaximumLength; 773 + ULONG64 Buffer; 774 + } UNICODE_STRING64; 775 + 776 + typedef struct _ACTIVATION_CONTEXT_STACK32 777 + { 778 + ULONG ActiveFrame; 779 + LIST_ENTRY32 FrameListCache; 780 + ULONG Flags; 781 + ULONG NextCookieSequenceNumber; 782 + ULONG32 StackId; 783 + } ACTIVATION_CONTEXT_STACK32; 784 + 785 + typedef struct _ACTIVATION_CONTEXT_STACK64 786 + { 787 + ULONG64 ActiveFrame; 788 + LIST_ENTRY64 FrameListCache; 789 + ULONG Flags; 790 + ULONG NextCookieSequenceNumber; 791 + ULONG64 StackId; 792 + } ACTIVATION_CONTEXT_STACK64; 793 + 794 + typedef struct _CURDIR32 795 + { 796 + UNICODE_STRING32 DosPath; 797 + ULONG Handle; 798 + } CURDIR32; 799 + 800 + typedef struct _CURDIR64 801 + { 802 + UNICODE_STRING64 DosPath; 803 + ULONG64 Handle; 804 + } CURDIR64; 805 + 806 + typedef struct RTL_DRIVE_LETTER_CURDIR32 807 + { 808 + USHORT Flags; 809 + USHORT Length; 810 + ULONG TimeStamp; 811 + UNICODE_STRING32 DosPath; 812 + } RTL_DRIVE_LETTER_CURDIR32; 813 + 814 + typedef struct RTL_DRIVE_LETTER_CURDIR64 815 + { 816 + USHORT Flags; 817 + USHORT Length; 818 + ULONG TimeStamp; 819 + UNICODE_STRING64 DosPath; 820 + } RTL_DRIVE_LETTER_CURDIR64; 821 + 822 + typedef struct _RTL_USER_PROCESS_PARAMETERS32 823 + { 824 + ULONG AllocationSize; 825 + ULONG Size; 826 + ULONG Flags; 827 + ULONG DebugFlags; 828 + ULONG ConsoleHandle; 829 + ULONG ConsoleFlags; 830 + ULONG hStdInput; 831 + ULONG hStdOutput; 832 + ULONG hStdError; 833 + CURDIR32 CurrentDirectory; 834 + UNICODE_STRING32 DllPath; 835 + UNICODE_STRING32 ImagePathName; 836 + UNICODE_STRING32 CommandLine; 837 + ULONG Environment; 838 + ULONG dwX; 839 + ULONG dwY; 840 + ULONG dwXSize; 841 + ULONG dwYSize; 842 + ULONG dwXCountChars; 843 + ULONG dwYCountChars; 844 + ULONG dwFillAttribute; 845 + ULONG dwFlags; 846 + ULONG wShowWindow; 847 + UNICODE_STRING32 WindowTitle; 848 + UNICODE_STRING32 Desktop; 849 + UNICODE_STRING32 ShellInfo; 850 + UNICODE_STRING32 RuntimeInfo; 851 + RTL_DRIVE_LETTER_CURDIR32 DLCurrentDirectory[0x20]; 852 + ULONG EnvironmentSize; 853 + ULONG EnvironmentVersion; 854 + ULONG PackageDependencyData; 855 + ULONG ProcessGroupId; 856 + ULONG LoaderThreads; 857 + } RTL_USER_PROCESS_PARAMETERS32; 858 + 859 + typedef struct _RTL_USER_PROCESS_PARAMETERS64 860 + { 861 + ULONG AllocationSize; 862 + ULONG Size; 863 + ULONG Flags; 864 + ULONG DebugFlags; 865 + ULONG64 ConsoleHandle; 866 + ULONG ConsoleFlags; 867 + ULONG64 hStdInput; 868 + ULONG64 hStdOutput; 869 + ULONG64 hStdError; 870 + CURDIR64 CurrentDirectory; 871 + UNICODE_STRING64 DllPath; 872 + UNICODE_STRING64 ImagePathName; 873 + UNICODE_STRING64 CommandLine; 874 + ULONG64 Environment; 875 + ULONG dwX; 876 + ULONG dwY; 877 + ULONG dwXSize; 878 + ULONG dwYSize; 879 + ULONG dwXCountChars; 880 + ULONG dwYCountChars; 881 + ULONG dwFillAttribute; 882 + ULONG dwFlags; 883 + ULONG wShowWindow; 884 + UNICODE_STRING64 WindowTitle; 885 + UNICODE_STRING64 Desktop; 886 + UNICODE_STRING64 ShellInfo; 887 + UNICODE_STRING64 RuntimeInfo; 888 + RTL_DRIVE_LETTER_CURDIR64 DLCurrentDirectory[0x20]; 889 + ULONG64 EnvironmentSize; 890 + ULONG64 EnvironmentVersion; 891 + ULONG64 PackageDependencyData; 892 + ULONG ProcessGroupId; 893 + ULONG LoaderThreads; 894 + } RTL_USER_PROCESS_PARAMETERS64; 895 + 896 + typedef struct _PEB_LDR_DATA32 897 + { 898 + ULONG Length; 899 + BOOLEAN Initialized; 900 + ULONG SsHandle; 901 + LIST_ENTRY32 InLoadOrderModuleList; 902 + LIST_ENTRY32 InMemoryOrderModuleList; 903 + LIST_ENTRY32 InInitializationOrderModuleList; 904 + ULONG EntryInProgress; 905 + BOOLEAN ShutdownInProgress; 906 + ULONG ShutdownThreadId; 907 + } PEB_LDR_DATA32, *PPEB_LDR_DATA32; 908 + 909 + typedef struct _PEB_LDR_DATA64 910 + { 911 + ULONG Length; 912 + BOOLEAN Initialized; 913 + ULONG64 SsHandle; 914 + LIST_ENTRY64 InLoadOrderModuleList; 915 + LIST_ENTRY64 InMemoryOrderModuleList; 916 + LIST_ENTRY64 InInitializationOrderModuleList; 917 + ULONG64 EntryInProgress; 918 + BOOLEAN ShutdownInProgress; 919 + ULONG64 ShutdownThreadId; 920 + } PEB_LDR_DATA64, *PPEB_LDR_DATA64; 921 + 922 + typedef struct _PEB32 923 + { 924 + BOOLEAN InheritedAddressSpace; /* 0000 */ 925 + BOOLEAN ReadImageFileExecOptions; /* 0001 */ 926 + BOOLEAN BeingDebugged; /* 0002 */ 927 + UCHAR ImageUsedLargePages : 1; /* 0003 */ 928 + UCHAR IsProtectedProcess : 1; 929 + UCHAR IsImageDynamicallyRelocated : 1; 930 + UCHAR SkipPatchingUser32Forwarders : 1; 931 + UCHAR IsPackagedProcess : 1; 932 + UCHAR IsAppContainer: 1; 933 + UCHAR IsProtectedProcessLight : 1; 934 + UCHAR IsLongPathAwareProcess : 1; 935 + ULONG Mutant; /* 0004 */ 936 + ULONG ImageBaseAddress; /* 0008 */ 937 + ULONG LdrData; /* 000c */ 938 + ULONG ProcessParameters; /* 0010 */ 939 + ULONG SubSystemData; /* 0014 */ 940 + ULONG ProcessHeap; /* 0018 */ 941 + ULONG FastPebLock; /* 001c */ 942 + ULONG AtlThunkSListPtr; /* 0020 */ 943 + ULONG IFEOKey; /* 0024 */ 944 + ULONG ProcessInJob : 1; /* 0028 */ 945 + ULONG ProcessInitializing : 1; 946 + ULONG ProcessUsingVEH : 1; 947 + ULONG ProcessUsingVCH : 1; 948 + ULONG ProcessUsingFTH : 1; 949 + ULONG ProcessPreviouslyThrottled : 1; 950 + ULONG ProcessCurrentlyThrottled : 1; 951 + ULONG ProcessImagesHotPatched : 1; 952 + ULONG ReservedBits0 : 24; 953 + ULONG KernelCallbackTable; /* 002c */ 954 + ULONG Reserved; /* 0030 */ 955 + ULONG AtlThunkSListPtr32; /* 0034 */ 956 + ULONG ApiSetMap; /* 0038 */ 957 + ULONG TlsExpansionCounter; /* 003c */ 958 + ULONG TlsBitmap; /* 0040 */ 959 + ULONG TlsBitmapBits[2]; /* 0044 */ 960 + ULONG ReadOnlySharedMemoryBase; /* 004c */ 961 + ULONG SharedData; /* 0050 */ 962 + ULONG ReadOnlyStaticServerData; /* 0054 */ 963 + ULONG AnsiCodePageData; /* 0058 */ 964 + ULONG OemCodePageData; /* 005c */ 965 + ULONG UnicodeCaseTableData; /* 0060 */ 966 + ULONG NumberOfProcessors; /* 0064 */ 967 + ULONG NtGlobalFlag; /* 0068 */ 968 + LARGE_INTEGER CriticalSectionTimeout; /* 0070 */ 969 + ULONG HeapSegmentReserve; /* 0078 */ 970 + ULONG HeapSegmentCommit; /* 007c */ 971 + ULONG HeapDeCommitTotalFreeThreshold; /* 0080 */ 972 + ULONG HeapDeCommitFreeBlockThreshold; /* 0084 */ 973 + ULONG NumberOfHeaps; /* 0088 */ 974 + ULONG MaximumNumberOfHeaps; /* 008c */ 975 + ULONG ProcessHeaps; /* 0090 */ 976 + ULONG GdiSharedHandleTable; /* 0094 */ 977 + ULONG ProcessStarterHelper; /* 0098 */ 978 + ULONG GdiDCAttributeList; /* 009c */ 979 + ULONG LoaderLock; /* 00a0 */ 980 + ULONG OSMajorVersion; /* 00a4 */ 981 + ULONG OSMinorVersion; /* 00a8 */ 982 + ULONG OSBuildNumber; /* 00ac */ 983 + ULONG OSPlatformId; /* 00b0 */ 984 + ULONG ImageSubSystem; /* 00b4 */ 985 + ULONG ImageSubSystemMajorVersion; /* 00b8 */ 986 + ULONG ImageSubSystemMinorVersion; /* 00bc */ 987 + ULONG ActiveProcessAffinityMask; /* 00c0 */ 988 + ULONG GdiHandleBuffer[34]; /* 00c4 */ 989 + ULONG PostProcessInitRoutine; /* 014c */ 990 + ULONG TlsExpansionBitmap; /* 0150 */ 991 + ULONG TlsExpansionBitmapBits[32]; /* 0154 */ 992 + ULONG SessionId; /* 01d4 */ 993 + ULARGE_INTEGER AppCompatFlags; /* 01d8 */ 994 + ULARGE_INTEGER AppCompatFlagsUser; /* 01e0 */ 995 + ULONG ShimData; /* 01e8 */ 996 + ULONG AppCompatInfo; /* 01ec */ 997 + UNICODE_STRING32 CSDVersion; /* 01f0 */ 998 + ULONG ActivationContextData; /* 01f8 */ 999 + ULONG ProcessAssemblyStorageMap; /* 01fc */ 1000 + ULONG SystemDefaultActivationData; /* 0200 */ 1001 + ULONG SystemAssemblyStorageMap; /* 0204 */ 1002 + ULONG MinimumStackCommit; /* 0208 */ 1003 + ULONG FlsCallback; /* 020c */ 1004 + LIST_ENTRY32 FlsListHead; /* 0210 */ 1005 + ULONG FlsBitmap; /* 0218 */ 1006 + ULONG FlsBitmapBits[4]; /* 021c */ 1007 + ULONG FlsHighIndex; /* 022c */ 1008 + ULONG WerRegistrationData; /* 0230 */ 1009 + ULONG WerShipAssertPtr; /* 0234 */ 1010 + ULONG pUnused; /* 0238 */ 1011 + ULONG pImageHeaderHash; /* 023c */ 1012 + ULONG HeapTracingEnabled : 1; /* 0240 */ 1013 + ULONG CritSecTracingEnabled : 1; 1014 + ULONG LibLoaderTracingEnabled : 1; 1015 + ULONG SpareTracingBits : 29; 1016 + ULONGLONG CsrServerReadOnlySharedMemoryBase; /* 0248 */ 1017 + ULONG TppWorkerpListLock; /* 0250 */ 1018 + LIST_ENTRY32 TppWorkerpList; /* 0254 */ 1019 + ULONG WaitOnAddressHashTable [0x80]; /* 025c */ 1020 + ULONG TelemetryCoverageHeader; /* 045c */ 1021 + ULONG CloudFileFlags; /* 0460 */ 1022 + ULONG CloudFileDiagFlags; /* 0464 */ 1023 + CHAR PlaceholderCompatibilityMode; /* 0468 */ 1024 + CHAR PlaceholderCompatibilityModeReserved[7]; /* 0469 */ 1025 + ULONG LeapSecondData; /* 0470 */ 1026 + ULONG LeapSecondFlags; /* 0474 */ 1027 + ULONG NtGlobalFlag2; /* 0478 */ 1028 + } PEB32; 1029 + 1030 + C_ASSERT( sizeof(PEB32) == 0x480 ); 1031 + 1032 + typedef struct _PEB64 1033 + { 1034 + BOOLEAN InheritedAddressSpace; /* 0000 */ 1035 + BOOLEAN ReadImageFileExecOptions; /* 0001 */ 1036 + BOOLEAN BeingDebugged; /* 0002 */ 1037 + UCHAR ImageUsedLargePages : 1; /* 0003 */ 1038 + UCHAR IsProtectedProcess : 1; 1039 + UCHAR IsImageDynamicallyRelocated : 1; 1040 + UCHAR SkipPatchingUser32Forwarders : 1; 1041 + UCHAR IsPackagedProcess : 1; 1042 + UCHAR IsAppContainer: 1; 1043 + UCHAR IsProtectedProcessLight : 1; 1044 + UCHAR IsLongPathAwareProcess : 1; 1045 + ULONG64 Mutant; /* 0008 */ 1046 + ULONG64 ImageBaseAddress; /* 0010 */ 1047 + ULONG64 LdrData; /* 0018 */ 1048 + ULONG64 ProcessParameters; /* 0020 */ 1049 + ULONG64 SubSystemData; /* 0028 */ 1050 + ULONG64 ProcessHeap; /* 0030 */ 1051 + ULONG64 FastPebLock; /* 0038 */ 1052 + ULONG64 AtlThunkSListPtr; /* 0040 */ 1053 + ULONG64 IFEOKey; /* 0048 */ 1054 + ULONG ProcessInJob : 1; /* 0050 */ 1055 + ULONG ProcessInitializing : 1; 1056 + ULONG ProcessUsingVEH : 1; 1057 + ULONG ProcessUsingVCH : 1; 1058 + ULONG ProcessUsingFTH : 1; 1059 + ULONG ProcessPreviouslyThrottled : 1; 1060 + ULONG ProcessCurrentlyThrottled : 1; 1061 + ULONG ProcessImagesHotPatched : 1; 1062 + ULONG ReservedBits0 : 24; 1063 + ULONG64 KernelCallbackTable; /* 0058 */ 1064 + ULONG Reserved; /* 0060 */ 1065 + ULONG AtlThunkSListPtr32; /* 0064 */ 1066 + ULONG64 ApiSetMap; /* 0068 */ 1067 + ULONG TlsExpansionCounter; /* 0070 */ 1068 + ULONG64 TlsBitmap; /* 0078 */ 1069 + ULONG TlsBitmapBits[2]; /* 0080 */ 1070 + ULONG64 ReadOnlySharedMemoryBase; /* 0088 */ 1071 + ULONG64 SharedData; /* 0090 */ 1072 + ULONG64 ReadOnlyStaticServerData; /* 0098 */ 1073 + ULONG64 AnsiCodePageData; /* 00a0 */ 1074 + ULONG64 OemCodePageData; /* 00a8 */ 1075 + ULONG64 UnicodeCaseTableData; /* 00b0 */ 1076 + ULONG NumberOfProcessors; /* 00b8 */ 1077 + ULONG NtGlobalFlag; /* 00bc */ 1078 + LARGE_INTEGER CriticalSectionTimeout; /* 00c0 */ 1079 + ULONG64 HeapSegmentReserve; /* 00c8 */ 1080 + ULONG64 HeapSegmentCommit; /* 00d0 */ 1081 + ULONG64 HeapDeCommitTotalFreeThreshold; /* 00d8 */ 1082 + ULONG64 HeapDeCommitFreeBlockThreshold; /* 00e0 */ 1083 + ULONG NumberOfHeaps; /* 00e8 */ 1084 + ULONG MaximumNumberOfHeaps; /* 00ec */ 1085 + ULONG64 ProcessHeaps; /* 00f0 */ 1086 + ULONG64 GdiSharedHandleTable; /* 00f8 */ 1087 + ULONG64 ProcessStarterHelper; /* 0100 */ 1088 + ULONG64 GdiDCAttributeList; /* 0108 */ 1089 + ULONG64 LoaderLock; /* 0110 */ 1090 + ULONG OSMajorVersion; /* 0118 */ 1091 + ULONG OSMinorVersion; /* 011c */ 1092 + ULONG OSBuildNumber; /* 0120 */ 1093 + ULONG OSPlatformId; /* 0124 */ 1094 + ULONG ImageSubSystem; /* 0128 */ 1095 + ULONG ImageSubSystemMajorVersion; /* 012c */ 1096 + ULONG ImageSubSystemMinorVersion; /* 0130 */ 1097 + ULONG64 ActiveProcessAffinityMask; /* 0138 */ 1098 + ULONG GdiHandleBuffer[60]; /* 0140 */ 1099 + ULONG64 PostProcessInitRoutine; /* 0230 */ 1100 + ULONG64 TlsExpansionBitmap; /* 0238 */ 1101 + ULONG TlsExpansionBitmapBits[32]; /* 0240 */ 1102 + ULONG SessionId; /* 02c0 */ 1103 + ULARGE_INTEGER AppCompatFlags; /* 02c8 */ 1104 + ULARGE_INTEGER AppCompatFlagsUser; /* 02d0 */ 1105 + ULONG64 ShimData; /* 02d8 */ 1106 + ULONG64 AppCompatInfo; /* 02e0 */ 1107 + UNICODE_STRING64 CSDVersion; /* 02e8 */ 1108 + ULONG64 ActivationContextData; /* 02f8 */ 1109 + ULONG64 ProcessAssemblyStorageMap; /* 0300 */ 1110 + ULONG64 SystemDefaultActivationData; /* 0308 */ 1111 + ULONG64 SystemAssemblyStorageMap; /* 0310 */ 1112 + ULONG64 MinimumStackCommit; /* 0318 */ 1113 + ULONG64 FlsCallback; /* 0320 */ 1114 + LIST_ENTRY64 FlsListHead; /* 0328 */ 1115 + union 1116 + { 1117 + ULONG64 FlsBitmap; /* 0338 */ 1118 + ULONG64 ChpeV2ProcessInfo; /* 0338 */ 1119 + }; 1120 + ULONG FlsBitmapBits[4]; /* 0340 */ 1121 + ULONG FlsHighIndex; /* 0350 */ 1122 + ULONG64 WerRegistrationData; /* 0358 */ 1123 + ULONG64 WerShipAssertPtr; /* 0360 */ 1124 + ULONG64 pUnused; /* 0368 */ 1125 + ULONG64 pImageHeaderHash; /* 0370 */ 1126 + ULONG HeapTracingEnabled : 1; /* 0378 */ 1127 + ULONG CritSecTracingEnabled : 1; 1128 + ULONG LibLoaderTracingEnabled : 1; 1129 + ULONG SpareTracingBits : 29; 1130 + ULONGLONG CsrServerReadOnlySharedMemoryBase; /* 0380 */ 1131 + ULONG TppWorkerpListLock; /* 0388 */ 1132 + LIST_ENTRY64 TppWorkerpList; /* 0390 */ 1133 + ULONG64 WaitOnAddressHashTable [0x80]; /* 03a0 */ 1134 + ULONG64 TelemetryCoverageHeader; /* 07a0 */ 1135 + ULONG CloudFileFlags; /* 07a8 */ 1136 + ULONG CloudFileDiagFlags; /* 07ac */ 1137 + CHAR PlaceholderCompatibilityMode; /* 07b0 */ 1138 + CHAR PlaceholderCompatibilityModeReserved[7]; /* 07b1 */ 1139 + ULONG64 LeapSecondData; /* 07b8 */ 1140 + ULONG LeapSecondFlags; /* 07c0 */ 1141 + ULONG NtGlobalFlag2; /* 07c4 */ 1142 + } PEB64; 1143 + 1144 + C_ASSERT( sizeof(PEB64) == 0x7c8 ); 1145 + 1146 + typedef struct _TEB32 1147 + { 1148 + NT_TIB32 Tib; /* 0000 */ 1149 + ULONG EnvironmentPointer; /* 001c */ 1150 + CLIENT_ID32 ClientId; /* 0020 */ 1151 + ULONG ActiveRpcHandle; /* 0028 */ 1152 + ULONG ThreadLocalStoragePointer; /* 002c */ 1153 + ULONG Peb; /* 0030 */ 1154 + ULONG LastErrorValue; /* 0034 */ 1155 + ULONG CountOfOwnedCriticalSections; /* 0038 */ 1156 + ULONG CsrClientThread; /* 003c */ 1157 + ULONG Win32ThreadInfo; /* 0040 */ 1158 + ULONG User32Reserved[26]; /* 0044 */ 1159 + ULONG UserReserved[5]; /* 00ac */ 1160 + ULONG WOW32Reserved; /* 00c0 */ 1161 + ULONG CurrentLocale; /* 00c4 */ 1162 + ULONG FpSoftwareStatusRegister; /* 00c8 */ 1163 + ULONG ReservedForDebuggerInstrumentation[16]; /* 00cc */ 1164 + ULONG SystemReserved1[26]; /* 010c */ 1165 + char PlaceholderCompatibilityMode; /* 0174 */ 1166 + BOOLEAN PlaceholderHydrationAlwaysExplicit;/* 0175 */ 1167 + char PlaceholderReserved[10]; /* 0176 */ 1168 + DWORD ProxiedProcessId; /* 0180 */ 1169 + ACTIVATION_CONTEXT_STACK32 ActivationContextStack; /* 0184 */ 1170 + UCHAR WorkingOnBehalfOfTicket[8]; /* 019c */ 1171 + LONG ExceptionCode; /* 01a4 */ 1172 + ULONG ActivationContextStackPointer; /* 01a8 */ 1173 + ULONG InstrumentationCallbackSp; /* 01ac */ 1174 + ULONG InstrumentationCallbackPreviousPc; /* 01b0 */ 1175 + ULONG InstrumentationCallbackPreviousSp; /* 01b4 */ 1176 + BOOLEAN InstrumentationCallbackDisabled; /* 01b8 */ 1177 + BYTE SpareBytes1[23]; /* 01b9 */ 1178 + ULONG TxFsContext; /* 01d0 */ 1179 + ULONG GdiTebBatch[0x138]; /* 01d4 */ 1180 + CLIENT_ID32 RealClientId; /* 06b4 */ 1181 + ULONG GdiCachedProcessHandle; /* 06bc */ 1182 + ULONG GdiClientPID; /* 06c0 */ 1183 + ULONG GdiClientTID; /* 06c4 */ 1184 + ULONG GdiThreadLocaleInfo; /* 06c8 */ 1185 + ULONG Win32ClientInfo[62]; /* 06cc */ 1186 + ULONG glDispatchTable[233]; /* 07c4 */ 1187 + ULONG glReserved1[29]; /* 0b68 */ 1188 + ULONG glReserved2; /* 0bdc */ 1189 + ULONG glSectionInfo; /* 0be0 */ 1190 + ULONG glSection; /* 0be4 */ 1191 + ULONG glTable; /* 0be8 */ 1192 + ULONG glCurrentRC; /* 0bec */ 1193 + ULONG glContext; /* 0bf0 */ 1194 + ULONG LastStatusValue; /* 0bf4 */ 1195 + UNICODE_STRING32 StaticUnicodeString; /* 0bf8 */ 1196 + WCHAR StaticUnicodeBuffer[261]; /* 0c00 */ 1197 + ULONG DeallocationStack; /* 0e0c */ 1198 + ULONG TlsSlots[64]; /* 0e10 */ 1199 + LIST_ENTRY32 TlsLinks; /* 0f10 */ 1200 + ULONG Vdm; /* 0f18 */ 1201 + ULONG ReservedForNtRpc; /* 0f1c */ 1202 + ULONG DbgSsReserved[2]; /* 0f20 */ 1203 + ULONG HardErrorMode; /* 0f28 */ 1204 + ULONG Instrumentation[9]; /* 0f2c */ 1205 + GUID ActivityId; /* 0f50 */ 1206 + ULONG SubProcessTag; /* 0f60 */ 1207 + ULONG PerflibData; /* 0f64 */ 1208 + ULONG EtwTraceData; /* 0f68 */ 1209 + ULONG WinSockData; /* 0f6c */ 1210 + ULONG GdiBatchCount; /* 0f70 */ 1211 + ULONG IdealProcessorValue; /* 0f74 */ 1212 + ULONG GuaranteedStackBytes; /* 0f78 */ 1213 + ULONG ReservedForPerf; /* 0f7c */ 1214 + ULONG ReservedForOle; /* 0f80 */ 1215 + ULONG WaitingOnLoaderLock; /* 0f84 */ 1216 + ULONG SavedPriorityState; /* 0f88 */ 1217 + ULONG ReservedForCodeCoverage; /* 0f8c */ 1218 + ULONG ThreadPoolData; /* 0f90 */ 1219 + ULONG TlsExpansionSlots; /* 0f94 */ 1220 + ULONG MuiGeneration; /* 0f98 */ 1221 + ULONG IsImpersonating; /* 0f9c */ 1222 + ULONG NlsCache; /* 0fa0 */ 1223 + ULONG ShimData; /* 0fa4 */ 1224 + ULONG HeapVirtualAffinity; /* 0fa8 */ 1225 + ULONG CurrentTransactionHandle; /* 0fac */ 1226 + ULONG ActiveFrame; /* 0fb0 */ 1227 + ULONG FlsSlots; /* 0fb4 */ 1228 + ULONG PreferredLanguages; /* 0fb8 */ 1229 + ULONG UserPrefLanguages; /* 0fbc */ 1230 + ULONG MergedPrefLanguages; /* 0fc0 */ 1231 + ULONG MuiImpersonation; /* 0fc4 */ 1232 + USHORT CrossTebFlags; /* 0fc8 */ 1233 + USHORT SameTebFlags; /* 0fca */ 1234 + ULONG TxnScopeEnterCallback; /* 0fcc */ 1235 + ULONG TxnScopeExitCallback; /* 0fd0 */ 1236 + ULONG TxnScopeContext; /* 0fd4 */ 1237 + ULONG LockCount; /* 0fd8 */ 1238 + LONG WowTebOffset; /* 0fdc */ 1239 + ULONG ResourceRetValue; /* 0fe0 */ 1240 + ULONG ReservedForWdf; /* 0fe4 */ 1241 + ULONGLONG ReservedForCrt; /* 0fe8 */ 1242 + GUID EffectiveContainerId; /* 0ff0 */ 1243 + } TEB32; 1244 + 1245 + C_ASSERT( sizeof(TEB32) == 0x1000 ); 1246 + 1247 + typedef struct _TEB64 1248 + { 1249 + NT_TIB64 Tib; /* 0000 */ 1250 + ULONG64 EnvironmentPointer; /* 0038 */ 1251 + CLIENT_ID64 ClientId; /* 0040 */ 1252 + ULONG64 ActiveRpcHandle; /* 0050 */ 1253 + ULONG64 ThreadLocalStoragePointer; /* 0058 */ 1254 + ULONG64 Peb; /* 0060 */ 1255 + ULONG LastErrorValue; /* 0068 */ 1256 + ULONG CountOfOwnedCriticalSections; /* 006c */ 1257 + ULONG64 CsrClientThread; /* 0070 */ 1258 + ULONG64 Win32ThreadInfo; /* 0078 */ 1259 + ULONG User32Reserved[26]; /* 0080 */ 1260 + ULONG UserReserved[5]; /* 00e8 */ 1261 + ULONG64 WOW32Reserved; /* 0100 */ 1262 + ULONG CurrentLocale; /* 0108 */ 1263 + ULONG FpSoftwareStatusRegister; /* 010c */ 1264 + ULONG64 ReservedForDebuggerInstrumentation[16]; /* 0110 */ 1265 + ULONG64 SystemReserved1[30]; /* 0190 */ 1266 + char PlaceholderCompatibilityMode; /* 0280 */ 1267 + BOOLEAN PlaceholderHydrationAlwaysExplicit;/* 0281 */ 1268 + char PlaceholderReserved[10]; /* 0282 */ 1269 + DWORD ProxiedProcessId; /* 028c */ 1270 + ACTIVATION_CONTEXT_STACK64 ActivationContextStack; /* 0290 */ 1271 + UCHAR WorkingOnBehalfOfTicket[8]; /* 02b8 */ 1272 + LONG ExceptionCode; /* 02c0 */ 1273 + ULONG64 ActivationContextStackPointer; /* 02c8 */ 1274 + ULONG64 InstrumentationCallbackSp; /* 02d0 */ 1275 + ULONG64 InstrumentationCallbackPreviousPc; /* 02d8 */ 1276 + ULONG64 InstrumentationCallbackPreviousSp; /* 02e0 */ 1277 + ULONG TxFsContext; /* 02e8 */ 1278 + BOOLEAN InstrumentationCallbackDisabled; /* 02ec */ 1279 + BOOLEAN UnalignedLoadStoreExceptions; /* 02ed */ 1280 + ULONG64 GdiTebBatch[0x9d]; /* 02f0 */ 1281 + CLIENT_ID64 RealClientId; /* 07d8 */ 1282 + ULONG64 GdiCachedProcessHandle; /* 07e8 */ 1283 + ULONG GdiClientPID; /* 07f0 */ 1284 + ULONG GdiClientTID; /* 07f4 */ 1285 + ULONG64 GdiThreadLocaleInfo; /* 07f8 */ 1286 + ULONG64 Win32ClientInfo[62]; /* 0800 */ 1287 + ULONG64 glDispatchTable[233]; /* 09f0 */ 1288 + ULONG64 glReserved1[29]; /* 1138 */ 1289 + ULONG64 glReserved2; /* 1220 */ 1290 + ULONG64 glSectionInfo; /* 1228 */ 1291 + ULONG64 glSection; /* 1230 */ 1292 + ULONG64 glTable; /* 1238 */ 1293 + ULONG64 glCurrentRC; /* 1240 */ 1294 + ULONG64 glContext; /* 1248 */ 1295 + ULONG LastStatusValue; /* 1250 */ 1296 + UNICODE_STRING64 StaticUnicodeString; /* 1258 */ 1297 + WCHAR StaticUnicodeBuffer[261]; /* 1268 */ 1298 + ULONG64 DeallocationStack; /* 1478 */ 1299 + ULONG64 TlsSlots[64]; /* 1480 */ 1300 + LIST_ENTRY64 TlsLinks; /* 1680 */ 1301 + ULONG64 Vdm; /* 1690 */ 1302 + ULONG64 ReservedForNtRpc; /* 1698 */ 1303 + ULONG64 DbgSsReserved[2]; /* 16a0 */ 1304 + ULONG HardErrorMode; /* 16b0 */ 1305 + ULONG64 Instrumentation[11]; /* 16b8 */ 1306 + GUID ActivityId; /* 1710 */ 1307 + ULONG64 SubProcessTag; /* 1720 */ 1308 + ULONG64 PerflibData; /* 1728 */ 1309 + ULONG64 EtwTraceData; /* 1730 */ 1310 + ULONG64 WinSockData; /* 1738 */ 1311 + ULONG GdiBatchCount; /* 1740 */ 1312 + ULONG IdealProcessorValue; /* 1744 */ 1313 + ULONG GuaranteedStackBytes; /* 1748 */ 1314 + ULONG64 ReservedForPerf; /* 1750 */ 1315 + ULONG64 ReservedForOle; /* 1758 */ 1316 + ULONG WaitingOnLoaderLock; /* 1760 */ 1317 + ULONG64 SavedPriorityState; /* 1768 */ 1318 + ULONG64 ReservedForCodeCoverage; /* 1770 */ 1319 + ULONG64 ThreadPoolData; /* 1778 */ 1320 + ULONG64 TlsExpansionSlots; /* 1780 */ 1321 + union { 1322 + ULONG64 DeallocationBStore; /* 1788 */ 1323 + ULONG64 ChpeV2CpuAreaInfo; /* 1788 */ 1324 + } DUMMYUNIONNAME; 1325 + ULONG64 BStoreLimit; /* 1790 */ 1326 + ULONG MuiGeneration; /* 1798 */ 1327 + ULONG IsImpersonating; /* 179c */ 1328 + ULONG64 NlsCache; /* 17a0 */ 1329 + ULONG64 ShimData; /* 17a8 */ 1330 + ULONG HeapVirtualAffinity; /* 17b0 */ 1331 + ULONG64 CurrentTransactionHandle; /* 17b8 */ 1332 + ULONG64 ActiveFrame; /* 17c0 */ 1333 + ULONG64 FlsSlots; /* 17c8 */ 1334 + ULONG64 PreferredLanguages; /* 17d0 */ 1335 + ULONG64 UserPrefLanguages; /* 17d8 */ 1336 + ULONG64 MergedPrefLanguages; /* 17e0 */ 1337 + ULONG MuiImpersonation; /* 17e8 */ 1338 + USHORT CrossTebFlags; /* 17ec */ 1339 + USHORT SameTebFlags; /* 17ee */ 1340 + ULONG64 TxnScopeEnterCallback; /* 17f0 */ 1341 + ULONG64 TxnScopeExitCallback; /* 17f8 */ 1342 + ULONG64 TxnScopeContext; /* 1800 */ 1343 + ULONG LockCount; /* 1808 */ 1344 + LONG WowTebOffset; /* 180c */ 1345 + ULONG64 ResourceRetValue; /* 1810 */ 1346 + ULONG64 ReservedForWdf; /* 1818 */ 1347 + ULONGLONG ReservedForCrt; /* 1820 */ 1348 + GUID EffectiveContainerId; /* 1828 */ 1349 + } TEB64; 1350 + 1351 + C_ASSERT( sizeof(TEB64) == 0x1838 ); 1352 + 1353 + #ifdef _WIN64 1354 + C_ASSERT( sizeof(PEB) == sizeof(PEB64) ); 1355 + C_ASSERT( sizeof(TEB) == sizeof(TEB64) ); 1356 + #else 1357 + C_ASSERT( sizeof(PEB) == sizeof(PEB32) ); 1358 + C_ASSERT( sizeof(TEB) == sizeof(TEB32) ); 1359 + #endif 1360 + 1361 + /* reserved TEB64 TLS slots for Wow64 */ 1362 + #define WOW64_TLS_CPURESERVED 1 1363 + #define WOW64_TLS_TEMPLIST 3 1364 + #define WOW64_TLS_USERCALLBACKDATA 5 1365 + #define WOW64_TLS_APCLIST 7 1366 + #define WOW64_TLS_FILESYSREDIR 8 1367 + #define WOW64_TLS_WOW64INFO 10 1368 + #define WOW64_TLS_MAX_NUMBER 19 1369 + 441 1370 442 1371 /*********************************************************************** 443 1372 * Enums ··· 507 1436 FileReplaceCompletionInformation, 508 1437 FileHardLinkFullIdInformation, 509 1438 FileIdExtdBothDirectoryInformation, 1439 + FileDispositionInformationEx, 1440 + FileRenameInformationEx, 1441 + FileRenameInformationExBypassAccessCheck, 1442 + FileDesiredStorageClassInformation, 1443 + FileStatInformation, 1444 + FileMemoryPartitionInformation, 1445 + FileStatLxInformation, 1446 + FileCaseSensitiveInformation, 1447 + FileLinkInformationEx, 1448 + FileLinkInformationExBypassAccessCheck, 1449 + FileStorageReserveIdInformation, 1450 + FileCaseSensitiveInformationForceAccessCheck, 1451 + FileKnownFolderInformation, 510 1452 FileMaximumInformation 511 1453 } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS; 512 1454 ··· 652 1594 } FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION; 653 1595 654 1596 typedef struct _FILE_RENAME_INFORMATION { 655 - BOOLEAN Replace; 656 - HANDLE RootDir; 1597 + union { 1598 + BOOLEAN ReplaceIfExists; 1599 + ULONG Flags; 1600 + } DUMMYUNIONNAME; 1601 + HANDLE RootDirectory; 657 1602 ULONG FileNameLength; 658 1603 WCHAR FileName[1]; 659 1604 } FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION; 660 1605 1606 + #define FILE_RENAME_REPLACE_IF_EXISTS 0x00000001 1607 + #define FILE_RENAME_POSIX_SEMANTICS 0x00000002 1608 + #define FILE_RENAME_SUPPRESS_PIN_STATE_INHERITANCE 0x00000004 1609 + #define FILE_RENAME_SUPPRESS_STORAGE_RESERVE_INHERITANCE 0x00000008 1610 + #define FILE_RENAME_NO_INCREASE_AVAILABLE_SPACE 0x00000010 1611 + #define FILE_RENAME_NO_DECREASE_AVAILABLE_SPACE 0x00000020 1612 + #define FILE_RENAME_PRESERVE_AVAILABLE_SPACE 0x00000030 1613 + #define FILE_RENAME_IGNORE_READONLY_ATTRIBUTE 0x00000040 1614 + 661 1615 typedef struct _FILE_LINK_INFORMATION { 662 - BOOLEAN ReplaceIfExists; 1616 + union { 1617 + BOOLEAN ReplaceIfExists; 1618 + ULONG Flags; 1619 + } DUMMYUNIONNAME; 663 1620 HANDLE RootDirectory; 664 1621 ULONG FileNameLength; 665 1622 WCHAR FileName[1]; 666 1623 } FILE_LINK_INFORMATION, *PFILE_LINK_INFORMATION; 667 1624 1625 + #define FILE_LINK_REPLACE_IF_EXISTS 0x00000001 1626 + #define FILE_LINK_POSIX_SEMANTICS 0x00000002 1627 + #define FILE_LINK_SUPPRESS_STORAGE_RESERVE_INHERITANCE 0x00000008 1628 + #define FILE_LINK_NO_INCREASE_AVAILABLE_SPACE 0x00000010 1629 + #define FILE_LINK_NO_DECREASE_AVAILABLE_SPACE 0x00000020 1630 + #define FILE_LINK_PRESERVE_AVAILABLE_SPACE 0x00000030 1631 + #define FILE_LINK_IGNORE_READONLY_ATTRIBUTE 0x00000040 1632 + #define FILE_LINK_FORCE_RESIZE_TARGET_SR 0x00000080 1633 + #define FILE_LINK_FORCE_RESIZE_SOURCE_SR 0x00000100 1634 + #define FILE_LINK_FORCE_RESIZE_SR 0x00000180 1635 + 668 1636 typedef struct _FILE_NAMES_INFORMATION { 669 1637 ULONG NextEntryOffset; 670 1638 ULONG FileIndex; ··· 675 1643 typedef struct _FILE_DISPOSITION_INFORMATION { 676 1644 BOOLEAN DoDeleteFile; 677 1645 } FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION; 1646 + 1647 + typedef struct _FILE_DISPOSITION_INFORMATION_EX { 1648 + ULONG Flags; 1649 + } FILE_DISPOSITION_INFORMATION_EX, *PFILE_DISPOSITION_INFORMATION_EX; 1650 + 1651 + #define FILE_DISPOSITION_DO_NOT_DELETE 0x00000000 1652 + #define FILE_DISPOSITION_DELETE 0x00000001 1653 + #define FILE_DISPOSITION_POSIX_SEMANTICS 0x00000002 1654 + #define FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK 0x00000004 1655 + #define FILE_DISPOSITION_ON_CLOSE 0x00000008 1656 + #define FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE 0x00000010 678 1657 679 1658 typedef struct _FILE_POSITION_INFORMATION { 680 1659 LARGE_INTEGER CurrentByteOffset; ··· 759 1738 ULONG NamedPipeEnd; 760 1739 } FILE_PIPE_LOCAL_INFORMATION, *PFILE_PIPE_LOCAL_INFORMATION; 761 1740 1741 + #define FILE_PIPE_DISCONNECTED_STATE 0x00000001 1742 + #define FILE_PIPE_LISTENING_STATE 0x00000002 1743 + #define FILE_PIPE_CONNECTED_STATE 0x00000003 1744 + #define FILE_PIPE_CLOSING_STATE 0x00000004 1745 + 1746 + typedef struct _FILE_OBJECTID_BUFFER 1747 + { 1748 + BYTE ObjectId[16]; 1749 + union 1750 + { 1751 + struct 1752 + { 1753 + BYTE BirthVolumeId[16]; 1754 + BYTE BirthObjectId[16]; 1755 + BYTE DomainId[16]; 1756 + } DUMMYSTRUCTNAME; 1757 + BYTE ExtendedInfo[48]; 1758 + } DUMMYUNIONNAME; 1759 + } FILE_OBJECTID_BUFFER, *PFILE_OBJECTID_BUFFER; 1760 + 762 1761 typedef struct _FILE_OBJECTID_INFORMATION { 763 1762 LONGLONG FileReference; 764 1763 UCHAR ObjectId[16]; ··· 787 1786 ULONG Tag; 788 1787 } FILE_REPARSE_POINT_INFORMATION, *PFILE_REPARSE_POINT_INFORMATION; 789 1788 790 - #define FILE_PIPE_DISCONNECTED_STATE 0x01 791 - #define FILE_PIPE_LISTENING_STATE 0x02 792 - #define FILE_PIPE_CONNECTED_STATE 0x03 793 - #define FILE_PIPE_CLOSING_STATE 0x04 794 - 795 1789 typedef struct _FILE_ALL_INFORMATION { 796 1790 FILE_BASIC_INFORMATION BasicInformation; 797 1791 FILE_STANDARD_INFORMATION StandardInformation; ··· 804 1798 FILE_NAME_INFORMATION NameInformation; 805 1799 } FILE_ALL_INFORMATION, *PFILE_ALL_INFORMATION; 806 1800 1801 + typedef struct _FILE_STAT_INFORMATION { 1802 + LARGE_INTEGER FileId; 1803 + LARGE_INTEGER CreationTime; 1804 + LARGE_INTEGER LastAccessTime; 1805 + LARGE_INTEGER LastWriteTime; 1806 + LARGE_INTEGER ChangeTime; 1807 + LARGE_INTEGER AllocationSize; 1808 + LARGE_INTEGER EndOfFile; 1809 + ULONG FileAttributes; 1810 + ULONG ReparseTag; 1811 + ULONG NumberOfLinks; 1812 + ULONG EffectiveAccess; 1813 + } FILE_STAT_INFORMATION, *PFILE_STAT_INFORMATION; 1814 + 807 1815 typedef struct _FILE_IO_COMPLETION_NOTIFICATION_INFORMATION { 808 1816 ULONG Flags; 809 1817 } FILE_IO_COMPLETION_NOTIFICATION_INFORMATION, *PFILE_IO_COMPLETION_NOTIFICATION_INFORMATION; ··· 812 1820 #define FILE_SKIP_SET_EVENT_ON_HANDLE 0x2 813 1821 #define FILE_SKIP_SET_USER_EVENT_ON_FAST_IO 0x4 814 1822 1823 + typedef struct _PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION 1824 + { 1825 + ULONG Version; 1826 + ULONG Reserved; 1827 + VOID *Callback; 1828 + } PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION, *PPROCESS_INSTRUMENTATION_CALLBACK_INFORMATION; 1829 + 815 1830 typedef enum _FSINFOCLASS { 816 1831 FileFsVolumeInformation = 1, 817 1832 FileFsLabelInformation, ··· 821 1836 FileFsControlInformation, 822 1837 FileFsFullSizeInformation, 823 1838 FileFsObjectIdInformation, 1839 + FileFsDriverPathInformation, 1840 + FileFsVolumeFlagsInformation, 1841 + FileFsSectorSizeInformation, 1842 + FileFsDataCopyInformation, 1843 + FileFsMetadataSizeInformation, 1844 + FileFsFullSizeInformationEx, 824 1845 FileFsMaximumInformation 825 1846 } FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS; 826 1847 ··· 833 1854 KeyFlagsInformation, 834 1855 KeyVirtualizationInformation, 835 1856 KeyHandleTagsInformation, 1857 + KeyTrustInformation, 1858 + KeyLayerInformation, 836 1859 MaxKeyInfoClass 837 1860 } KEY_INFORMATION_CLASS; 838 1861 ··· 841 1864 KeyValueFullInformation, 842 1865 KeyValuePartialInformation, 843 1866 KeyValueFullInformationAlign64, 844 - KeyValuePartialInformationAlign64 1867 + KeyValuePartialInformationAlign64, 1868 + KeyValueLayerInformation, 845 1869 } KEY_VALUE_INFORMATION_CLASS; 846 1870 847 1871 typedef enum _OBJECT_INFORMATION_CLASS { ··· 849 1873 ObjectNameInformation, 850 1874 ObjectTypeInformation, 851 1875 ObjectTypesInformation, 852 - ObjectDataInformation 1876 + ObjectHandleFlagInformation, 1877 + ObjectSessionInformation, 1878 + ObjectSessionObjectInformation, 853 1879 } OBJECT_INFORMATION_CLASS, *POBJECT_INFORMATION_CLASS; 854 1880 855 1881 typedef enum _PROCESSINFOCLASS { ··· 886 1912 ProcessDebugObjectHandle = 30, 887 1913 ProcessDebugFlags = 31, 888 1914 ProcessHandleTracing = 32, 1915 + ProcessIoPriority = 33, 889 1916 ProcessExecuteFlags = 34, 890 1917 ProcessTlsInformation = 35, 891 1918 ProcessCookie = 36, ··· 903 1930 ProcessTokenVirtualizationEnabled = 48, 904 1931 ProcessConsoleHostProcess = 49, 905 1932 ProcessWindowInformation = 50, 906 - MaxProcessInfoClass 907 - } PROCESSINFOCLASS, PROCESS_INFORMATION_CLASS; 1933 + ProcessHandleInformation = 51, 1934 + ProcessMitigationPolicy = 52, 1935 + ProcessDynamicFunctionTableInformation = 53, 1936 + ProcessHandleCheckingMode = 54, 1937 + ProcessKeepAliveCount = 55, 1938 + ProcessRevokeFileHandles = 56, 1939 + ProcessWorkingSetControl = 57, 1940 + ProcessHandleTable = 58, 1941 + ProcessCheckStackExtentsMode = 59, 1942 + ProcessCommandLineInformation = 60, 1943 + ProcessProtectionInformation = 61, 1944 + ProcessMemoryExhaustion = 62, 1945 + ProcessFaultInformation = 63, 1946 + ProcessTelemetryIdInformation = 64, 1947 + ProcessCommitReleaseInformation = 65, 1948 + ProcessDefaultCpuSetsInformation = 66, 1949 + ProcessAllowedCpuSetsInformation = 67, 1950 + ProcessSubsystemProcess = 68, 1951 + ProcessJobMemoryInformation = 69, 1952 + ProcessInPrivate = 70, 1953 + ProcessRaiseUMExceptionOnInvalidHandleClose = 71, 1954 + ProcessIumChallengeResponse = 72, 1955 + ProcessChildProcessInformation = 73, 1956 + ProcessHighGraphicsPriorityInformation = 74, 1957 + ProcessSubsystemInformation = 75, 1958 + ProcessEnergyValues = 76, 1959 + ProcessPowerThrottlingState = 77, 1960 + ProcessReserved3Information = 78, 1961 + ProcessWin32kSyscallFilterInformation = 79, 1962 + ProcessDisableSystemAllowedCpuSets = 80, 1963 + ProcessWakeInformation = 81, 1964 + ProcessEnergyTrackingState = 82, 1965 + ProcessManageWritesToExecutableMemory = 83, 1966 + ProcessCaptureTrustletLiveDump = 84, 1967 + ProcessTelemetryCoverage = 85, 1968 + ProcessEnclaveInformation = 86, 1969 + ProcessEnableReadWriteVmLogging = 87, 1970 + ProcessUptimeInformation = 88, 1971 + ProcessImageSection = 89, 1972 + ProcessDebugAuthInformation = 90, 1973 + ProcessSystemResourceManagement = 91, 1974 + ProcessSequenceNumber = 92, 1975 + ProcessLoaderDetour = 93, 1976 + ProcessSecurityDomainInformation = 94, 1977 + ProcessCombineSecurityDomainsInformation = 95, 1978 + ProcessEnableLogging = 96, 1979 + ProcessLeapSecondInformation = 97, 1980 + ProcessFiberShadowStackAllocation = 98, 1981 + ProcessFreeFiberShadowStackAllocation = 99, 1982 + ProcessAltSystemCallInformation = 100, 1983 + ProcessDynamicEHContinuationTargets = 101, 1984 + ProcessDynamicEnforcedCetCompatibleRanges = 102, 1985 + ProcessCreateStateChange = 103, 1986 + ProcessApplyStateChange = 104, 1987 + ProcessEnableOptionalXStateFeatures = 105, 1988 + ProcessAltPrefetchParam = 106, 1989 + ProcessAssignCpuPartitions = 107, 1990 + ProcessPriorityClassEx = 108, 1991 + ProcessMembershipInformation = 109, 1992 + ProcessEffectiveIoPriority = 110, 1993 + ProcessEffectivePagePriority = 111, 1994 + MaxProcessInfoClass, 1995 + #ifdef __WINESRC__ 1996 + ProcessWineMakeProcessSystem = 1000, 1997 + ProcessWineLdtCopy, 1998 + ProcessWineGrantAdminToken, 1999 + #endif 2000 + } PROCESSINFOCLASS; 908 2001 909 2002 #define MEM_EXECUTE_OPTION_DISABLE 0x01 910 2003 #define MEM_EXECUTE_OPTION_ENABLE 0x02 ··· 921 2014 SystemCpuInformation = 1, 922 2015 SystemPerformanceInformation = 2, 923 2016 SystemTimeOfDayInformation = 3, /* was SystemTimeInformation */ 924 - Unknown4, 2017 + SystemPathInformation = 4, 925 2018 SystemProcessInformation = 5, 926 - Unknown6, 927 - Unknown7, 2019 + SystemCallCountInformation = 6, 2020 + SystemDeviceInformation = 7, 928 2021 SystemProcessorPerformanceInformation = 8, 929 - Unknown9, 930 - Unknown10, 2022 + SystemFlagsInformation = 9, 2023 + SystemCallTimeInformation = 10, 931 2024 SystemModuleInformation = 11, 932 - Unknown12, 933 - Unknown13, 934 - Unknown14, 935 - Unknown15, 2025 + SystemLocksInformation = 12, 2026 + SystemStackTraceInformation = 13, 2027 + SystemPagedPoolInformation = 14, 2028 + SystemNonPagedPoolInformation = 15, 936 2029 SystemHandleInformation = 16, 937 - Unknown17, 2030 + SystemObjectInformation = 17, 938 2031 SystemPageFileInformation = 18, 939 - Unknown19, 940 - Unknown20, 941 - SystemCacheInformation = 21, 942 - Unknown22, 2032 + SystemVdmInstemulInformation = 19, 2033 + SystemVdmBopInformation = 20, 2034 + SystemFileCacheInformation = 21, 2035 + SystemPoolTagInformation = 22, 943 2036 SystemInterruptInformation = 23, 944 - SystemDpcBehaviourInformation = 24, 2037 + SystemDpcBehaviorInformation = 24, 945 2038 SystemFullMemoryInformation = 25, 946 2039 SystemNotImplemented6 = 25, 947 - SystemLoadImage = 26, 948 - SystemUnloadImage = 27, 2040 + SystemLoadGdiDriverInformation = 26, 2041 + SystemUnloadGdiDriverInformation = 27, 949 2042 SystemTimeAdjustmentInformation = 28, 950 2043 SystemTimeAdjustment = 28, 951 2044 SystemSummaryMemoryInformation = 29, 952 - SystemNotImplemented7 = 29, 953 - SystemNextEventIdInformation = 30, 954 - SystemNotImplemented8 = 30, 955 - SystemEventIdsInformation = 31, 956 - SystemCrashDumpInformation = 32, 2045 + SystemMirrorMemoryInformation = 30, 2046 + SystemPerformanceTraceInformation = 31, 2047 + SystemObsolete0 = 32, 957 2048 SystemExceptionInformation = 33, 958 2049 SystemCrashDumpStateInformation = 34, 959 2050 SystemKernelDebuggerInformation = 35, 960 2051 SystemContextSwitchInformation = 36, 961 2052 SystemRegistryQuotaInformation = 37, 2053 + SystemExtendServiceTableInformation = 38, 2054 + SystemPrioritySeparation = 39, 2055 + SystemVerifierAddDriverInformation = 40, 2056 + SystemVerifierRemoveDriverInformation = 41, 2057 + SystemProcessorIdleInformation = 42, 2058 + SystemLegacyDriverInformation = 43, 962 2059 SystemCurrentTimeZoneInformation = 44, 963 - SystemTimeZoneInformation = 44, 964 2060 SystemLookasideInformation = 45, 965 - SystemSetTimeSlipEvent = 46, 966 - SystemCreateSession = 47, 967 - SystemDeleteSession = 48, 968 - SystemInvalidInfoClass4 = 49, 2061 + SystemTimeSlipNotification = 46, 2062 + SystemSessionCreate = 47, 2063 + SystemSessionDetach = 48, 2064 + SystemSessionInformation = 49, 969 2065 SystemRangeStartInformation = 50, 970 2066 SystemVerifierInformation = 51, 971 - SystemAddVerifier = 52, 2067 + SystemVerifierThunkExtend = 52, 972 2068 SystemSessionProcessesInformation = 53, 973 2069 SystemLoadGdiDriverInSystemSpace = 54, 974 2070 SystemNumaProcessorMap = 55, ··· 990 2086 SystemWatchdogTimerHandler = 71, 991 2087 SystemWatchdogTimerInformation = 72, 992 2088 SystemLogicalProcessorInformation = 73, 993 - SystemWow64SharedInformation = 74, 2089 + SystemWow64SharedInformationObsolete = 74, 994 2090 SystemRegisterFirmwareTableInformationHandler = 75, 995 2091 SystemFirmwareTableInformation = 76, 996 2092 SystemModuleInformationEx = 77, ··· 998 2094 SystemSuperfetchInformation = 79, 999 2095 SystemMemoryListInformation = 80, 1000 2096 SystemFileCacheInformationEx = 81, 2097 + SystemThreadPriorityClientIdInformation = 82, 2098 + SystemProcessorIdleCycleTimeInformation = 83, 2099 + SystemVerifierCancellationInformation = 84, 2100 + SystemProcessorPowerInformationEx = 85, 2101 + SystemRefTraceInformation = 86, 2102 + SystemSpecialPoolInformation = 87, 2103 + SystemProcessIdInformation = 88, 2104 + SystemErrorPortInformation = 89, 2105 + SystemBootEnvironmentInformation = 90, 2106 + SystemHypervisorInformation = 91, 2107 + SystemVerifierInformationEx = 92, 2108 + SystemTimeZoneInformation = 93, 2109 + SystemImageFileExecutionOptionsInformation = 94, 2110 + SystemCoverageInformation = 95, 2111 + SystemPrefetchPatchInformation = 96, 2112 + SystemVerifierFaultsInformation = 97, 2113 + SystemSystemPartitionInformation = 98, 2114 + SystemSystemDiskInformation = 99, 2115 + SystemProcessorPerformanceDistribution = 100, 2116 + SystemNumaProximityNodeInformation = 101, 2117 + SystemDynamicTimeZoneInformation = 102, 2118 + SystemCodeIntegrityInformation = 103, 2119 + SystemProcessorMicrocodeUpdateInformation = 104, 2120 + SystemProcessorBrandString = 105, 2121 + SystemVirtualAddressInformation = 106, 1001 2122 SystemLogicalProcessorInformationEx = 107, 1002 - SystemInformationClassMax 2123 + SystemProcessorCycleTimeInformation = 108, 2124 + SystemStoreInformation = 109, 2125 + SystemRegistryAppendString = 110, 2126 + SystemAitSamplingValue = 111, 2127 + SystemVhdBootInformation = 112, 2128 + SystemCpuQuotaInformation = 113, 2129 + SystemNativeBasicInformation = 114, 2130 + SystemErrorPortTimeouts = 115, 2131 + SystemLowPriorityIoInformation = 116, 2132 + SystemTpmBootEntropyInformation = 117, 2133 + SystemVerifierCountersInformation = 118, 2134 + SystemPagedPoolInformationEx = 119, 2135 + SystemSystemPtesInformationEx = 120, 2136 + SystemNodeDistanceInformation = 121, 2137 + SystemAcpiAuditInformation = 122, 2138 + SystemBasicPerformanceInformation = 123, 2139 + SystemQueryPerformanceCounterInformation = 124, 2140 + SystemSessionBigPoolInformation = 125, 2141 + SystemBootGraphicsInformation = 126, 2142 + SystemScrubPhysicalMemoryInformation = 127, 2143 + SystemBadPageInformation = 128, 2144 + SystemProcessorProfileControlArea = 129, 2145 + SystemCombinePhysicalMemoryInformation = 130, 2146 + SystemEntropyInterruptTimingInformation = 131, 2147 + SystemConsoleInformation = 132, 2148 + SystemPlatformBinaryInformation = 133, 2149 + SystemPolicyInformation = 134, 2150 + SystemHypervisorProcessorCountInformation = 135, 2151 + SystemDeviceDataInformation = 136, 2152 + SystemDeviceDataEnumerationInformation = 137, 2153 + SystemMemoryTopologyInformation = 138, 2154 + SystemMemoryChannelInformation = 139, 2155 + SystemBootLogoInformation = 140, 2156 + SystemProcessorPerformanceInformationEx = 141, 2157 + SystemCriticalProcessErrorLogInformation = 142, 2158 + SystemSecureBootPolicyInformation = 143, 2159 + SystemPageFileInformationEx = 144, 2160 + SystemSecureBootInformation = 145, 2161 + SystemEntropyInterruptTimingRawInformation = 146, 2162 + SystemPortableWorkspaceEfiLauncherInformation = 147, 2163 + SystemFullProcessInformation = 148, 2164 + SystemKernelDebuggerInformationEx = 149, 2165 + SystemBootMetadataInformation = 150, 2166 + SystemSoftRebootInformation = 151, 2167 + SystemElamCertificateInformation = 152, 2168 + SystemOfflineDumpConfigInformation = 153, 2169 + SystemProcessorFeaturesInformation = 154, 2170 + SystemRegistryReconciliationInformation = 155, 2171 + SystemEdidInformation = 156, 2172 + SystemManufacturingInformation = 157, 2173 + SystemEnergyEstimationConfigInformation = 158, 2174 + SystemHypervisorDetailInformation = 159, 2175 + SystemProcessorCycleStatsInformation = 160, 2176 + SystemVmGenerationCountInformation = 161, 2177 + SystemTrustedPlatformModuleInformation = 162, 2178 + SystemKernelDebuggerFlags = 163, 2179 + SystemCodeIntegrityPolicyInformation = 164, 2180 + SystemIsolatedUserModeInformation = 165, 2181 + SystemHardwareSecurityTestInterfaceResultsInformation = 166, 2182 + SystemSingleModuleInformation = 167, 2183 + SystemAllowedCpuSetsInformation = 168, 2184 + SystemVsmProtectionInformation = 169, 2185 + SystemInterruptCpuSetsInformation = 170, 2186 + SystemSecureBootPolicyFullInformation = 171, 2187 + SystemCodeIntegrityPolicyFullInformation = 172, 2188 + SystemAffinitizedInterruptProcessorInformation = 173, 2189 + SystemRootSiloInformation = 174, 2190 + SystemCpuSetInformation = 175, 2191 + SystemCpuSetTagInformation = 176, 2192 + SystemWin32WerStartCallout = 177, 2193 + SystemSecureKernelProfileInformation = 178, 2194 + SystemCodeIntegrityPlatformManifestInformation = 179, 2195 + SystemInterruptSteeringInformation = 180, 2196 + SystemSupportedProcessorArchitectures = 181, 2197 + SystemMemoryUsageInformation = 182, 2198 + SystemCodeIntegrityCertificateInformation = 183, 2199 + SystemPhysicalMemoryInformation = 184, 2200 + SystemControlFlowTransition = 185, 2201 + SystemKernelDebuggingAllowed = 186, 2202 + SystemActivityModerationExeState = 187, 2203 + SystemActivityModerationUserSettings = 188, 2204 + SystemCodeIntegrityPoliciesFullInformation = 189, 2205 + SystemCodeIntegrityUnlockInformation = 190, 2206 + SystemIntegrityQuotaInformation = 191, 2207 + SystemFlushInformation = 192, 2208 + SystemProcessorIdleMaskInformation = 193, 2209 + SystemSecureDumpEncryptionInformation = 194, 2210 + SystemWriteConstraintInformation = 195, 2211 + SystemKernelVaShadowInformation = 196, 2212 + SystemHypervisorSharedPageInformation = 197, 2213 + SystemFirmwareBootPerformanceInformation = 198, 2214 + SystemCodeIntegrityVerificationInformation = 199, 2215 + SystemFirmwarePartitionInformation = 200, 2216 + SystemSpeculationControlInformation = 201, 2217 + SystemDmaGuardPolicyInformation = 202, 2218 + SystemEnclaveLaunchControlInformation = 203, 2219 + SystemWorkloadAllowedCpuSetsInformation = 204, 2220 + SystemCodeIntegrityUnlockModeInformation = 205, 2221 + SystemLeapSecondInformation = 206, 2222 + SystemFlags2Information = 207, 2223 + SystemSecurityModelInformation = 208, 2224 + SystemCodeIntegritySyntheticCacheInformation = 209, 2225 + SystemFeatureConfigurationInformation = 210, 2226 + SystemFeatureConfigurationSectionInformation = 211, 2227 + SystemFeatureUsageSubscriptionInformation = 212, 2228 + SystemSecureSpeculationControlInformation = 213, 2229 + SystemSpacesBootInformation = 214, 2230 + SystemFwRamdiskInformation = 215, 2231 + SystemWheaIpmiHardwareInformation = 216, 2232 + SystemDifSetRuleClassInformation = 217, 2233 + SystemDifClearRuleClassInformation = 218, 2234 + SystemDifApplyPluginVerificationOnDriver = 219, 2235 + SystemDifRemovePluginVerificationOnDriver = 220, 2236 + SystemShadowStackInformation = 221, 2237 + SystemBuildVersionInformation = 222, 2238 + SystemPoolLimitInformation = 223, 2239 + SystemCodeIntegrityAddDynamicStore = 224, 2240 + SystemCodeIntegrityClearDynamicStores = 225, 2241 + SystemDifPoolTrackingInformation = 226, 2242 + SystemPoolZeroingInformation = 227, 2243 + SystemDpcWatchdogInformation = 228, 2244 + SystemDpcWatchdogInformation2 = 229, 2245 + SystemSupportedProcessorArchitectures2 = 230, 2246 + SystemSingleProcessorRelationshipInformation = 231, 2247 + SystemXfgCheckFailureInformation = 232, 2248 + SystemIommuStateInformation = 233, 2249 + SystemHypervisorMinrootInformation = 234, 2250 + SystemHypervisorBootPagesInformation = 235, 2251 + SystemPointerAuthInformation = 236, 2252 + SystemSecureKernelDebuggerInformation = 237, 2253 + SystemOriginalImageFeatureInformation = 238, 2254 + #ifdef __WINESRC__ 2255 + SystemWineVersionInformation = 1000, 2256 + #endif 1003 2257 } SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS; 1004 2258 2259 + typedef struct _SYSTEM_CODEINTEGRITY_INFORMATION 2260 + { 2261 + ULONG Length; 2262 + ULONG CodeIntegrityOptions; 2263 + } SYSTEM_CODEINTEGRITY_INFORMATION, *PSYSTEM_CODEINTEGRITY_INFORMATION; 2264 + 2265 + #define CODEINTEGRITY_OPTION_ENABLED 0x0001 2266 + #define CODEINTEGRITY_OPTION_TESTSIGN 0x0002 2267 + #define CODEINTEGRITY_OPTION_UMCI_ENABLED 0x0004 2268 + #define CODEINTEGRITY_OPTION_UMCI_AUDITMODE_ENABLED 0x0008 2269 + #define CODEINTEGRITY_OPTION_UMCI_EXCLUSIONPATHS_ENABLED 0x0010 2270 + #define CODEINTEGRITY_OPTION_TEST_BUILD 0x0020 2271 + #define CODEINTEGRITY_OPTION_PREPRODUCTION_BUILD 0x0040 2272 + #define CODEINTEGRITY_OPTION_DEBUGMODE_ENABLED 0x0080 2273 + #define CODEINTEGRITY_OPTION_FLIGHT_BUILD 0x0100 2274 + #define CODEINTEGRITY_OPTION_FLIGHTING_ENABLED 0x0200 2275 + #define CODEINTEGRITY_OPTION_HVCI_KMCI_ENABLED 0x0400 2276 + #define CODEINTEGRITY_OPTION_HVCI_KMCI_AUDITMODE_ENABLED 0x0800 2277 + #define CODEINTEGRITY_OPTION_HVCI_KMCI_STRICTMODE_ENABLED 0x1000 2278 + #define CODEINTEGRITY_OPTION_HVCI_IUM_ENABLED 0x2000 2279 + 1005 2280 typedef enum _THREADINFOCLASS { 1006 - ThreadBasicInformation, 2281 + ThreadBasicInformation = 0, 1007 2282 ThreadTimes, 1008 2283 ThreadPriority, 1009 2284 ThreadBasePriority, ··· 1037 2312 ThreadUmsInformation, 1038 2313 ThreadCounterProfiling, 1039 2314 ThreadIdealProcessorEx, 1040 - MaxThreadInfoClass 2315 + ThreadCpuAccountingInformation, 2316 + ThreadSuspendCount, 2317 + ThreadHeterogeneousCpuPolicy, 2318 + ThreadContainerId, 2319 + ThreadNameInformation, 2320 + ThreadSelectedCpuSets, 2321 + ThreadSystemThreadInformation, 2322 + ThreadActualGroupAffinity, 2323 + ThreadDynamicCodePolicyInfo, 2324 + ThreadExplicitCaseSensitivity, 2325 + ThreadWorkOnBehalfTicket, 2326 + ThreadSubsystemInformation, 2327 + ThreadDbgkWerReportActive, 2328 + ThreadAttachContainer, 2329 + ThreadManageWritesToExecutableMemory, 2330 + ThreadPowerThrottlingState, 2331 + ThreadWorkloadClass, 2332 + ThreadCreateStateChange, 2333 + ThreadApplyStateChange, 2334 + ThreadStrongerBadHandleChecks, 2335 + ThreadEffectiveIoPriority, 2336 + ThreadEffectivePagePriority, 2337 + MaxThreadInfoClass, 2338 + #ifdef __WINESRC__ 2339 + ThreadWineNativeThreadName = 1000, 2340 + #endif 1041 2341 } THREADINFOCLASS; 1042 2342 1043 2343 typedef struct _THREAD_BASIC_INFORMATION ··· 1056 2356 LDT_ENTRY Entry; 1057 2357 } THREAD_DESCRIPTOR_INFORMATION, *PTHREAD_DESCRIPTOR_INFORMATION; 1058 2358 2359 + typedef struct _THREAD_NAME_INFORMATION 2360 + { 2361 + UNICODE_STRING ThreadName; 2362 + } THREAD_NAME_INFORMATION, *PTHREAD_NAME_INFORMATION; 2363 + 2364 + typedef struct _MANAGE_WRITES_TO_EXECUTABLE_MEMORY 2365 + { 2366 + ULONG Version : 8; 2367 + ULONG ProcessEnableWriteExceptions : 1; 2368 + ULONG ThreadAllowWrites : 1; 2369 + ULONG Spare : 22; 2370 + PVOID KernelWriteToExecutableSignal; 2371 + } MANAGE_WRITES_TO_EXECUTABLE_MEMORY, *PMANAGE_WRITES_TO_EXECUTABLE_MEMORY; 2372 + 1059 2373 typedef struct _KERNEL_USER_TIMES { 1060 2374 LARGE_INTEGER CreateTime; 1061 2375 LARGE_INTEGER ExitTime; ··· 1069 2383 1070 2384 typedef enum _MEMORY_INFORMATION_CLASS { 1071 2385 MemoryBasicInformation, 1072 - MemoryWorkingSetList, 1073 - MemorySectionName, 1074 - MemoryBasicVlmInformation 2386 + MemoryWorkingSetInformation, 2387 + MemoryMappedFilenameInformation, 2388 + MemoryRegionInformation, 2389 + MemoryWorkingSetExInformation, 2390 + MemorySharedCommitInformation, 2391 + MemoryImageInformation, 2392 + MemoryRegionInformationEx, 2393 + MemoryPrivilegedBasicInformation, 2394 + MemoryEnclaveImageInformation, 2395 + MemoryBasicInformationCapped, 2396 + MemoryPhysicalContiguityInformation, 2397 + MemoryBadInformation, 2398 + MemoryBadInformationAllProcesses, 2399 + #ifdef __WINESRC__ 2400 + MemoryWineUnixFuncs = 1000, 2401 + MemoryWineUnixWow64Funcs, 2402 + #endif 1075 2403 } MEMORY_INFORMATION_CLASS; 1076 2404 1077 2405 typedef struct _MEMORY_SECTION_NAME ··· 1079 2407 UNICODE_STRING SectionFileName; 1080 2408 } MEMORY_SECTION_NAME, *PMEMORY_SECTION_NAME; 1081 2409 2410 + typedef union _MEMORY_WORKING_SET_EX_BLOCK { 2411 + ULONG_PTR Flags; 2412 + struct { 2413 + ULONG_PTR Valid : 1; 2414 + ULONG_PTR ShareCount : 3; 2415 + ULONG_PTR Win32Protection : 11; 2416 + ULONG_PTR Shared : 1; 2417 + ULONG_PTR Node : 6; 2418 + ULONG_PTR Locked : 1; 2419 + ULONG_PTR LargePage : 1; 2420 + } DUMMYSTRUCTNAME; 2421 + } MEMORY_WORKING_SET_EX_BLOCK, *PMEMORY_WORKING_SET_EX_BLOCK; 2422 + 2423 + typedef struct _MEMORY_WORKING_SET_EX_INFORMATION { 2424 + PVOID VirtualAddress; 2425 + MEMORY_WORKING_SET_EX_BLOCK VirtualAttributes; 2426 + } MEMORY_WORKING_SET_EX_INFORMATION, *PMEMORY_WORKING_SET_EX_INFORMATION; 2427 + 2428 + typedef struct _MEMORY_REGION_INFORMATION 2429 + { 2430 + PVOID AllocationBase; 2431 + ULONG AllocationProtect; 2432 + union 2433 + { 2434 + ULONG RegionType; 2435 + struct 2436 + { 2437 + ULONG Private : 1; 2438 + ULONG MappedDataFile : 1; 2439 + ULONG MappedImage : 1; 2440 + ULONG MappedPageFile : 1; 2441 + ULONG MappedPhysical : 1; 2442 + ULONG DirectMapped : 1; 2443 + ULONG Reserved : 26; 2444 + } DUMMYSTRUCTNAME; 2445 + } DUMMYUNIONNAME; 2446 + SIZE_T RegionSize; 2447 + SIZE_T CommitSize; 2448 + ULONG_PTR PartitionId; 2449 + ULONG_PTR NodePreference; 2450 + } MEMORY_REGION_INFORMATION, *PMEMORY_REGION_INFORMATION; 2451 + 2452 + typedef struct _MEMORY_IMAGE_INFORMATION 2453 + { 2454 + PVOID ImageBase; 2455 + SIZE_T SizeOfImage; 2456 + union 2457 + { 2458 + ULONG ImageFlags; 2459 + struct 2460 + { 2461 + ULONG ImagePartialMap : 1; 2462 + ULONG ImageNotExecutable : 1; 2463 + ULONG ImageSigningLevel : 4; 2464 + ULONG Reserved : 26; 2465 + }; 2466 + }; 2467 + } MEMORY_IMAGE_INFORMATION, *PMEMORY_IMAGE_INFORMATION; 2468 + 1082 2469 typedef enum _MUTANT_INFORMATION_CLASS 1083 2470 { 1084 2471 MutantBasicInformation ··· 1101 2488 BOOLEAN TimerState; 1102 2489 } TIMER_BASIC_INFORMATION, *PTIMER_BASIC_INFORMATION; 1103 2490 2491 + typedef enum 2492 + { 2493 + VmPrefetchInformation, 2494 + VmPagePriorityInformation, 2495 + VmCfgCallTargetInformation, 2496 + VmPageDirtyStateInformation, 2497 + VmImageHotPatchInformation, 2498 + VmPhysicalContiguityInformation, 2499 + VmVirtualMachinePrepopulateInformation, 2500 + VmRemoveFromWorkingSetInformation, 2501 + } VIRTUAL_MEMORY_INFORMATION_CLASS, *PVIRTUAL_MEMORY_INFORMATION_CLASS; 2502 + 2503 + typedef struct _MEMORY_RANGE_ENTRY 2504 + { 2505 + PVOID VirtualAddress; 2506 + SIZE_T NumberOfBytes; 2507 + } MEMORY_RANGE_ENTRY, *PMEMORY_RANGE_ENTRY; 2508 + 1104 2509 1105 2510 /* return type of RtlDetermineDosPathNameType_U (FIXME: not the correct names) */ 1106 2511 typedef enum ··· 1137 2542 DWORD dwUnknown; /* 3c/4c */ 1138 2543 } SYSTEM_THREAD_INFORMATION, *PSYSTEM_THREAD_INFORMATION; 1139 2544 2545 + typedef struct _SYSTEM_EXTENDED_THREAD_INFORMATION 2546 + { 2547 + SYSTEM_THREAD_INFORMATION ThreadInfo; /* 00/00 */ 2548 + void *StackBase; /* 40/50 */ 2549 + void *StackLimit; /* 44/58 */ 2550 + void *Win32StartAddress; /* 48/60 */ 2551 + void *TebBase; /* 4c/68 */ 2552 + ULONG_PTR Reserved2; /* 50/70 */ 2553 + ULONG_PTR Reserved3; /* 54/78 */ 2554 + ULONG_PTR Reserved4; /* 58/80 */ 2555 + } SYSTEM_EXTENDED_THREAD_INFORMATION, *PSYSTEM_EXTENDED_THREAD_INFORMATION; 2556 + 1140 2557 typedef struct _IO_STATUS_BLOCK { 1141 2558 union { 1142 2559 NTSTATUS Status; ··· 1229 2646 UCHAR Data[1]; 1230 2647 } KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION; 1231 2648 2649 + typedef struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 { 2650 + ULONG Type; 2651 + ULONG DataLength; 2652 + UCHAR Data[1]; 2653 + } KEY_VALUE_PARTIAL_INFORMATION_ALIGN64, *PKEY_VALUE_PARTIAL_INFORMATION_ALIGN64; 2654 + 2655 + typedef enum _MEMORY_RESERVE_OBJECT_TYPE 2656 + { 2657 + MemoryReserveObjectTypeUserApc, 2658 + MemoryReserveObjectTypeIoCompletion 2659 + } MEMORY_RESERVE_OBJECT_TYPE, PMEMORY_RESERVE_OBJECT_TYPE; 2660 + 1232 2661 #ifndef __OBJECT_ATTRIBUTES_DEFINED__ 1233 2662 #define __OBJECT_ATTRIBUTES_DEFINED__ 1234 2663 typedef struct _OBJECT_ATTRIBUTES { ··· 1241 2670 } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES; 1242 2671 #endif 1243 2672 1244 - typedef struct _OBJECT_DATA_INFORMATION { 1245 - BOOLEAN InheritHandle; 2673 + typedef struct _OBJECT_HANDLE_FLAG_INFORMATION { 2674 + BOOLEAN Inherit; 1246 2675 BOOLEAN ProtectFromClose; 1247 - } OBJECT_DATA_INFORMATION, *POBJECT_DATA_INFORMATION; 2676 + } OBJECT_HANDLE_FLAG_INFORMATION, *POBJECT_HANDLE_FLAG_INFORMATION; 1248 2677 1249 2678 typedef struct _OBJECT_BASIC_INFORMATION { 1250 2679 ULONG Attributes; ··· 1284 2713 BOOLEAN SecurityRequired; 1285 2714 BOOLEAN MaintainHandleCount; 1286 2715 UCHAR TypeIndex; 1287 - CHAR Reserved; 2716 + CHAR ReservedByte; 1288 2717 ULONG PoolType; 1289 2718 ULONG DefaultPagedPoolCharge; 1290 2719 ULONG DefaultNonPagedPoolCharge; ··· 1297 2726 1298 2727 typedef struct _PROCESS_BASIC_INFORMATION { 1299 2728 #ifdef __WINESRC__ 1300 - DWORD_PTR ExitStatus; 1301 - PPEB PebBaseAddress; 1302 - DWORD_PTR AffinityMask; 1303 - DWORD_PTR BasePriority; 2729 + NTSTATUS ExitStatus; 2730 + PEB *PebBaseAddress; 2731 + ULONG_PTR AffinityMask; 2732 + LONG BasePriority; 1304 2733 ULONG_PTR UniqueProcessId; 1305 2734 ULONG_PTR InheritedFromUniqueProcessId; 1306 2735 #else ··· 1312 2741 #endif 1313 2742 } PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION; 1314 2743 2744 + typedef struct _PROCESS_BASIC_INFORMATION64 { 2745 + NTSTATUS ExitStatus; 2746 + UINT64 PebBaseAddress; 2747 + UINT64 AffinityMask; 2748 + LONG BasePriority; 2749 + UINT64 UniqueProcessId; 2750 + UINT64 InheritedFromUniqueProcessId; 2751 + } PROCESS_BASIC_INFORMATION64; 2752 + 1315 2753 #define PROCESS_PRIOCLASS_IDLE 1 1316 2754 #define PROCESS_PRIOCLASS_NORMAL 2 1317 2755 #define PROCESS_PRIOCLASS_HIGH 3 ··· 1324 2762 UCHAR PriorityClass; 1325 2763 } PROCESS_PRIORITY_CLASS, *PPROCESS_PRIORITY_CLASS; 1326 2764 1327 - typedef struct _RTL_HEAP_DEFINITION { 1328 - ULONG Length; /* = sizeof(RTL_HEAP_DEFINITION) */ 2765 + typedef struct _PROCESS_CYCLE_TIME_INFORMATION { 2766 + ULONGLONG AccumulatedCycles; 2767 + ULONGLONG CurrentCycleCount; 2768 + } PROCESS_CYCLE_TIME_INFORMATION, *PPROCESS_CYCLE_TIME_INFORMATION; 2769 + 2770 + typedef struct _PROCESS_STACK_ALLOCATION_INFORMATION 2771 + { 2772 + SIZE_T ReserveSize; 2773 + SIZE_T ZeroBits; 2774 + PVOID StackBase; 2775 + } PROCESS_STACK_ALLOCATION_INFORMATION, *PPROCESS_STACK_ALLOCATION_INFORMATION; 1329 2776 1330 - ULONG Unknown[11]; 1331 - } RTL_HEAP_DEFINITION, *PRTL_HEAP_DEFINITION; 2777 + typedef struct _PROCESS_STACK_ALLOCATION_INFORMATION_EX 2778 + { 2779 + ULONG PreferredNode; 2780 + ULONG Reserved0; 2781 + ULONG Reserved1; 2782 + ULONG Reserved2; 2783 + PROCESS_STACK_ALLOCATION_INFORMATION AllocInfo; 2784 + } PROCESS_STACK_ALLOCATION_INFORMATION_EX, *PPROCESS_STACK_ALLOCATION_INFORMATION_EX; 2785 + 2786 + typedef NTSTATUS (NTAPI RTL_HEAP_COMMIT_ROUTINE)(PVOID base, PVOID *address, PSIZE_T size); 2787 + typedef RTL_HEAP_COMMIT_ROUTINE *PRTL_HEAP_COMMIT_ROUTINE; 2788 + 2789 + typedef struct _RTL_HEAP_PARAMETERS 2790 + { 2791 + ULONG Length; 2792 + SIZE_T SegmentReserve; 2793 + SIZE_T SegmentCommit; 2794 + SIZE_T DeCommitFreeblockThreshold; 2795 + SIZE_T DeCommitTotalFreeThreshold; 2796 + SIZE_T MaximumAllocationSize; 2797 + SIZE_T VirtualMemoryThreshold; 2798 + SIZE_T InitialCommit; 2799 + SIZE_T InitialReserve; 2800 + PRTL_HEAP_COMMIT_ROUTINE CommitRoutine; 2801 + SIZE_T Reserved[2]; 2802 + } RTL_HEAP_PARAMETERS, *PRTL_HEAP_PARAMETERS; 1332 2803 1333 2804 typedef struct _RTL_RWLOCK { 1334 2805 RTL_CRITICAL_SECTION rtlCS; ··· 1370 2841 /* System Information Class 0x01 */ 1371 2842 1372 2843 typedef struct _SYSTEM_CPU_INFORMATION { 1373 - WORD Architecture; 1374 - WORD Level; 1375 - WORD Revision; /* combination of CPU model and stepping */ 1376 - WORD Reserved; /* always zero */ 1377 - DWORD FeatureSet; /* see bit flags below */ 2844 + USHORT ProcessorArchitecture; 2845 + USHORT ProcessorLevel; 2846 + USHORT ProcessorRevision; 2847 + USHORT MaximumProcessors; 2848 + ULONG ProcessorFeatureBits; 1378 2849 } SYSTEM_CPU_INFORMATION, *PSYSTEM_CPU_INFORMATION; 1379 2850 1380 2851 /* definitions of bits in the Feature set for the x86 processors */ 1381 2852 #define CPU_FEATURE_VME 0x00000005 /* Virtual 86 Mode Extensions */ 1382 2853 #define CPU_FEATURE_TSC 0x00000002 /* Time Stamp Counter available */ 1383 2854 #define CPU_FEATURE_CMOV 0x00000008 /* Conditional Move instruction*/ 1384 - #define CPU_FEATURE_PGE 0x00000014 /* Page table Entry Global bit */ 2855 + #define CPU_FEATURE_PGE 0x00000014 /* Page table Entry Global bit */ 1385 2856 #define CPU_FEATURE_PSE 0x00000024 /* Page Size Extension */ 1386 2857 #define CPU_FEATURE_MTRR 0x00000040 /* Memory Type Range Registers */ 1387 2858 #define CPU_FEATURE_CX8 0x00000080 /* Compare and eXchange 8 byte instr. */ ··· 1395 2866 #define CPU_FEATURE_SSE2 0x00010000 /* SSE2 extensions (XMMI64) */ 1396 2867 #define CPU_FEATURE_DS 0x00020000 /* Debug Store */ 1397 2868 #define CPU_FEATURE_HTT 0x00040000 /* Hyper Threading Technology */ 2869 + #define CPU_FEATURE_SSE3 0x00080000 /* SSE3 extensions */ 2870 + #define CPU_FEATURE_CX128 0x00100000 /* cmpxchg16b instruction */ 2871 + #define CPU_FEATURE_XSAVE 0x00800000 /* XSAVE instructions */ 2872 + #define CPU_FEATURE_2NDLEV 0x04000000 /* Second-level address translation */ 2873 + #define CPU_FEATURE_VIRT 0x08000000 /* Virtualization support */ 2874 + #define CPU_FEATURE_RDFS 0x10000000 /* RDFSBASE etc. instructions */ 2875 + #define CPU_FEATURE_NX 0x20000000 /* Data execution prevention */ 2876 + 2877 + /* FIXME: following values are made up, actual flags are unknown */ 2878 + #define CPU_FEATURE_SSSE3 0x00008000 /* SSSE3 instructions */ 2879 + #define CPU_FEATURE_SSE41 0x01000000 /* SSE41 instructions */ 2880 + #define CPU_FEATURE_SSE42 0x02000000 /* SSE42 instructions */ 2881 + #define CPU_FEATURE_AVX 0x40000000 /* AVX instructions */ 2882 + #define CPU_FEATURE_AVX2 0x80000000 /* AVX2 instructions */ 2883 + #define CPU_FEATURE_PAE 0x00200000 2884 + #define CPU_FEATURE_DAZ 0x00400000 2885 + 2886 + #define CPU_FEATURE_ARM_VFP_32 0x00000001 2887 + #define CPU_FEATURE_ARM_NEON 0x00000002 2888 + #define CPU_FEATURE_ARM_V8_CRC32 0x00000004 2889 + #define CPU_FEATURE_ARM_V8_CRYPTO 0x00000008 2890 + #define CPU_FEATURE_ARM_V81_ATOMIC 0x00000010 2891 + #define CPU_FEATURE_ARM_V82_DP 0x00000020 2892 + #define CPU_FEATURE_ARM_V83_JSCVT 0x00000040 2893 + #define CPU_FEATURE_ARM_V83_LRCPC 0x00000080 2894 + #define CPU_FEATURE_ARM_SVE 0x00000100 2895 + #define CPU_FEATURE_ARM_SVE2 0x00000200 2896 + #define CPU_FEATURE_ARM_SVE2_1 0x00000400 2897 + #define CPU_FEATURE_ARM_SVE_AES 0x00000800 2898 + #define CPU_FEATURE_ARM_SVE_PMULL128 0x00001000 2899 + #define CPU_FEATURE_ARM_SVE_BITPERM 0x00002000 2900 + #define CPU_FEATURE_ARM_SVE_BF16 0x00004000 2901 + #define CPU_FEATURE_ARM_SVE_EBF16 0x00008000 2902 + #define CPU_FEATURE_ARM_SVE_B16B16 0x00010000 2903 + #define CPU_FEATURE_ARM_SVE_SHA3 0x00020000 2904 + #define CPU_FEATURE_ARM_SVE_SM4 0x00040000 2905 + #define CPU_FEATURE_ARM_SVE_I8MM 0x00080000 2906 + #define CPU_FEATURE_ARM_SVE_F32MM 0x00100000 2907 + #define CPU_FEATURE_ARM_SVE_F64MM 0x00200000 2908 + 2909 + typedef struct _SYSTEM_PROCESSOR_FEATURES_INFORMATION 2910 + { 2911 + ULONGLONG ProcessorFeatureBits; 2912 + ULONGLONG Reserved[3]; 2913 + } SYSTEM_PROCESSOR_FEATURES_INFORMATION, *PSYSTEM_PROCESSOR_FEATURES_INFORMATION; 1398 2914 1399 2915 /* System Information Class 0x02 */ 1400 2916 ··· 1479 2995 1480 2996 typedef struct _SYSTEM_TIMEOFDAY_INFORMATION { 1481 2997 #ifdef __WINESRC__ 1482 - LARGE_INTEGER liKeBootTime; 1483 - LARGE_INTEGER liKeSystemTime; 1484 - LARGE_INTEGER liExpTimeZoneBias; 1485 - ULONG uCurrentTimeZoneId; 1486 - DWORD dwUnknown1[5]; 2998 + LARGE_INTEGER BootTime; 2999 + LARGE_INTEGER SystemTime; 3000 + LARGE_INTEGER TimeZoneBias; 3001 + ULONG TimeZoneId; 3002 + ULONG Reserved; 3003 + ULONGLONG BootTimeBias; 3004 + ULONGLONG SleepTimeBias; 1487 3005 #else 1488 3006 BYTE Reserved1[48]; 1489 3007 #endif ··· 1526 3044 SYSTEM_HANDLE_ENTRY Handle[1]; 1527 3045 } SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION; 1528 3046 1529 - /* System Information Class 0x40 */ 1530 - 1531 3047 typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX 1532 3048 { 1533 - PVOID Object; 3049 + void *Object; 1534 3050 ULONG_PTR UniqueProcessId; 1535 3051 ULONG_PTR HandleValue; 1536 - ULONG GrantedAccess; 1537 - USHORT CreatorBackTraceIndex; 1538 - USHORT ObjectTypeIndex; 1539 - ULONG HandleAttributes; 1540 - ULONG Reserved; 1541 - } SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX, *PSYSTEM_HANDLE_TABLE_ENTRY_INFO_EX; 3052 + ULONG GrantedAccess; 3053 + USHORT CreatorBackTraceIndex; 3054 + USHORT ObjectTypeIndex; 3055 + ULONG HandleAttributes; 3056 + ULONG Reserved; 3057 + } SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX; 1542 3058 1543 3059 typedef struct _SYSTEM_HANDLE_INFORMATION_EX 1544 3060 { 1545 - ULONG_PTR Count; 1546 - ULONG_PTR Reserved; 1547 - SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX Handle[1]; 1548 - } SYSTEM_HANDLE_INFORMATION_EX, *PSYSTEM_HANDLE_INFORMATION_EX; 3061 + ULONG_PTR NumberOfHandles; 3062 + ULONG_PTR Reserved; 3063 + SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX Handles[1]; 3064 + } SYSTEM_HANDLE_INFORMATION_EX; 1549 3065 1550 3066 /* System Information Class 0x15 */ 1551 3067 1552 3068 typedef struct _SYSTEM_CACHE_INFORMATION { 1553 - ULONG CurrentSize; 1554 - ULONG PeakSize; 3069 + SIZE_T CurrentSize; 3070 + SIZE_T PeakSize; 1555 3071 ULONG PageFaultCount; 1556 - ULONG MinimumWorkingSet; 1557 - ULONG MaximumWorkingSet; 1558 - ULONG unused[4]; 1559 - #ifdef _WIN64 1560 - ULONG unknown64[7]; 1561 - #endif 3072 + SIZE_T MinimumWorkingSet; 3073 + SIZE_T MaximumWorkingSet; 3074 + SIZE_T CurrentSizeIncludingTransitionInPages; 3075 + SIZE_T PeakSizeIncludingTransitionInPages; 3076 + ULONG TransitionRePurposeCount; 3077 + ULONG Flags; 1562 3078 } SYSTEM_CACHE_INFORMATION, *PSYSTEM_CACHE_INFORMATION; 1563 3079 1564 3080 /* System Information Class 0x17 */ 1565 3081 1566 3082 typedef struct _SYSTEM_INTERRUPT_INFORMATION { 1567 - BYTE Reserved1[24]; 3083 + ULONG ContextSwitches; 3084 + ULONG DpcCount; 3085 + ULONG DpcRate; 3086 + ULONG TimeIncrement; 3087 + ULONG DpcBypassCount; 3088 + ULONG ApcBypassCount; 1568 3089 } SYSTEM_INTERRUPT_INFORMATION, *PSYSTEM_INTERRUPT_INFORMATION; 1569 3090 1570 3091 typedef struct _SYSTEM_CONFIGURATION_INFO { ··· 1599 3120 BOOLEAN DebuggerNotPresent; 1600 3121 } SYSTEM_KERNEL_DEBUGGER_INFORMATION, *PSYSTEM_KERNEL_DEBUGGER_INFORMATION; 1601 3122 1602 - /* System Information Class 0x05 */ 3123 + typedef struct _SYSTEM_KERNEL_DEBUGGER_INFORMATION_EX { 3124 + BOOLEAN DebuggerAllowed; 3125 + BOOLEAN DebuggerEnabled; 3126 + BOOLEAN DebuggerPresent; 3127 + } SYSTEM_KERNEL_DEBUGGER_INFORMATION_EX, *PSYSTEM_KERNEL_DEBUGGER_INFORMATION_EX; 1603 3128 1604 - typedef struct _VM_COUNTERS_ { 3129 + typedef struct _VM_COUNTERS 3130 + { 1605 3131 SIZE_T PeakVirtualSize; 1606 3132 SIZE_T VirtualSize; 1607 - ULONG PageFaultCount; 3133 + ULONG PageFaultCount; 1608 3134 SIZE_T PeakWorkingSetSize; 1609 3135 SIZE_T WorkingSetSize; 1610 3136 SIZE_T QuotaPeakPagedPoolUsage; ··· 1613 3139 SIZE_T QuotaNonPagedPoolUsage; 1614 3140 SIZE_T PagefileUsage; 1615 3141 SIZE_T PeakPagefileUsage; 1616 - SIZE_T PrivatePageCount; 1617 3142 } VM_COUNTERS, *PVM_COUNTERS; 1618 3143 3144 + typedef struct _VM_COUNTERS_EX 3145 + { 3146 + SIZE_T PeakVirtualSize; 3147 + SIZE_T VirtualSize; 3148 + ULONG PageFaultCount; 3149 + SIZE_T PeakWorkingSetSize; 3150 + SIZE_T WorkingSetSize; 3151 + SIZE_T QuotaPeakPagedPoolUsage; 3152 + SIZE_T QuotaPagedPoolUsage; 3153 + SIZE_T QuotaPeakNonPagedPoolUsage; 3154 + SIZE_T QuotaNonPagedPoolUsage; 3155 + SIZE_T PagefileUsage; 3156 + SIZE_T PeakPagefileUsage; 3157 + SIZE_T PrivateUsage; 3158 + } VM_COUNTERS_EX, *PVM_COUNTERS_EX; 3159 + 1619 3160 typedef struct _SYSTEM_PROCESS_INFORMATION { 1620 3161 #ifdef __WINESRC__ /* win32/win64 */ 1621 3162 ULONG NextEntryOffset; /* 00/00 */ 1622 3163 DWORD dwThreadCount; /* 04/04 */ 1623 - DWORD dwUnknown1[6]; /* 08/08 */ 3164 + LARGE_INTEGER WorkingSetPrivateSize; /* 08/08 */ 3165 + ULONG HardFaultCount; /* 10/10 */ 3166 + ULONG NumberOfThreadsHighWatermark;/* 14/14 */ 3167 + ULONGLONG CycleTime; /* 18/18 */ 1624 3168 LARGE_INTEGER CreationTime; /* 20/20 */ 1625 3169 LARGE_INTEGER UserTime; /* 28/28 */ 1626 3170 LARGE_INTEGER KernelTime; /* 30/30 */ ··· 1630 3174 HANDLE ParentProcessId; /* 48/58 */ 1631 3175 ULONG HandleCount; /* 4c/60 */ 1632 3176 ULONG SessionId; /* 50/64 */ 1633 - DWORD dwUnknown4; /* 54/68 */ 1634 - VM_COUNTERS vmCounters; /* 58/70 */ 3177 + ULONG_PTR UniqueProcessKey; /* 54/68 */ 3178 + VM_COUNTERS_EX vmCounters; /* 58/70 */ 1635 3179 IO_COUNTERS ioCounters; /* 88/d0 */ 1636 3180 SYSTEM_THREAD_INFORMATION ti[1]; /* b8/100 */ 1637 3181 #else ··· 1655 3199 PVOID Reserved1; 1656 3200 } SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION; 1657 3201 3202 + typedef struct _SYSTEM_TIME_ADJUSTMENT_QUERY { 3203 + ULONG TimeAdjustment; 3204 + ULONG TimeIncrement; 3205 + BOOLEAN TimeAdjustmentDisabled; 3206 + } SYSTEM_TIME_ADJUSTMENT_QUERY, *PSYSTEM_TIME_ADJUSTMENT_QUERY; 3207 + 1658 3208 typedef struct _SYSTEM_TIME_ADJUSTMENT { 1659 3209 ULONG TimeAdjustment; 1660 3210 BOOLEAN TimeAdjustmentDisabled; 1661 3211 } SYSTEM_TIME_ADJUSTMENT, *PSYSTEM_TIME_ADJUSTMENT; 1662 3212 3213 + typedef enum _SYSTEM_FIRMWARE_TABLE_ACTION 3214 + { 3215 + SystemFirmwareTable_Enumerate = 0, 3216 + SystemFirmwareTable_Get = 1 3217 + } SYSTEM_FIRMWARE_TABLE_ACTION, *PSYSTEM_FIRMWARE_TABLE_ACTION; 3218 + 3219 + /* System Information Class 0x4C */ 3220 + 3221 + typedef struct _SYSTEM_FIRMWARE_TABLE_INFORMATION 3222 + { 3223 + ULONG ProviderSignature; 3224 + SYSTEM_FIRMWARE_TABLE_ACTION Action; 3225 + ULONG TableID; 3226 + ULONG TableBufferLength; 3227 + UCHAR TableBuffer[1]; 3228 + } SYSTEM_FIRMWARE_TABLE_INFORMATION, *PSYSTEM_FIRMWARE_TABLE_INFORMATION; 3229 + 3230 + typedef struct _SYSTEM_PROCESS_ID_INFORMATION 3231 + { 3232 + ULONG_PTR ProcessId; 3233 + UNICODE_STRING ImageName; 3234 + } SYSTEM_PROCESS_ID_INFORMATION, *PSYSTEM_PROCESS_ID_INFORMATION; 3235 + 3236 + #ifndef __REACTOS__ 3237 + typedef struct _TIME_FIELDS 3238 + { CSHORT Year; 3239 + CSHORT Month; 3240 + CSHORT Day; 3241 + CSHORT Hour; 3242 + CSHORT Minute; 3243 + CSHORT Second; 3244 + CSHORT Milliseconds; 3245 + CSHORT Weekday; 3246 + } TIME_FIELDS, *PTIME_FIELDS; 3247 + #endif 3248 + 1663 3249 typedef struct _WINSTATIONINFORMATIONW { 1664 3250 BYTE Reserved2[70]; 1665 3251 ULONG LogonId; ··· 1684 3270 PVOID RemoteSectionBase; 1685 3271 ULONG SectionBaseDelta; 1686 3272 HANDLE EventPairHandle; 1687 - ULONG Unknown[2]; 3273 + SIZE_T Unknown[2]; 1688 3274 HANDLE RemoteThreadHandle; 1689 3275 ULONG InfoClassMask; 1690 - ULONG SizeOfInfo; 1691 - ULONG AllocatedSize; 3276 + SIZE_T SizeOfInfo; 3277 + SIZE_T AllocatedSize; 1692 3278 ULONG SectionSize; 1693 3279 PVOID ModuleInformation; 1694 3280 PVOID BackTraceInformation; ··· 1755 3341 1756 3342 typedef unsigned short RTL_ATOM, *PRTL_ATOM; 1757 3343 1758 - /* Wine doesn't implement atom table as NT does: 1759 - * - in NT, atom tables are user space tables, which ntdll directly accesses 1760 - * - on Wine, (even local) atom tables are wineserver objects, hence a HANDLE 1761 - */ 1762 - typedef struct atom_table *RTL_ATOM_TABLE, **PRTL_ATOM_TABLE; 1763 - 1764 3344 typedef enum _ATOM_INFORMATION_CLASS { 1765 3345 AtomBasicInformation = 0, 1766 3346 AtomTableInformation = 1, ··· 1791 3371 PVOID MaxHandle; /* 0x1c */ 1792 3372 } RTL_HANDLE_TABLE; 1793 3373 3374 + typedef struct _RTL_ATOM_TABLE_ENTRY 3375 + { 3376 + struct _RTL_ATOM_TABLE_ENTRY *HashLink; 3377 + WORD HandleIndex; 3378 + WORD Atom; 3379 + WORD ReferenceCount; 3380 + UCHAR Flags; 3381 + UCHAR NameLength; 3382 + WCHAR Name[1]; 3383 + } RTL_ATOM_TABLE_ENTRY, *PRTL_ATOM_TABLE_ENTRY; 3384 + 3385 + typedef struct _RTL_ATOM_TABLE 3386 + { 3387 + ULONG Signature; 3388 + RTL_CRITICAL_SECTION CriticalSection; 3389 + RTL_HANDLE_TABLE HandleTable; 3390 + ULONG NumberOfBuckets; 3391 + RTL_ATOM_TABLE_ENTRY *Buckets[1]; 3392 + } *RTL_ATOM_TABLE, **PRTL_ATOM_TABLE; 3393 + 1794 3394 /*********************************************************************** 1795 3395 * Defines 1796 3396 */ ··· 1813 3413 #define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000 1814 3414 #define FILE_NO_COMPRESSION 0x00008000 1815 3415 #define FILE_RESERVE_OPFILTER 0x00100000 1816 - #define FILE_TRANSACTED_MODE 0x00200000 3416 + #define FILE_OPEN_REPARSE_POINT 0x00200000 1817 3417 #define FILE_OPEN_OFFLINE_FILE 0x00400000 1818 3418 #define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 1819 3419 ··· 1876 3476 1877 3477 #define LOGONID_CURRENT ((ULONG)-1) 1878 3478 3479 + #define OBJ_PROTECT_CLOSE 0x00000001 1879 3480 #define OBJ_INHERIT 0x00000002 1880 3481 #define OBJ_PERMANENT 0x00000010 1881 3482 #define OBJ_EXCLUSIVE 0x00000020 ··· 1883 3484 #define OBJ_OPENIF 0x00000080 1884 3485 #define OBJ_OPENLINK 0x00000100 1885 3486 #define OBJ_KERNEL_HANDLE 0x00000200 1886 - #define OBJ_FORCE_ACCESS_CHECK 0x00000400 1887 - #define OBJ_VALID_ATTRIBUTES 0x000007F2 3487 + #define OBJ_VALID_ATTRIBUTES 0x000003F2 1888 3488 1889 3489 #define SERVERNAME_CURRENT ((HANDLE)NULL) 1890 3490 ··· 1986 3586 #define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010 1987 3587 #define RTL_QUERY_REGISTRY_DIRECT 0x00000020 1988 3588 #define RTL_QUERY_REGISTRY_DELETE 0x00000040 3589 + #define RTL_QUERY_REGISTRY_TYPECHECK 0x00000100 3590 + 3591 + #define RTL_QUERY_REGISTRY_TYPECHECK_SHIFT 24 1989 3592 1990 3593 typedef NTSTATUS (WINAPI *PRTL_QUERY_REGISTRY_ROUTINE)( PCWSTR ValueName, 1991 3594 ULONG ValueType, ··· 2039 3642 { 2040 3643 SectionBasicInformation, 2041 3644 SectionImageInformation, 3645 + SectionRelocationInformation, 3646 + SectionOriginalBaseInformation, 3647 + SectionInternalImageInformation 2042 3648 } SECTION_INFORMATION_CLASS; 2043 3649 2044 3650 typedef struct _SECTION_BASIC_INFORMATION { ··· 2053 3659 SIZE_T MaximumStackSize; 2054 3660 SIZE_T CommittedStackSize; 2055 3661 ULONG SubSystemType; 2056 - WORD SubsystemVersionLow; 2057 - WORD SubsystemVersionHigh; 2058 - ULONG GpValue; 3662 + USHORT MinorSubsystemVersion; 3663 + USHORT MajorSubsystemVersion; 3664 + USHORT MajorOperatingSystemVersion; 3665 + USHORT MinorOperatingSystemVersion; 2059 3666 USHORT ImageCharacteristics; 2060 3667 USHORT DllCharacteristics; 2061 3668 USHORT Machine; ··· 2070 3677 UCHAR ImageDynamicallyRelocated : 1; 2071 3678 UCHAR ImageMappedFlat : 1; 2072 3679 UCHAR BaseBelow4gb : 1; 2073 - UCHAR Reserved : 3; 3680 + UCHAR ComPlusPrefer32bit : 1; 3681 + UCHAR Reserved : 2; 2074 3682 } DUMMYSTRUCTNAME; 2075 3683 } DUMMYUNIONNAME; 2076 3684 ULONG LoaderFlags; ··· 2153 3761 } DIRECTORY_BASIC_INFORMATION, *PDIRECTORY_BASIC_INFORMATION; 2154 3762 2155 3763 typedef struct _INITIAL_TEB { 2156 - PVOID StackBase; 2157 - PVOID StackLimit; 2158 - PVOID StackCommit; 2159 - PVOID StackCommitMax; 2160 - PVOID StackReserved; 3764 + void *OldStackBase; 3765 + void *OldStackLimit; 3766 + void *StackBase; 3767 + void *StackLimit; 3768 + void *DeallocationStack; 2161 3769 } INITIAL_TEB, *PINITIAL_TEB; 2162 3770 2163 3771 typedef enum _PORT_INFORMATION_CLASS { ··· 2177 3785 #define IO_COMPLETION_MODIFY_STATE 0x0002 2178 3786 #define IO_COMPLETION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) 2179 3787 3788 + typedef struct _FILE_IO_COMPLETION_INFORMATION { 3789 + ULONG_PTR CompletionKey; 3790 + ULONG_PTR CompletionValue; 3791 + IO_STATUS_BLOCK IoStatusBlock; 3792 + } FILE_IO_COMPLETION_INFORMATION, *PFILE_IO_COMPLETION_INFORMATION; 3793 + 2180 3794 typedef enum _HARDERROR_RESPONSE_OPTION { 2181 3795 OptionAbortRetryIgnore, 2182 3796 OptionOk, ··· 2219 3833 SysDbgReadMsr, 2220 3834 SysDbgWriteMsr, 2221 3835 SysDbgReadBusData, 2222 - SysDbgWriteBusData 3836 + SysDbgWriteBusData, 3837 + SysDbgCheckLowMemory, 3838 + SysDbgEnableKernelDebugger, 3839 + SysDbgDisableKernelDebugger, 3840 + SysDbgGetAutoKdEnable, 3841 + SysDbgSetAutoKdEnable, 3842 + SysDbgGetPrintBufferSize, 3843 + SysDbgSetPrintBufferSize, 3844 + SysDbgGetKdUmExceptionEnable, 3845 + SysDbgSetKdUmExceptionEnable, 3846 + SysDbgGetTriageDump, 3847 + SysDbgGetKdBlockEnable, 3848 + SysDbgSetKdBlockEnable, 3849 + SysDbgRegisterForUmBreakInfo, 3850 + SysDbgGetUmBreakPid, 3851 + SysDbgClearUmBreakPid, 3852 + SysDbgGetUmAttachPid, 3853 + SysDbgClearUmAttachPid, 3854 + SysDbgGetLiveKernelDump, 3855 + SysDbgKdPullRemoteFile, 3856 + SysDbgMaxInfoClass 2223 3857 } SYSDBG_COMMAND, *PSYSDBG_COMMAND; 2224 3858 2225 3859 typedef struct _CPTABLEINFO ··· 2251 3885 * 2252 3886 * Those are not part of standard Winternl.h 2253 3887 */ 2254 - typedef struct _LDR_MODULE 3888 + 3889 + typedef struct _LDR_SERVICE_TAG_RECORD 3890 + { 3891 + struct _LDR_SERVICE_TAG_RECORD *Next; 3892 + ULONG ServiceTag; 3893 + } LDR_SERVICE_TAG_RECORD, *PLDR_SERVICE_TAG_RECORD; 3894 + 3895 + typedef struct _LDRP_CSLIST 3896 + { 3897 + SINGLE_LIST_ENTRY *Tail; 3898 + } LDRP_CSLIST, *PLDRP_CSLIST; 3899 + 3900 + typedef struct _LDR_DEPENDENCY 3901 + { 3902 + SINGLE_LIST_ENTRY dependency_to_entry; 3903 + struct _LDR_DDAG_NODE *dependency_to; 3904 + SINGLE_LIST_ENTRY dependency_from_entry; 3905 + struct _LDR_DDAG_NODE *dependency_from; 3906 + } LDR_DEPENDENCY, *PLDR_DEPENDENCY; 3907 + 3908 + typedef enum _LDR_DDAG_STATE 3909 + { 3910 + LdrModulesMerged = -5, 3911 + LdrModulesInitError = -4, 3912 + LdrModulesSnapError = -3, 3913 + LdrModulesUnloaded = -2, 3914 + LdrModulesUnloading = -1, 3915 + LdrModulesPlaceHolder = 0, 3916 + LdrModulesMapping = 1, 3917 + LdrModulesMapped = 2, 3918 + LdrModulesWaitingForDependencies = 3, 3919 + LdrModulesSnapping = 4, 3920 + LdrModulesSnapped = 5, 3921 + LdrModulesCondensed = 6, 3922 + LdrModulesReadyToInit = 7, 3923 + LdrModulesInitializing = 8, 3924 + LdrModulesReadyToRun = 9, 3925 + } LDR_DDAG_STATE; 3926 + 3927 + typedef struct _LDR_DDAG_NODE 2255 3928 { 2256 - LIST_ENTRY InLoadOrderModuleList; 2257 - LIST_ENTRY InMemoryOrderModuleList; 2258 - LIST_ENTRY InInitializationOrderModuleList; 2259 - void* BaseAddress; 3929 + LIST_ENTRY Modules; 3930 + LDR_SERVICE_TAG_RECORD *ServiceTagList; 3931 + LONG LoadCount; 3932 + ULONG LoadWhileUnloadingCount; 3933 + ULONG LowestLink; 3934 + LDRP_CSLIST Dependencies; 3935 + LDRP_CSLIST IncomingDependencies; 3936 + LDR_DDAG_STATE State; 3937 + SINGLE_LIST_ENTRY CondenseLink; 3938 + ULONG PreorderNumber; 3939 + } LDR_DDAG_NODE, *PLDR_DDAG_NODE; 3940 + 3941 + typedef enum _LDR_DLL_LOAD_REASON 3942 + { 3943 + LoadReasonStaticDependency, 3944 + LoadReasonStaticForwarderDependency, 3945 + LoadReasonDynamicForwarderDependency, 3946 + LoadReasonDelayloadDependency, 3947 + LoadReasonDynamicLoad, 3948 + LoadReasonAsImageLoad, 3949 + LoadReasonAsDataLoad, 3950 + LoadReasonUnknown = -1 3951 + } LDR_DLL_LOAD_REASON, *PLDR_DLL_LOAD_REASON; 3952 + 3953 + typedef struct _LDR_DATA_TABLE_ENTRY 3954 + { 3955 + LIST_ENTRY InLoadOrderLinks; 3956 + LIST_ENTRY InMemoryOrderLinks; 3957 + LIST_ENTRY InInitializationOrderLinks; 3958 + void* DllBase; 2260 3959 void* EntryPoint; 2261 3960 ULONG SizeOfImage; 2262 3961 UNICODE_STRING FullDllName; ··· 2267 3966 LIST_ENTRY HashLinks; 2268 3967 ULONG TimeDateStamp; 2269 3968 HANDLE ActivationContext; 2270 - PVOID PatchInformation; 2271 - LIST_ENTRY ForwarderLinks; 2272 - LIST_ENTRY ServiceTagLinks; 2273 - LIST_ENTRY StaticLinks; 2274 - PVOID ContextInformation; 3969 + void* Lock; 3970 + LDR_DDAG_NODE* DdagNode; 3971 + LIST_ENTRY NodeModuleLink; 3972 + struct _LDRP_LOAD_CONTEXT *LoadContext; 3973 + void* ParentDllBase; 3974 + void* SwitchBackContext; 3975 + RTL_BALANCED_NODE BaseAddressIndexNode; 3976 + RTL_BALANCED_NODE MappingInfoIndexNode; 2275 3977 ULONG_PTR OriginalBase; 2276 3978 LARGE_INTEGER LoadTime; 2277 - 2278 - /* Not part of Win7 but used by Wine */ 2279 - HANDLE SectionHandle; 2280 - } LDR_MODULE, *PLDR_MODULE; 3979 + ULONG BaseNameHashValue; 3980 + LDR_DLL_LOAD_REASON LoadReason; 3981 + ULONG ImplicitPathOptions; 3982 + ULONG ReferenceCount; 3983 + } LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY; 2281 3984 2282 3985 typedef struct _LDR_DLL_LOADED_NOTIFICATION_DATA 2283 3986 { 2284 3987 ULONG Flags; 2285 - PCUNICODE_STRING FullDllName; 2286 - PCUNICODE_STRING BaseDllName; 2287 - PVOID DllBase; 3988 + const UNICODE_STRING *FullDllName; 3989 + const UNICODE_STRING *BaseDllName; 3990 + void *DllBase; 2288 3991 ULONG SizeOfImage; 2289 3992 } LDR_DLL_LOADED_NOTIFICATION_DATA, *PLDR_DLL_LOADED_NOTIFICATION_DATA; 2290 3993 2291 3994 typedef struct _LDR_DLL_UNLOADED_NOTIFICATION_DATA 2292 3995 { 2293 3996 ULONG Flags; 2294 - PCUNICODE_STRING FullDllName; 2295 - PCUNICODE_STRING BaseDllName; 2296 - PVOID DllBase; 3997 + const UNICODE_STRING *FullDllName; 3998 + const UNICODE_STRING *BaseDllName; 3999 + void *DllBase; 2297 4000 ULONG SizeOfImage; 2298 4001 } LDR_DLL_UNLOADED_NOTIFICATION_DATA, *PLDR_DLL_UNLOADED_NOTIFICATION_DATA; 2299 4002 ··· 2305 4008 2306 4009 typedef void (CALLBACK *PLDR_DLL_NOTIFICATION_FUNCTION)(ULONG, LDR_DLL_NOTIFICATION_DATA*, void*); 2307 4010 2308 - /* those defines are (some of the) regular LDR_MODULE.Flags values */ 4011 + /* those defines are (some of the) regular LDR_DATA_TABLE_ENTRY.Flags values */ 2309 4012 #define LDR_IMAGE_IS_DLL 0x00000004 2310 4013 #define LDR_LOAD_IN_PROGRESS 0x00001000 2311 4014 #define LDR_UNLOAD_IN_PROGRESS 0x00002000 2312 4015 #define LDR_NO_DLL_CALLS 0x00040000 2313 4016 #define LDR_PROCESS_ATTACHED 0x00080000 2314 - #define LDR_MODULE_REBASED 0x00200000 4017 + #define LDR_COR_IMAGE 0x00400000 4018 + #define LDR_COR_ILONLY 0x01000000 2315 4019 2316 4020 /* these ones is Wine specific */ 2317 4021 #define LDR_DONT_RESOLVE_REFS 0x40000000 ··· 2320 4024 /* flag for LdrAddRefDll */ 2321 4025 #define LDR_ADDREF_DLL_PIN 0x00000001 2322 4026 2323 - /* FIXME: to be checked */ 2324 - #define MAXIMUM_FILENAME_LENGTH 256 4027 + /* flags for LdrGetDllHandleEx */ 4028 + #define LDR_GET_DLL_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT 0x00000001 4029 + #define LDR_GET_DLL_HANDLE_EX_FLAG_PIN 0x00000002 2325 4030 2326 4031 #define LDR_DLL_NOTIFICATION_REASON_LOADED 1 2327 4032 #define LDR_DLL_NOTIFICATION_REASON_UNLOADED 2 2328 4033 2329 - typedef struct _SYSTEM_MODULE 4034 + /* FIXME: to be checked */ 4035 + #define MAXIMUM_FILENAME_LENGTH 256 4036 + 4037 + typedef struct _RTL_PROCESS_MODULE_INFORMATION 2330 4038 { 2331 - PVOID Reserved1; /* 00/00 */ 2332 - PVOID Reserved2; /* 04/08 */ 4039 + PVOID Section; /* 00/00 */ 4040 + PVOID MappedBaseAddress; /* 04/08 */ 2333 4041 PVOID ImageBaseAddress; /* 08/10 */ 2334 4042 ULONG ImageSize; /* 0c/18 */ 2335 4043 ULONG Flags; /* 10/1c */ 2336 - WORD Id; /* 14/20 */ 2337 - WORD Rank; /* 16/22 */ 2338 - WORD Unknown; /* 18/24 */ 4044 + WORD LoadOrderIndex; /* 14/20 */ 4045 + WORD InitOrderIndex; /* 16/22 */ 4046 + WORD LoadCount; /* 18/24 */ 2339 4047 WORD NameOffset; /* 1a/26 */ 2340 4048 BYTE Name[MAXIMUM_FILENAME_LENGTH]; /* 1c/28 */ 2341 - } SYSTEM_MODULE, *PSYSTEM_MODULE; 4049 + } RTL_PROCESS_MODULE_INFORMATION, *PRTL_PROCESS_MODULE_INFORMATION; 2342 4050 2343 - typedef struct _SYSTEM_MODULE_INFORMATION 4051 + typedef struct _RTL_PROCESS_MODULES 2344 4052 { 2345 4053 ULONG ModulesCount; 2346 - SYSTEM_MODULE Modules[1]; /* FIXME: should be Modules[0] */ 2347 - } SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION; 4054 + RTL_PROCESS_MODULE_INFORMATION Modules[1]; /* FIXME: should be Modules[0] */ 4055 + } RTL_PROCESS_MODULES, *PRTL_PROCESS_MODULES; 4056 + 4057 + #define PROCESS_CREATE_FLAGS_BREAKAWAY 0x00000001 4058 + #define PROCESS_CREATE_FLAGS_NO_DEBUG_INHERIT 0x00000002 4059 + #define PROCESS_CREATE_FLAGS_INHERIT_HANDLES 0x00000004 4060 + #define PROCESS_CREATE_FLAGS_OVERRIDE_ADDRESS_SPACE 0x00000008 4061 + #define PROCESS_CREATE_FLAGS_LARGE_PAGES 0x00000010 4062 + #define PROCESS_CREATE_FLAGS_LARGE_PAGE_SYSTEM_DLL 0x00000020 4063 + #define PROCESS_CREATE_FLAGS_PROTECTED_PROCESS 0x00000040 4064 + #define PROCESS_CREATE_FLAGS_CREATE_SESSION 0x00000080 4065 + #define PROCESS_CREATE_FLAGS_INHERIT_FROM_PARENT 0x00000100 4066 + #define PROCESS_CREATE_FLAGS_SUSPENDED 0x00000200 4067 + #define PROCESS_CREATE_FLAGS_EXTENDED_UNKNOWN 0x00000400 4068 + 4069 + typedef struct _RTL_PROCESS_MODULE_INFORMATION_EX 4070 + { 4071 + USHORT NextOffset; 4072 + RTL_PROCESS_MODULE_INFORMATION BaseInfo; 4073 + ULONG ImageCheckSum; 4074 + ULONG TimeDateStamp; 4075 + void *DefaultBase; 4076 + } RTL_PROCESS_MODULE_INFORMATION_EX; 2348 4077 2349 4078 #define THREAD_CREATE_FLAGS_CREATE_SUSPENDED 0x00000001 2350 4079 #define THREAD_CREATE_FLAGS_SKIP_THREAD_ATTACH 0x00000002 ··· 2353 4082 #define THREAD_CREATE_FLAGS_ACCESS_CHECK_IN_TARGET 0x00000020 2354 4083 #define THREAD_CREATE_FLAGS_INITIAL_THREAD 0x00000080 2355 4084 4085 + #ifdef __WINESRC__ 4086 + 4087 + /* Wine-specific exceptions codes */ 4088 + 4089 + #define EXCEPTION_WINE_STUB 0x80000100 /* stub entry point called */ 4090 + #define EXCEPTION_WINE_ASSERTION 0x80000101 /* assertion failed */ 4091 + 4092 + /* Wine extension; Windows doesn't have a name for this code. This is an 4093 + undocumented exception understood by MS VC debugger, allowing the program 4094 + to name a particular thread. */ 4095 + #define EXCEPTION_WINE_NAME_THREAD 0x406D1388 4096 + 4097 + /* used for C++ exceptions in msvcrt 4098 + * parameters: 4099 + * [0] CXX_FRAME_MAGIC 4100 + * [1] pointer to exception object 4101 + * [2] pointer to type 4102 + */ 4103 + #define EXCEPTION_WINE_CXX_EXCEPTION 0xe06d7363 4104 + #define EXCEPTION_WINE_CXX_FRAME_MAGIC 0x19930520 4105 + 4106 + #endif 4107 + 4108 + typedef LONG (CALLBACK *PRTL_EXCEPTION_FILTER)(PEXCEPTION_POINTERS); 4109 + 4110 + typedef void (CALLBACK *PTP_IO_CALLBACK)(PTP_CALLBACK_INSTANCE,void*,void*,IO_STATUS_BLOCK*,PTP_IO); 4111 + 4112 + #define PS_ATTRIBUTE_THREAD 0x00010000 4113 + #define PS_ATTRIBUTE_INPUT 0x00020000 4114 + #define PS_ATTRIBUTE_ADDITIVE 0x00040000 4115 + 4116 + typedef enum _PS_ATTRIBUTE_NUM 4117 + { 4118 + PsAttributeParentProcess, 4119 + PsAttributeDebugPort, 4120 + PsAttributeToken, 4121 + PsAttributeClientId, 4122 + PsAttributeTebAddress, 4123 + PsAttributeImageName, 4124 + PsAttributeImageInfo, 4125 + PsAttributeMemoryReserve, 4126 + PsAttributePriorityClass, 4127 + PsAttributeErrorMode, 4128 + PsAttributeStdHandleInfo, 4129 + PsAttributeHandleList, 4130 + PsAttributeGroupAffinity, 4131 + PsAttributePreferredNode, 4132 + PsAttributeIdealProcessor, 4133 + PsAttributeUmsThread, 4134 + PsAttributeMitigationOptions, 4135 + PsAttributeProtectionLevel, 4136 + PsAttributeSecureProcess, 4137 + PsAttributeJobList, 4138 + PsAttributeChildProcessPolicy, 4139 + PsAttributeAllApplicationPackagesPolicy, 4140 + PsAttributeWin32kFilter, 4141 + PsAttributeSafeOpenPromptOriginClaim, 4142 + PsAttributeBnoIsolation, 4143 + PsAttributeDesktopAppPolicy, 4144 + PsAttributeChpe, 4145 + PsAttributeMitigationAuditOptions, 4146 + PsAttributeMachineType, 4147 + PsAttributeComponentFilter, 4148 + PsAttributeEnableOptionalXStateFeatures, 4149 + PsAttributeMax 4150 + } PS_ATTRIBUTE_NUM; 4151 + 4152 + #define PS_ATTRIBUTE_PARENT_PROCESS (PsAttributeParentProcess | PS_ATTRIBUTE_INPUT | PS_ATTRIBUTE_ADDITIVE) 4153 + #define PS_ATTRIBUTE_DEBUG_PORT (PsAttributeDebugPort | PS_ATTRIBUTE_INPUT | PS_ATTRIBUTE_ADDITIVE) 4154 + #define PS_ATTRIBUTE_TOKEN (PsAttributeToken | PS_ATTRIBUTE_INPUT | PS_ATTRIBUTE_ADDITIVE) 4155 + #define PS_ATTRIBUTE_CLIENT_ID (PsAttributeClientId | PS_ATTRIBUTE_THREAD) 4156 + #define PS_ATTRIBUTE_TEB_ADDRESS (PsAttributeTebAddress | PS_ATTRIBUTE_THREAD) 4157 + #define PS_ATTRIBUTE_IMAGE_NAME (PsAttributeImageName | PS_ATTRIBUTE_INPUT) 4158 + #define PS_ATTRIBUTE_IMAGE_INFO (PsAttributeImageInfo) 4159 + #define PS_ATTRIBUTE_MEMORY_RESERVE (PsAttributeMemoryReserve | PS_ATTRIBUTE_INPUT) 4160 + #define PS_ATTRIBUTE_PRIORITY_CLASS (PsAttributePriorityClass | PS_ATTRIBUTE_INPUT) 4161 + #define PS_ATTRIBUTE_ERROR_MODE (PsAttributeErrorMode | PS_ATTRIBUTE_INPUT) 4162 + #define PS_ATTRIBUTE_STD_HANDLE_INFO (PsAttributeStdHandleInfo | PS_ATTRIBUTE_INPUT) 4163 + #define PS_ATTRIBUTE_HANDLE_LIST (PsAttributeHandleList | PS_ATTRIBUTE_INPUT) 4164 + #define PS_ATTRIBUTE_GROUP_AFFINITY (PsAttributeGroupAffinity | PS_ATTRIBUTE_THREAD | PS_ATTRIBUTE_INPUT) 4165 + #define PS_ATTRIBUTE_PREFERRED_NODE (PsAttributePreferredNode | PS_ATTRIBUTE_INPUT) 4166 + #define PS_ATTRIBUTE_IDEAL_PROCESSOR (PsAttributeIdealProcessor | PS_ATTRIBUTE_THREAD | PS_ATTRIBUTE_INPUT) 4167 + #define PS_ATTRIBUTE_MITIGATION_OPTIONS (PsAttributeMitigationOptions | PS_ATTRIBUTE_INPUT) 4168 + #define PS_ATTRIBUTE_PROTECTION_LEVEL (PsAttributeProtectionLevel | PS_ATTRIBUTE_INPUT | PS_ATTRIBUTE_ADDITIVE) 4169 + #define PS_ATTRIBUTE_SECURE_PROCESS (PsAttributeSecureProcess | PS_ATTRIBUTE_INPUT) 4170 + #define PS_ATTRIBUTE_JOB_LIST (PsAttributeJobList | PS_ATTRIBUTE_INPUT) 4171 + #define PS_ATTRIBUTE_CHILD_PROCESS_POLICY (PsAttributeChildProcessPolicy | PS_ATTRIBUTE_INPUT) 4172 + #define PS_ATTRIBUTE_ALL_APPLICATION_PACKAGES_POLICY (PsAttributeAllApplicationPackagesPolicy | PS_ATTRIBUTE_INPUT) 4173 + #define PS_ATTRIBUTE_WIN32K_FILTER (PsAttributeWin32kFilter | PS_ATTRIBUTE_INPUT) 4174 + #define PS_ATTRIBUTE_SAFE_OPEN_PROMPT_ORIGIN_CLAIM (PsAttributeSafeOpenPromptOriginClaim | PS_ATTRIBUTE_INPUT) 4175 + #define PS_ATTRIBUTE_BNO_ISOLATION (PsAttributeBnoIsolation | PS_ATTRIBUTE_INPUT) 4176 + #define PS_ATTRIBUTE_DESKTOP_APP_POLICY (PsAttributeDesktopAppPolicy | PS_ATTRIBUTE_INPUT) 4177 + #define PS_ATTRIBUTE_CHPE (PsAttributeChpe | PS_ATTRIBUTE_INPUT | PS_ATTRIBUTE_ADDITIVE) 4178 + #define PS_ATTRIBUTE_MITIGATION_AUDIT_OPTIONS (PsAttributeMitigationAuditOptions | PS_ATTRIBUTE_INPUT) 4179 + #define PS_ATTRIBUTE_MACHINE_TYPE (PsAttributeMachineType | PS_ATTRIBUTE_INPUT | PS_ATTRIBUTE_ADDITIVE) 4180 + #define PS_ATTRIBUTE_COMPONENT_FILTER (PsAttributeComponentFilter | PS_ATTRIBUTE_INPUT) 4181 + #define PS_ATTRIBUTE_ENABLE_OPTIONAL_XSTATE_FEATURES (PsAttributeEnableOptionalXStateFeatures | PS_ATTRIBUTE_THREAD | PS_ATTRIBUTE_INPUT) 4182 + 4183 + typedef struct _PS_ATTRIBUTE 4184 + { 4185 + ULONG_PTR Attribute; 4186 + SIZE_T Size; 4187 + union 4188 + { 4189 + ULONG_PTR Value; 4190 + void *ValuePtr; 4191 + }; 4192 + SIZE_T *ReturnLength; 4193 + } PS_ATTRIBUTE; 4194 + 4195 + typedef struct _PS_ATTRIBUTE_LIST 4196 + { 4197 + SIZE_T TotalLength; 4198 + PS_ATTRIBUTE Attributes[1]; 4199 + } PS_ATTRIBUTE_LIST, *PPS_ATTRIBUTE_LIST; 4200 + 4201 + typedef enum _PS_CREATE_STATE 4202 + { 4203 + PsCreateInitialState, 4204 + PsCreateFailOnFileOpen, 4205 + PsCreateFailOnSectionCreate, 4206 + PsCreateFailExeFormat, 4207 + PsCreateFailMachineMismatch, 4208 + PsCreateFailExeName, 4209 + PsCreateSuccess, 4210 + PsCreateMaximumStates 4211 + } PS_CREATE_STATE; 4212 + 4213 + typedef struct _PS_CREATE_INFO 4214 + { 4215 + SIZE_T Size; 4216 + PS_CREATE_STATE State; 4217 + union 4218 + { 4219 + struct 4220 + { 4221 + union 4222 + { 4223 + ULONG InitFlags; 4224 + struct 4225 + { 4226 + UCHAR WriteOutputOnExit : 1; 4227 + UCHAR DetectManifest : 1; 4228 + UCHAR IFEOSkipDebugger : 1; 4229 + UCHAR IFEODoNotPropagateKeyState : 1; 4230 + UCHAR SpareBits1 : 4; 4231 + UCHAR SpareBits2 : 8; 4232 + USHORT ProhibitedImageCharacteristics : 16; 4233 + }; 4234 + }; 4235 + ACCESS_MASK AdditionalFileAccess; 4236 + } InitState; 4237 + struct 4238 + { 4239 + HANDLE FileHandle; 4240 + } FailSection; 4241 + struct 4242 + { 4243 + USHORT DllCharacteristics; 4244 + } ExeFormat; 4245 + struct 4246 + { 4247 + HANDLE IFEOKey; 4248 + } ExeName; 4249 + struct 4250 + { 4251 + union 4252 + { 4253 + ULONG OutputFlags; 4254 + struct 4255 + { 4256 + UCHAR ProtectedProcess : 1; 4257 + UCHAR AddressSpaceOverride : 1; 4258 + UCHAR DevOverrideEnabled : 1; 4259 + UCHAR ManifestDetected : 1; 4260 + UCHAR ProtectedProcessLight : 1; 4261 + UCHAR SpareBits1 : 3; 4262 + UCHAR SpareBits2 : 8; 4263 + USHORT SpareBits3 : 16; 4264 + }; 4265 + }; 4266 + HANDLE FileHandle; 4267 + HANDLE SectionHandle; 4268 + ULONGLONG UserProcessParametersNative; 4269 + ULONG UserProcessParametersWow64; 4270 + ULONG CurrentParameterFlags; 4271 + ULONGLONG PebAddressNative; 4272 + ULONG PebAddressWow64; 4273 + ULONGLONG ManifestAddress; 4274 + ULONG ManifestSize; 4275 + } SuccessState; 4276 + }; 4277 + } PS_CREATE_INFO, *PPS_CREATE_INFO; 4278 + 4279 + typedef struct _DBGKM_EXCEPTION 4280 + { 4281 + EXCEPTION_RECORD ExceptionRecord; 4282 + ULONG FirstChance; 4283 + } DBGKM_EXCEPTION, *PDBGKM_EXCEPTION; 4284 + 4285 + typedef struct _DBGKM_CREATE_THREAD 4286 + { 4287 + ULONG SubSystemKey; 4288 + PVOID StartAddress; 4289 + } DBGKM_CREATE_THREAD, *PDBGKM_CREATE_THREAD; 4290 + 4291 + typedef struct _DBGKM_CREATE_PROCESS 4292 + { 4293 + ULONG SubSystemKey; 4294 + HANDLE FileHandle; 4295 + PVOID BaseOfImage; 4296 + ULONG DebugInfoFileOffset; 4297 + ULONG DebugInfoSize; 4298 + DBGKM_CREATE_THREAD InitialThread; 4299 + } DBGKM_CREATE_PROCESS, *PDBGKM_CREATE_PROCESS; 4300 + 4301 + typedef struct _DBGKM_EXIT_THREAD 4302 + { 4303 + NTSTATUS ExitStatus; 4304 + } DBGKM_EXIT_THREAD, *PDBGKM_EXIT_THREAD; 4305 + 4306 + typedef struct _DBGKM_EXIT_PROCESS 4307 + { 4308 + NTSTATUS ExitStatus; 4309 + } DBGKM_EXIT_PROCESS, *PDBGKM_EXIT_PROCESS; 4310 + 4311 + typedef struct _DBGKM_LOAD_DLL 4312 + { 4313 + HANDLE FileHandle; 4314 + PVOID BaseOfDll; 4315 + ULONG DebugInfoFileOffset; 4316 + ULONG DebugInfoSize; 4317 + PVOID NamePointer; 4318 + } DBGKM_LOAD_DLL, *PDBGKM_LOAD_DLL; 4319 + 4320 + typedef struct _DBGKM_UNLOAD_DLL 4321 + { 4322 + PVOID BaseAddress; 4323 + } DBGKM_UNLOAD_DLL, *PDBGKM_UNLOAD_DLL; 4324 + 4325 + typedef enum _DBG_STATE 4326 + { 4327 + DbgIdle, 4328 + DbgReplyPending, 4329 + DbgCreateThreadStateChange, 4330 + DbgCreateProcessStateChange, 4331 + DbgExitThreadStateChange, 4332 + DbgExitProcessStateChange, 4333 + DbgExceptionStateChange, 4334 + DbgBreakpointStateChange, 4335 + DbgSingleStepStateChange, 4336 + DbgLoadDllStateChange, 4337 + DbgUnloadDllStateChange 4338 + } DBG_STATE, *PDBG_STATE; 4339 + 4340 + typedef struct _DBGUI_CREATE_THREAD 4341 + { 4342 + HANDLE HandleToThread; 4343 + DBGKM_CREATE_THREAD NewThread; 4344 + } DBGUI_CREATE_THREAD, *PDBGUI_CREATE_THREAD; 4345 + 4346 + typedef struct _DBGUI_CREATE_PROCESS 4347 + { 4348 + HANDLE HandleToProcess; 4349 + HANDLE HandleToThread; 4350 + DBGKM_CREATE_PROCESS NewProcess; 4351 + } DBGUI_CREATE_PROCESS, *PDBGUI_CREATE_PROCESS; 4352 + 4353 + typedef struct _DBGUI_WAIT_STATE_CHANGE 4354 + { 4355 + DBG_STATE NewState; 4356 + CLIENT_ID AppClientId; 4357 + union 4358 + { 4359 + DBGKM_EXCEPTION Exception; 4360 + DBGUI_CREATE_THREAD CreateThread; 4361 + DBGUI_CREATE_PROCESS CreateProcessInfo; 4362 + DBGKM_EXIT_THREAD ExitThread; 4363 + DBGKM_EXIT_PROCESS ExitProcess; 4364 + DBGKM_LOAD_DLL LoadDll; 4365 + DBGKM_UNLOAD_DLL UnloadDll; 4366 + } StateInfo; 4367 + } DBGUI_WAIT_STATE_CHANGE, *PDBGUI_WAIT_STATE_CHANGE; 4368 + 4369 + struct _DEBUG_EVENT; 4370 + 4371 + #define DEBUG_READ_EVENT 0x0001 4372 + #define DEBUG_PROCESS_ASSIGN 0x0002 4373 + #define DEBUG_SET_INFORMATION 0x0004 4374 + #define DEBUG_QUERY_INFORMATION 0x0008 4375 + #define DEBUG_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x0f) 4376 + 4377 + #define DEBUG_KILL_ON_CLOSE 0x1 4378 + 4379 + typedef enum _DEBUGOBJECTINFOCLASS 4380 + { 4381 + DebugObjectKillProcessOnExitInformation = 1, 4382 + MaxDebugObjectInfoClass 4383 + } DEBUGOBJECTINFOCLASS, *PDEBUGOBJECTINFOCLASS; 4384 + 4385 + 4386 + typedef struct _WOW64_CPURESERVED 4387 + { 4388 + USHORT Flags; 4389 + USHORT Machine; 4390 + /* CONTEXT context */ 4391 + /* CONTEXT_EX *context_ex */ 4392 + } WOW64_CPURESERVED, *PWOW64_CPURESERVED; 4393 + 4394 + #define WOW64_CPURESERVED_FLAG_RESET_STATE 1 4395 + 4396 + typedef struct _WOW64_CPU_AREA_INFO 4397 + { 4398 + void *Context; 4399 + void *ContextEx; 4400 + void *ContextFlagsLocation; 4401 + WOW64_CPURESERVED *CpuReserved; 4402 + ULONG ContextFlag; 4403 + USHORT Machine; 4404 + } WOW64_CPU_AREA_INFO, *PWOW64_CPU_AREA_INFO; 4405 + 4406 + typedef struct _WOW64INFO 4407 + { 4408 + ULONG NativeSystemPageSize; 4409 + ULONG CpuFlags; 4410 + ULONG Wow64ExecuteFlags; 4411 + ULONG unknown; 4412 + ULONGLONG SectionHandle; 4413 + ULONGLONG CrossProcessWorkList; 4414 + USHORT NativeMachineType; 4415 + USHORT EmulatedMachineType; 4416 + } WOW64INFO; 4417 + C_ASSERT( sizeof(WOW64INFO) == 40 ); 4418 + 4419 + #define WOW64_CPUFLAGS_MSFT64 0x01 4420 + #define WOW64_CPUFLAGS_SOFTWARE 0x02 4421 + 4422 + /* wow64.dll functions */ 4423 + void * WINAPI Wow64AllocateTemp(SIZE_T); 4424 + void WINAPI Wow64ApcRoutine(ULONG_PTR,ULONG_PTR,ULONG_PTR,CONTEXT*); 4425 + NTSTATUS WINAPI Wow64KiUserCallbackDispatcher(ULONG,void*,ULONG,void**,ULONG*); 4426 + void WINAPI Wow64PassExceptionToGuest(EXCEPTION_POINTERS*); 4427 + void WINAPI Wow64PrepareForException(EXCEPTION_RECORD*,CONTEXT*); 4428 + void WINAPI Wow64ProcessPendingCrossProcessItems(void); 4429 + NTSTATUS WINAPI Wow64RaiseException(int,EXCEPTION_RECORD*); 4430 + NTSTATUS WINAPI Wow64SystemServiceEx(UINT,UINT*); 4431 + 4432 + #ifdef __WINESRC__ 4433 + /* undocumented layout of LdrSystemDllInitBlock */ 4434 + /* this varies across Windows version; we are using the win10-2004 layout */ 4435 + typedef struct 4436 + { 4437 + ULONG version; 4438 + ULONG unknown1[3]; 4439 + ULONG64 unknown2; 4440 + ULONG64 pLdrInitializeThunk; 4441 + ULONG64 pKiUserExceptionDispatcher; 4442 + ULONG64 pKiUserApcDispatcher; 4443 + ULONG64 pKiUserCallbackDispatcher; 4444 + ULONG64 pRtlUserThreadStart; 4445 + ULONG64 pRtlpQueryProcessDebugInformationRemote; 4446 + ULONG64 ntdll_handle; 4447 + ULONG64 pLdrSystemDllInitBlock; 4448 + ULONG64 pRtlpFreezeTimeBias; 4449 + } SYSTEM_DLL_INIT_BLOCK; 4450 + #endif 4451 + 4452 + typedef struct 4453 + { 4454 + ULONG_PTR *ServiceTable; 4455 + ULONG_PTR *CounterTable; 4456 + ULONG_PTR ServiceLimit; 4457 + BYTE *ArgumentTable; 4458 + } SYSTEM_SERVICE_TABLE; 4459 + 4460 + /* ApiSet structures (format for version 6) */ 4461 + 4462 + typedef struct _API_SET_NAMESPACE 4463 + { 4464 + ULONG Version; 4465 + ULONG Size; 4466 + ULONG Flags; 4467 + ULONG Count; 4468 + ULONG EntryOffset; 4469 + ULONG HashOffset; 4470 + ULONG HashFactor; 4471 + } API_SET_NAMESPACE; 4472 + 4473 + typedef struct _API_SET_HASH_ENTRY 4474 + { 4475 + ULONG Hash; 4476 + ULONG Index; 4477 + } API_SET_HASH_ENTRY; 4478 + 4479 + typedef struct _API_SET_NAMESPACE_ENTRY 4480 + { 4481 + ULONG Flags; 4482 + ULONG NameOffset; 4483 + ULONG NameLength; 4484 + ULONG HashedLength; 4485 + ULONG ValueOffset; 4486 + ULONG ValueCount; 4487 + } API_SET_NAMESPACE_ENTRY; 4488 + 4489 + typedef struct _API_SET_VALUE_ENTRY 4490 + { 4491 + ULONG Flags; 4492 + ULONG NameOffset; 4493 + ULONG NameLength; 4494 + ULONG ValueOffset; 4495 + ULONG ValueLength; 4496 + } API_SET_VALUE_ENTRY; 4497 + 4498 + typedef enum _KCONTINUE_TYPE 4499 + { 4500 + KCONTINUE_UNWIND, 4501 + KCONTINUE_RESUME, 4502 + KCONTINUE_LONGJUMP, 4503 + KCONTINUE_SET, 4504 + KCONTINUE_LAST, 4505 + } KCONTINUE_TYPE; 4506 + 4507 + typedef struct _KCONTINUE_ARGUMENT 4508 + { 4509 + KCONTINUE_TYPE ContinueType; 4510 + ULONG ContinueFlags; 4511 + ULONGLONG Reserved[2]; 4512 + } KCONTINUE_ARGUMENT, *PKCONTINUE_ARGUMENT; 4513 + 4514 + #define KCONTINUE_FLAG_TEST_ALERT 0x01 4515 + #define KCONTINUE_FLAG_DELIVER_APC 0x02 4516 + 4517 + 4518 + #define HASH_STRING_ALGORITHM_DEFAULT 0 4519 + #define HASH_STRING_ALGORITHM_X65599 1 4520 + #define HASH_STRING_ALGORITHM_INVALID 0xffffffff 4521 + 2356 4522 /*********************************************************************** 2357 4523 * Function declarations 2358 4524 */ 2359 4525 2360 - #if defined(__i386__) && defined(__GNUC__) 2361 - static inline void WINAPI DbgBreakPoint(void) { __asm__ __volatile__("int3"); } 2362 - static inline void WINAPI DbgUserBreakPoint(void) { __asm__ __volatile__("int3"); } 2363 - #else /* __i386__ && __GNUC__ */ 2364 - NTSYSAPI void WINAPI DbgBreakPoint(void); 2365 - NTSYSAPI void WINAPI DbgUserBreakPoint(void); 2366 - #endif /* __i386__ && __GNUC__ */ 2367 - #ifndef __REACTOS__ 4526 + NTSYSAPI NTSTATUS WINAPI ApiSetQueryApiSetPresence(const UNICODE_STRING*,BOOLEAN*); 4527 + NTSYSAPI NTSTATUS WINAPI ApiSetQueryApiSetPresenceEx(const UNICODE_STRING*,BOOLEAN*,BOOLEAN*); 4528 + NTSYSAPI void WINAPI DbgBreakPoint(void); 2368 4529 NTSYSAPI NTSTATUS WINAPIV DbgPrint(LPCSTR fmt, ...); 2369 - #endif /* __REACTOS__ */ 2370 4530 NTSYSAPI NTSTATUS WINAPIV DbgPrintEx(ULONG iComponentId, ULONG Level, LPCSTR fmt, ...); 4531 + NTSYSAPI NTSTATUS WINAPI DbgUiConnectToDbg(void); 4532 + NTSYSAPI NTSTATUS WINAPI DbgUiContinue(CLIENT_ID*,NTSTATUS); 4533 + NTSYSAPI NTSTATUS WINAPI DbgUiConvertStateChangeStructure(DBGUI_WAIT_STATE_CHANGE*,struct _DEBUG_EVENT*); 4534 + NTSYSAPI NTSTATUS WINAPI DbgUiDebugActiveProcess(HANDLE); 4535 + NTSYSAPI HANDLE WINAPI DbgUiGetThreadDebugObject(void); 4536 + NTSYSAPI NTSTATUS WINAPI DbgUiIssueRemoteBreakin(HANDLE); 4537 + NTSYSAPI void WINAPI DbgUiRemoteBreakin(void*); 4538 + NTSYSAPI void WINAPI DbgUiSetThreadDebugObject(HANDLE); 4539 + NTSYSAPI NTSTATUS WINAPI DbgUiStopDebugging(HANDLE); 4540 + NTSYSAPI NTSTATUS WINAPI DbgUiWaitStateChange(DBGUI_WAIT_STATE_CHANGE*,LARGE_INTEGER*); 4541 + NTSYSAPI void WINAPI DbgUserBreakPoint(void); 2371 4542 NTSYSAPI NTSTATUS WINAPI LdrAccessResource(HMODULE,const IMAGE_RESOURCE_DATA_ENTRY*,void**,PULONG); 4543 + NTSYSAPI NTSTATUS WINAPI LdrAddDllDirectory(const UNICODE_STRING*,void**); 2372 4544 NTSYSAPI NTSTATUS WINAPI LdrAddRefDll(ULONG,HMODULE); 4545 + NTSYSAPI NTSTATUS WINAPI LdrDisableThreadCalloutsForDll(HMODULE); 4546 + NTSYSAPI NTSTATUS WINAPI LdrFindEntryForAddress(const void*, PLDR_DATA_TABLE_ENTRY*); 2373 4547 NTSYSAPI NTSTATUS WINAPI LdrFindResourceDirectory_U(HMODULE,const LDR_RESOURCE_INFO*,ULONG,const IMAGE_RESOURCE_DIRECTORY**); 2374 4548 NTSYSAPI NTSTATUS WINAPI LdrFindResource_U(HMODULE,const LDR_RESOURCE_INFO*,ULONG,const IMAGE_RESOURCE_DATA_ENTRY**); 2375 - NTSYSAPI NTSTATUS WINAPI LdrDisableThreadCalloutsForDll(HMODULE); 2376 - NTSYSAPI NTSTATUS WINAPI LdrFindEntryForAddress(const void*, PLDR_MODULE*); 4549 + NTSYSAPI NTSTATUS WINAPI LdrGetDllDirectory(UNICODE_STRING*); 4550 + NTSYSAPI NTSTATUS WINAPI LdrGetDllFullName(HMODULE, UNICODE_STRING*); 2377 4551 NTSYSAPI NTSTATUS WINAPI LdrGetDllHandle(LPCWSTR, ULONG, const UNICODE_STRING*, HMODULE*); 4552 + NTSYSAPI NTSTATUS WINAPI LdrGetDllHandleEx(ULONG, LPCWSTR, ULONG *, const UNICODE_STRING*, HMODULE*); 4553 + NTSYSAPI NTSTATUS WINAPI LdrGetDllPath(PCWSTR,ULONG,PWSTR*,PWSTR*); 2378 4554 NTSYSAPI NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE, const ANSI_STRING*, ULONG, void**); 2379 - NTSYSAPI void WINAPI LdrInitializeThunk(void*,ULONG_PTR,ULONG_PTR,ULONG_PTR); 2380 4555 NTSYSAPI NTSTATUS WINAPI LdrLoadDll(LPCWSTR, DWORD, const UNICODE_STRING*, HMODULE*); 2381 4556 NTSYSAPI NTSTATUS WINAPI LdrLockLoaderLock(ULONG,ULONG*,ULONG_PTR*); 2382 4557 IMAGE_BASE_RELOCATION * WINAPI LdrProcessRelocationBlock(void*,UINT,USHORT*,INT_PTR); 2383 4558 NTSYSAPI NTSTATUS WINAPI LdrQueryImageFileExecutionOptions(const UNICODE_STRING*,LPCWSTR,ULONG,void*,ULONG,ULONG*); 2384 - NTSYSAPI NTSTATUS WINAPI LdrQueryProcessModuleInformation(SYSTEM_MODULE_INFORMATION*, ULONG, ULONG*); 4559 + NTSYSAPI NTSTATUS WINAPI LdrQueryProcessModuleInformation(RTL_PROCESS_MODULES*, ULONG, ULONG*); 4560 + NTSYSAPI NTSTATUS WINAPI LdrRegisterDllNotification(ULONG,PLDR_DLL_NOTIFICATION_FUNCTION,void*,void**); 4561 + NTSYSAPI NTSTATUS WINAPI LdrRemoveDllDirectory(void*); 4562 + NTSYSAPI NTSTATUS WINAPI LdrSetDefaultDllDirectories(ULONG); 4563 + NTSYSAPI NTSTATUS WINAPI LdrSetDllDirectory(const UNICODE_STRING*); 2385 4564 NTSYSAPI void WINAPI LdrShutdownProcess(void); 2386 4565 NTSYSAPI void WINAPI LdrShutdownThread(void); 2387 4566 NTSYSAPI NTSTATUS WINAPI LdrUnloadDll(HMODULE); 2388 4567 NTSYSAPI NTSTATUS WINAPI LdrUnlockLoaderLock(ULONG,ULONG_PTR); 4568 + NTSYSAPI NTSTATUS WINAPI LdrUnregisterDllNotification(void*); 2389 4569 NTSYSAPI NTSTATUS WINAPI NtAcceptConnectPort(PHANDLE,ULONG,PLPC_MESSAGE,BOOLEAN,PLPC_SECTION_WRITE,PLPC_SECTION_READ); 2390 4570 NTSYSAPI NTSTATUS WINAPI NtAccessCheck(PSECURITY_DESCRIPTOR,HANDLE,ACCESS_MASK,PGENERIC_MAPPING,PPRIVILEGE_SET,PULONG,PULONG,NTSTATUS*); 2391 4571 NTSYSAPI NTSTATUS WINAPI NtAccessCheckAndAuditAlarm(PUNICODE_STRING,HANDLE,PUNICODE_STRING,PUNICODE_STRING,PSECURITY_DESCRIPTOR,ACCESS_MASK,PGENERIC_MAPPING,BOOLEAN,PACCESS_MASK,PBOOLEAN,PBOOLEAN); ··· 2394 4574 NTSYSAPI NTSTATUS WINAPI NtAdjustPrivilegesToken(HANDLE,BOOLEAN,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD); 2395 4575 NTSYSAPI NTSTATUS WINAPI NtAlertResumeThread(HANDLE,PULONG); 2396 4576 NTSYSAPI NTSTATUS WINAPI NtAlertThread(HANDLE ThreadHandle); 4577 + NTSYSAPI NTSTATUS WINAPI NtAlertThreadByThreadId(HANDLE); 2397 4578 NTSYSAPI NTSTATUS WINAPI NtAllocateLocallyUniqueId(PLUID lpLuid); 4579 + NTSYSAPI NTSTATUS WINAPI NtAllocateReserveObject(HANDLE *handle,const OBJECT_ATTRIBUTES *attr,MEMORY_RESERVE_OBJECT_TYPE type); 2398 4580 NTSYSAPI NTSTATUS WINAPI NtAllocateUuids(PULARGE_INTEGER,PULONG,PULONG,PUCHAR); 2399 - NTSYSAPI NTSTATUS WINAPI NtAllocateVirtualMemory(HANDLE,PVOID*,ULONG,SIZE_T*,ULONG,ULONG); 4581 + NTSYSAPI NTSTATUS WINAPI NtAllocateVirtualMemory(HANDLE,PVOID*,ULONG_PTR,SIZE_T*,ULONG,ULONG); 4582 + NTSYSAPI NTSTATUS WINAPI NtAllocateVirtualMemoryEx(HANDLE,PVOID*,SIZE_T*,ULONG,ULONG,MEM_EXTENDED_PARAMETER*,ULONG); 2400 4583 NTSYSAPI NTSTATUS WINAPI NtAreMappedFilesTheSame(PVOID,PVOID); 2401 4584 NTSYSAPI NTSTATUS WINAPI NtAssignProcessToJobObject(HANDLE,HANDLE); 2402 4585 NTSYSAPI NTSTATUS WINAPI NtCallbackReturn(PVOID,ULONG,NTSTATUS); 2403 4586 NTSYSAPI NTSTATUS WINAPI NtCancelIoFile(HANDLE,PIO_STATUS_BLOCK); 2404 4587 NTSYSAPI NTSTATUS WINAPI NtCancelIoFileEx(HANDLE,PIO_STATUS_BLOCK,PIO_STATUS_BLOCK); 4588 + NTSYSAPI NTSTATUS WINAPI NtCancelSynchronousIoFile(HANDLE,PIO_STATUS_BLOCK,PIO_STATUS_BLOCK); 2405 4589 NTSYSAPI NTSTATUS WINAPI NtCancelTimer(HANDLE, BOOLEAN*); 2406 4590 NTSYSAPI NTSTATUS WINAPI NtClearEvent(HANDLE); 2407 4591 NTSYSAPI NTSTATUS WINAPI NtClose(HANDLE); 2408 4592 NTSYSAPI NTSTATUS WINAPI NtCloseObjectAuditAlarm(PUNICODE_STRING,HANDLE,BOOLEAN); 4593 + NTSYSAPI NTSTATUS WINAPI NtCommitTransaction(HANDLE,BOOLEAN); 4594 + NTSYSAPI NTSTATUS WINAPI NtCompareObjects(HANDLE,HANDLE); 4595 + NTSYSAPI NTSTATUS WINAPI NtCompareTokens(HANDLE,HANDLE,BOOLEAN*); 2409 4596 NTSYSAPI NTSTATUS WINAPI NtCompleteConnectPort(HANDLE); 2410 4597 NTSYSAPI NTSTATUS WINAPI NtConnectPort(PHANDLE,PUNICODE_STRING,PSECURITY_QUALITY_OF_SERVICE,PLPC_SECTION_WRITE,PLPC_SECTION_READ,PULONG,PVOID,PULONG); 2411 4598 NTSYSAPI NTSTATUS WINAPI NtContinue(PCONTEXT,BOOLEAN); 4599 + NTSYSAPI NTSTATUS WINAPI NtContinueEx(CONTEXT*,KCONTINUE_ARGUMENT*); 4600 + NTSYSAPI NTSTATUS WINAPI NtCreateDebugObject(HANDLE*,ACCESS_MASK,OBJECT_ATTRIBUTES*,ULONG); 2412 4601 NTSYSAPI NTSTATUS WINAPI NtCreateDirectoryObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES); 2413 4602 NTSYSAPI NTSTATUS WINAPI NtCreateEvent(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *,EVENT_TYPE,BOOLEAN); 2414 4603 NTSYSAPI NTSTATUS WINAPI NtCreateEventPair(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES); ··· 2418 4607 NTSYSAPI NTSTATUS WINAPI NtCreateKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG,const UNICODE_STRING*,ULONG,PULONG); 2419 4608 NTSYSAPI NTSTATUS WINAPI NtCreateKeyTransacted(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG,const UNICODE_STRING*,ULONG,HANDLE,ULONG*); 2420 4609 NTSYSAPI NTSTATUS WINAPI NtCreateKeyedEvent(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG); 4610 + NTSYSAPI NTSTATUS WINAPI NtCreateLowBoxToken(HANDLE*,HANDLE,ACCESS_MASK,OBJECT_ATTRIBUTES*,SID*,ULONG,SID_AND_ATTRIBUTES*,ULONG,HANDLE*); 2421 4611 NTSYSAPI NTSTATUS WINAPI NtCreateMailslotFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG,ULONG,PLARGE_INTEGER); 2422 4612 NTSYSAPI NTSTATUS WINAPI NtCreateMutant(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,BOOLEAN); 2423 4613 NTSYSAPI NTSTATUS WINAPI NtCreateNamedPipeFile(PHANDLE,ULONG,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,PLARGE_INTEGER); ··· 2429 4619 NTSYSAPI NTSTATUS WINAPI NtCreateSemaphore(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,LONG,LONG); 2430 4620 NTSYSAPI NTSTATUS WINAPI NtCreateSymbolicLinkObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PUNICODE_STRING); 2431 4621 NTSYSAPI NTSTATUS WINAPI NtCreateThread(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,HANDLE,PCLIENT_ID,PCONTEXT,PINITIAL_TEB,BOOLEAN); 4622 + NTSYSAPI NTSTATUS WINAPI NtCreateThreadEx(HANDLE*,ACCESS_MASK,OBJECT_ATTRIBUTES*,HANDLE,PRTL_THREAD_START_ROUTINE,void*,ULONG,ULONG_PTR,SIZE_T,SIZE_T,PS_ATTRIBUTE_LIST*); 2432 4623 NTSYSAPI NTSTATUS WINAPI NtCreateTimer(HANDLE*, ACCESS_MASK, const OBJECT_ATTRIBUTES*, TIMER_TYPE); 2433 4624 NTSYSAPI NTSTATUS WINAPI NtCreateToken(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,TOKEN_TYPE,PLUID,PLARGE_INTEGER,PTOKEN_USER,PTOKEN_GROUPS,PTOKEN_PRIVILEGES,PTOKEN_OWNER,PTOKEN_PRIMARY_GROUP,PTOKEN_DEFAULT_DACL,PTOKEN_SOURCE); 4625 + NTSYSAPI NTSTATUS WINAPI NtCreateTransaction(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,LPGUID,HANDLE,ULONG,ULONG,ULONG,PLARGE_INTEGER,PUNICODE_STRING); 4626 + NTSYSAPI NTSTATUS WINAPI NtCreateUserProcess(HANDLE*,HANDLE*,ACCESS_MASK,ACCESS_MASK,OBJECT_ATTRIBUTES*,OBJECT_ATTRIBUTES*,ULONG,ULONG,RTL_USER_PROCESS_PARAMETERS*,PS_CREATE_INFO*,PS_ATTRIBUTE_LIST*); 4627 + NTSYSAPI NTSTATUS WINAPI NtDebugActiveProcess(HANDLE,HANDLE); 4628 + NTSYSAPI NTSTATUS WINAPI NtDebugContinue(HANDLE,CLIENT_ID*,NTSTATUS); 2434 4629 NTSYSAPI NTSTATUS WINAPI NtDelayExecution(BOOLEAN,const LARGE_INTEGER*); 2435 4630 NTSYSAPI NTSTATUS WINAPI NtDeleteAtom(RTL_ATOM); 2436 4631 NTSYSAPI NTSTATUS WINAPI NtDeleteFile(POBJECT_ATTRIBUTES); ··· 2439 4634 NTSYSAPI NTSTATUS WINAPI NtDeviceIoControlFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,PVOID,ULONG,PVOID,ULONG); 2440 4635 NTSYSAPI NTSTATUS WINAPI NtDisplayString(PUNICODE_STRING); 2441 4636 NTSYSAPI NTSTATUS WINAPI NtDuplicateObject(HANDLE,HANDLE,HANDLE,PHANDLE,ACCESS_MASK,ULONG,ULONG); 2442 - NTSYSAPI NTSTATUS WINAPI NtDuplicateToken(HANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE); 4637 + NTSYSAPI NTSTATUS WINAPI NtDuplicateToken(HANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,BOOLEAN,TOKEN_TYPE,PHANDLE); 2443 4638 NTSYSAPI NTSTATUS WINAPI NtEnumerateKey(HANDLE,ULONG,KEY_INFORMATION_CLASS,void *,DWORD,DWORD *); 2444 4639 NTSYSAPI NTSTATUS WINAPI NtEnumerateValueKey(HANDLE,ULONG,KEY_VALUE_INFORMATION_CLASS,PVOID,ULONG,PULONG); 2445 4640 NTSYSAPI NTSTATUS WINAPI NtExtendSection(HANDLE,PLARGE_INTEGER); 2446 4641 NTSYSAPI NTSTATUS WINAPI NtFilterToken(HANDLE,ULONG,TOKEN_GROUPS*,TOKEN_PRIVILEGES*,TOKEN_GROUPS*,HANDLE*); 2447 4642 NTSYSAPI NTSTATUS WINAPI NtFindAtom(const WCHAR*,ULONG,RTL_ATOM*); 2448 4643 NTSYSAPI NTSTATUS WINAPI NtFlushBuffersFile(HANDLE,IO_STATUS_BLOCK*); 4644 + NTSYSAPI NTSTATUS WINAPI NtFlushBuffersFileEx(HANDLE,ULONG,void*,ULONG,IO_STATUS_BLOCK*); 2449 4645 NTSYSAPI NTSTATUS WINAPI NtFlushInstructionCache(HANDLE,LPCVOID,SIZE_T); 2450 4646 NTSYSAPI NTSTATUS WINAPI NtFlushKey(HANDLE); 4647 + NTSYSAPI NTSTATUS WINAPI NtFlushProcessWriteBuffers(void); 2451 4648 NTSYSAPI NTSTATUS WINAPI NtFlushVirtualMemory(HANDLE,LPCVOID*,SIZE_T*,ULONG); 2452 4649 NTSYSAPI NTSTATUS WINAPI NtFlushWriteBuffer(VOID); 2453 4650 NTSYSAPI NTSTATUS WINAPI NtFreeVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG); 2454 4651 NTSYSAPI NTSTATUS WINAPI NtFsControlFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,PVOID,ULONG,PVOID,ULONG); 2455 4652 NTSYSAPI NTSTATUS WINAPI NtGetContextThread(HANDLE,CONTEXT*); 2456 4653 NTSYSAPI ULONG WINAPI NtGetCurrentProcessorNumber(void); 4654 + NTSYSAPI NTSTATUS WINAPI NtGetNextThread(HANDLE,HANDLE,ACCESS_MASK,ULONG,ULONG,HANDLE*); 2457 4655 NTSYSAPI NTSTATUS WINAPI NtGetNlsSectionPtr(ULONG,ULONG,void*,void**,SIZE_T*); 2458 4656 NTSYSAPI NTSTATUS WINAPI NtGetPlugPlayEvent(ULONG,ULONG,PVOID,ULONG); 2459 4657 NTSYSAPI ULONG WINAPI NtGetTickCount(VOID); ··· 2461 4659 NTSYSAPI NTSTATUS WINAPI NtImpersonateAnonymousToken(HANDLE); 2462 4660 NTSYSAPI NTSTATUS WINAPI NtImpersonateClientOfPort(HANDLE,PPORT_MESSAGE); 2463 4661 NTSYSAPI NTSTATUS WINAPI NtImpersonateThread(HANDLE,HANDLE,PSECURITY_QUALITY_OF_SERVICE); 4662 + NTSYSAPI NTSTATUS WINAPI NtInitializeNlsFiles(void**,LCID*,LARGE_INTEGER*); 2464 4663 NTSYSAPI NTSTATUS WINAPI NtInitializeRegistry(BOOLEAN); 2465 4664 NTSYSAPI NTSTATUS WINAPI NtInitiatePowerAction(POWER_ACTION,SYSTEM_POWER_STATE,ULONG,BOOLEAN); 2466 4665 NTSYSAPI NTSTATUS WINAPI NtIsProcessInJob(HANDLE,HANDLE); 2467 4666 NTSYSAPI NTSTATUS WINAPI NtListenPort(HANDLE,PLPC_MESSAGE); 2468 4667 NTSYSAPI NTSTATUS WINAPI NtLoadDriver(const UNICODE_STRING *); 2469 4668 NTSYSAPI NTSTATUS WINAPI NtLoadKey(const OBJECT_ATTRIBUTES *,OBJECT_ATTRIBUTES *); 4669 + NTSYSAPI NTSTATUS WINAPI NtLoadKey2(const OBJECT_ATTRIBUTES *,OBJECT_ATTRIBUTES *,ULONG); 4670 + NTSYSAPI NTSTATUS WINAPI NtLoadKeyEx(const OBJECT_ATTRIBUTES *,OBJECT_ATTRIBUTES *,ULONG,HANDLE,HANDLE,ACCESS_MASK,HANDLE *,IO_STATUS_BLOCK *); 2470 4671 NTSYSAPI NTSTATUS WINAPI NtLockFile(HANDLE,HANDLE,PIO_APC_ROUTINE,void*,PIO_STATUS_BLOCK,PLARGE_INTEGER,PLARGE_INTEGER,ULONG*,BOOLEAN,BOOLEAN); 2471 4672 NTSYSAPI NTSTATUS WINAPI NtLockVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG); 4673 + NTSYSAPI NTSTATUS WINAPI NtMakePermanentObject(HANDLE); 2472 4674 NTSYSAPI NTSTATUS WINAPI NtMakeTemporaryObject(HANDLE); 2473 - NTSYSAPI NTSTATUS WINAPI NtMapViewOfSection(HANDLE,HANDLE,PVOID*,ULONG,SIZE_T,const LARGE_INTEGER*,SIZE_T*,SECTION_INHERIT,ULONG,ULONG); 4675 + NTSYSAPI NTSTATUS WINAPI NtMapViewOfSection(HANDLE,HANDLE,PVOID*,ULONG_PTR,SIZE_T,const LARGE_INTEGER*,SIZE_T*,SECTION_INHERIT,ULONG,ULONG); 4676 + NTSYSAPI NTSTATUS WINAPI NtMapViewOfSectionEx(HANDLE,HANDLE,PVOID*,const LARGE_INTEGER*,SIZE_T*,ULONG,ULONG,MEM_EXTENDED_PARAMETER*,ULONG); 2474 4677 NTSYSAPI NTSTATUS WINAPI NtNotifyChangeDirectoryFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,PVOID,ULONG,ULONG,BOOLEAN); 2475 4678 NTSYSAPI NTSTATUS WINAPI NtNotifyChangeKey(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,BOOLEAN,PVOID,ULONG,BOOLEAN); 2476 4679 NTSYSAPI NTSTATUS WINAPI NtNotifyChangeMultipleKeys(HANDLE,ULONG,OBJECT_ATTRIBUTES*,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,BOOLEAN,PVOID,ULONG,BOOLEAN); ··· 2502 4705 NTSYSAPI NTSTATUS WINAPI NtPrivilegeObjectAuditAlarm(PUNICODE_STRING,HANDLE,HANDLE,ULONG,PPRIVILEGE_SET,BOOLEAN); 2503 4706 NTSYSAPI NTSTATUS WINAPI NtPrivilegedServiceAuditAlarm(PUNICODE_STRING,PUNICODE_STRING,HANDLE,PPRIVILEGE_SET,BOOLEAN); 2504 4707 NTSYSAPI NTSTATUS WINAPI NtProtectVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG,ULONG*); 2505 - NTSYSAPI NTSTATUS WINAPI NtPulseEvent(HANDLE,PULONG); 4708 + NTSYSAPI NTSTATUS WINAPI NtPulseEvent(HANDLE,LONG*); 2506 4709 NTSYSAPI NTSTATUS WINAPI NtQueueApcThread(HANDLE,PNTAPCFUNC,ULONG_PTR,ULONG_PTR,ULONG_PTR); 4710 + NTSYSAPI NTSTATUS WINAPI NtQueueApcThreadEx(HANDLE,HANDLE,PNTAPCFUNC,ULONG_PTR,ULONG_PTR,ULONG_PTR); 2507 4711 NTSYSAPI NTSTATUS WINAPI NtQueryAttributesFile(const OBJECT_ATTRIBUTES*,FILE_BASIC_INFORMATION*); 2508 4712 NTSYSAPI NTSTATUS WINAPI NtQueryDefaultLocale(BOOLEAN,LCID*); 2509 4713 NTSYSAPI NTSTATUS WINAPI NtQueryDefaultUILanguage(LANGID*); ··· 2513 4717 NTSYSAPI NTSTATUS WINAPI NtQueryEvent(HANDLE,EVENT_INFORMATION_CLASS,PVOID,ULONG,PULONG); 2514 4718 NTSYSAPI NTSTATUS WINAPI NtQueryFullAttributesFile(const OBJECT_ATTRIBUTES*,FILE_NETWORK_OPEN_INFORMATION*); 2515 4719 NTSYSAPI NTSTATUS WINAPI NtQueryInformationAtom(RTL_ATOM,ATOM_INFORMATION_CLASS,PVOID,ULONG,ULONG*); 2516 - NTSYSAPI NTSTATUS WINAPI NtQueryInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,LONG,FILE_INFORMATION_CLASS); 4720 + NTSYSAPI NTSTATUS WINAPI NtQueryInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FILE_INFORMATION_CLASS); 2517 4721 NTSYSAPI NTSTATUS WINAPI NtQueryInformationJobObject(HANDLE,JOBOBJECTINFOCLASS,PVOID,ULONG,PULONG); 2518 4722 NTSYSAPI NTSTATUS WINAPI NtQueryInformationPort(HANDLE,PORT_INFORMATION_CLASS,PVOID,ULONG,PULONG); 2519 4723 NTSYSAPI NTSTATUS WINAPI NtQueryInformationProcess(HANDLE,PROCESSINFOCLASS,PVOID,ULONG,PULONG); ··· 2533 4737 NTSYSAPI NTSTATUS WINAPI NtQuerySemaphore(HANDLE,SEMAPHORE_INFORMATION_CLASS,PVOID,ULONG,PULONG); 2534 4738 NTSYSAPI NTSTATUS WINAPI NtQuerySymbolicLinkObject(HANDLE,PUNICODE_STRING,PULONG); 2535 4739 NTSYSAPI NTSTATUS WINAPI NtQuerySystemEnvironmentValue(PUNICODE_STRING,PWCHAR,ULONG,PULONG); 4740 + NTSYSAPI NTSTATUS WINAPI NtQuerySystemEnvironmentValueEx(PUNICODE_STRING,GUID*,void*,ULONG*,ULONG*); 2536 4741 NTSYSAPI NTSTATUS WINAPI NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS,PVOID,ULONG,PULONG); 2537 4742 NTSYSAPI NTSTATUS WINAPI NtQuerySystemInformationEx(SYSTEM_INFORMATION_CLASS,void*,ULONG,void*,ULONG,ULONG*); 2538 4743 NTSYSAPI NTSTATUS WINAPI NtQuerySystemTime(PLARGE_INTEGER); ··· 2543 4748 NTSYSAPI NTSTATUS WINAPI NtQueryVirtualMemory(HANDLE,LPCVOID,MEMORY_INFORMATION_CLASS,PVOID,SIZE_T,SIZE_T*); 2544 4749 NTSYSAPI NTSTATUS WINAPI NtQueryVolumeInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FS_INFORMATION_CLASS); 2545 4750 NTSYSAPI NTSTATUS WINAPI NtRaiseException(PEXCEPTION_RECORD,PCONTEXT,BOOL); 2546 - NTSYSAPI NTSTATUS WINAPI NtRaiseHardError(NTSTATUS,ULONG,PUNICODE_STRING,PVOID*,HARDERROR_RESPONSE_OPTION,PHARDERROR_RESPONSE); 4751 + NTSYSAPI NTSTATUS WINAPI NtRaiseHardError(NTSTATUS,ULONG,ULONG,PVOID*,HARDERROR_RESPONSE_OPTION,PHARDERROR_RESPONSE); 2547 4752 NTSYSAPI NTSTATUS WINAPI NtReadFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,PVOID,ULONG,PLARGE_INTEGER,PULONG); 2548 4753 NTSYSAPI NTSTATUS WINAPI NtReadFileScatter(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,FILE_SEGMENT_ELEMENT*,ULONG,PLARGE_INTEGER,PULONG); 2549 4754 NTSYSAPI NTSTATUS WINAPI NtReadRequestData(HANDLE,PLPC_MESSAGE,ULONG,PVOID,ULONG,PULONG); ··· 2553 4758 NTSYSAPI NTSTATUS WINAPI NtReleaseMutant(HANDLE,PLONG); 2554 4759 NTSYSAPI NTSTATUS WINAPI NtReleaseSemaphore(HANDLE,ULONG,PULONG); 2555 4760 NTSYSAPI NTSTATUS WINAPI NtRemoveIoCompletion(HANDLE,PULONG_PTR,PULONG_PTR,PIO_STATUS_BLOCK,PLARGE_INTEGER); 4761 + NTSYSAPI NTSTATUS WINAPI NtRemoveIoCompletionEx(HANDLE,FILE_IO_COMPLETION_INFORMATION*,ULONG,ULONG*,LARGE_INTEGER*,BOOLEAN); 4762 + NTSYSAPI NTSTATUS WINAPI NtRemoveProcessDebug(HANDLE,HANDLE); 2556 4763 NTSYSAPI NTSTATUS WINAPI NtRenameKey(HANDLE,UNICODE_STRING*); 2557 4764 NTSYSAPI NTSTATUS WINAPI NtReplaceKey(POBJECT_ATTRIBUTES,HANDLE,POBJECT_ATTRIBUTES); 2558 4765 NTSYSAPI NTSTATUS WINAPI NtReplyPort(HANDLE,PLPC_MESSAGE); ··· 2561 4768 NTSYSAPI NTSTATUS WINAPI NtReplyWaitReplyPort(HANDLE,PLPC_MESSAGE); 2562 4769 NTSYSAPI NTSTATUS WINAPI NtRequestPort(HANDLE,PLPC_MESSAGE); 2563 4770 NTSYSAPI NTSTATUS WINAPI NtRequestWaitReplyPort(HANDLE,PLPC_MESSAGE,PLPC_MESSAGE); 2564 - NTSYSAPI NTSTATUS WINAPI NtResetEvent(HANDLE,PULONG); 4771 + NTSYSAPI NTSTATUS WINAPI NtResetEvent(HANDLE,LONG*); 2565 4772 NTSYSAPI NTSTATUS WINAPI NtResetWriteWatch(HANDLE,PVOID,SIZE_T); 2566 4773 NTSYSAPI NTSTATUS WINAPI NtRestoreKey(HANDLE,HANDLE,ULONG); 4774 + #ifndef __REACTOS__ 4775 + NTSYSAPI NTSTATUS WINAPI NtResumeProcess(HANDLE); 4776 + #endif 2567 4777 NTSYSAPI NTSTATUS WINAPI NtResumeThread(HANDLE,PULONG); 4778 + NTSYSAPI NTSTATUS WINAPI NtRollbackTransaction(HANDLE,BOOLEAN); 2568 4779 NTSYSAPI NTSTATUS WINAPI NtSaveKey(HANDLE,HANDLE); 2569 4780 NTSYSAPI NTSTATUS WINAPI NtSecureConnectPort(PHANDLE,PUNICODE_STRING,PSECURITY_QUALITY_OF_SERVICE,PLPC_SECTION_WRITE,PSID,PLPC_SECTION_READ,PULONG,PVOID,PULONG); 2570 4781 NTSYSAPI NTSTATUS WINAPI NtSetContextThread(HANDLE,const CONTEXT*); 4782 + NTSYSAPI NTSTATUS WINAPI NtSetDebugFilterState(ULONG,ULONG,BOOLEAN); 2571 4783 NTSYSAPI NTSTATUS WINAPI NtSetDefaultHardErrorPort(HANDLE); 2572 4784 NTSYSAPI NTSTATUS WINAPI NtSetDefaultLocale(BOOLEAN,LCID); 2573 4785 NTSYSAPI NTSTATUS WINAPI NtSetDefaultUILanguage(LANGID); 2574 4786 NTSYSAPI NTSTATUS WINAPI NtSetEaFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG); 2575 - NTSYSAPI NTSTATUS WINAPI NtSetEvent(HANDLE,PULONG); 4787 + NTSYSAPI NTSTATUS WINAPI NtSetEvent(HANDLE,LONG*); 2576 4788 NTSYSAPI NTSTATUS WINAPI NtSetHighEventPair(HANDLE); 2577 4789 NTSYSAPI NTSTATUS WINAPI NtSetHighWaitLowEventPair(HANDLE); 2578 4790 NTSYSAPI NTSTATUS WINAPI NtSetHighWaitLowThread(VOID); 4791 + NTSYSAPI NTSTATUS WINAPI NtSetInformationDebugObject(HANDLE,DEBUGOBJECTINFOCLASS,PVOID,ULONG,ULONG*); 2579 4792 NTSYSAPI NTSTATUS WINAPI NtSetInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FILE_INFORMATION_CLASS); 2580 4793 NTSYSAPI NTSTATUS WINAPI NtSetInformationJobObject(HANDLE,JOBOBJECTINFOCLASS,PVOID,ULONG); 2581 4794 NTSYSAPI NTSTATUS WINAPI NtSetInformationKey(HANDLE,const int,PVOID,ULONG); 2582 4795 NTSYSAPI NTSTATUS WINAPI NtSetInformationObject(HANDLE, OBJECT_INFORMATION_CLASS, PVOID, ULONG); 2583 - NTSYSAPI NTSTATUS WINAPI NtSetInformationProcess(HANDLE,PROCESS_INFORMATION_CLASS,PVOID,ULONG); 4796 + NTSYSAPI NTSTATUS WINAPI NtSetInformationProcess(HANDLE,PROCESSINFOCLASS,PVOID,ULONG); 2584 4797 NTSYSAPI NTSTATUS WINAPI NtSetInformationThread(HANDLE,THREADINFOCLASS,LPCVOID,ULONG); 2585 4798 NTSYSAPI NTSTATUS WINAPI NtSetInformationToken(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,ULONG); 4799 + NTSYSAPI NTSTATUS WINAPI NtSetInformationVirtualMemory(HANDLE,VIRTUAL_MEMORY_INFORMATION_CLASS,ULONG_PTR,PMEMORY_RANGE_ENTRY,PVOID,ULONG); 2586 4800 NTSYSAPI NTSTATUS WINAPI NtSetIntervalProfile(ULONG,KPROFILE_SOURCE); 2587 4801 NTSYSAPI NTSTATUS WINAPI NtSetIoCompletion(HANDLE,ULONG_PTR,ULONG_PTR,NTSTATUS,SIZE_T); 2588 - NTSYSAPI NTSTATUS WINAPI NtSetLdtEntries(ULONG,ULONG,ULONG,ULONG,ULONG,ULONG); 4802 + NTSYSAPI NTSTATUS WINAPI NtSetIoCompletionEx(HANDLE,HANDLE,ULONG_PTR,ULONG_PTR,NTSTATUS,SIZE_T); 4803 + NTSYSAPI NTSTATUS WINAPI NtSetLdtEntries(ULONG,LDT_ENTRY,ULONG,LDT_ENTRY); 2589 4804 NTSYSAPI NTSTATUS WINAPI NtSetLowEventPair(HANDLE); 2590 4805 NTSYSAPI NTSTATUS WINAPI NtSetLowWaitHighEventPair(HANDLE); 2591 4806 NTSYSAPI NTSTATUS WINAPI NtSetLowWaitHighThread(VOID); ··· 2594 4809 NTSYSAPI NTSTATUS WINAPI NtSetSystemInformation(SYSTEM_INFORMATION_CLASS,PVOID,ULONG); 2595 4810 NTSYSAPI NTSTATUS WINAPI NtSetSystemPowerState(POWER_ACTION,SYSTEM_POWER_STATE,ULONG); 2596 4811 NTSYSAPI NTSTATUS WINAPI NtSetSystemTime(const LARGE_INTEGER*,LARGE_INTEGER*); 4812 + NTSYSAPI NTSTATUS WINAPI NtSetThreadExecutionState(EXECUTION_STATE,EXECUTION_STATE*); 2597 4813 NTSYSAPI NTSTATUS WINAPI NtSetTimer(HANDLE, const LARGE_INTEGER*, PTIMER_APC_ROUTINE, PVOID, BOOLEAN, ULONG, BOOLEAN*); 2598 4814 NTSYSAPI NTSTATUS WINAPI NtSetTimerResolution(ULONG,BOOLEAN,PULONG); 2599 4815 NTSYSAPI NTSTATUS WINAPI NtSetValueKey(HANDLE,const UNICODE_STRING *,ULONG,ULONG,const void *,ULONG); ··· 2602 4818 NTSYSAPI NTSTATUS WINAPI NtShutdownSystem(SHUTDOWN_ACTION); 2603 4819 NTSYSAPI NTSTATUS WINAPI NtStartProfile(HANDLE); 2604 4820 NTSYSAPI NTSTATUS WINAPI NtStopProfile(HANDLE); 4821 + #ifndef __REACTOS__ 4822 + NTSYSAPI NTSTATUS WINAPI NtSuspendProcess(HANDLE); 4823 + #endif 2605 4824 NTSYSAPI NTSTATUS WINAPI NtSuspendThread(HANDLE,PULONG); 2606 4825 NTSYSAPI NTSTATUS WINAPI NtSystemDebugControl(SYSDBG_COMMAND,PVOID,ULONG,PVOID,ULONG,PULONG); 2607 4826 NTSYSAPI NTSTATUS WINAPI NtTerminateJobObject(HANDLE,NTSTATUS); 2608 4827 NTSYSAPI NTSTATUS WINAPI NtTerminateProcess(HANDLE,LONG); 2609 4828 NTSYSAPI NTSTATUS WINAPI NtTerminateThread(HANDLE,LONG); 2610 4829 NTSYSAPI NTSTATUS WINAPI NtTestAlert(VOID); 4830 + NTSYSAPI NTSTATUS WINAPI NtTraceControl(ULONG,void*,ULONG,void*,ULONG,ULONG*); 2611 4831 NTSYSAPI NTSTATUS WINAPI NtUnloadDriver(const UNICODE_STRING *); 2612 4832 NTSYSAPI NTSTATUS WINAPI NtUnloadKey(POBJECT_ATTRIBUTES); 2613 4833 NTSYSAPI NTSTATUS WINAPI NtUnloadKeyEx(POBJECT_ATTRIBUTES,HANDLE); 2614 4834 NTSYSAPI NTSTATUS WINAPI NtUnlockFile(HANDLE,PIO_STATUS_BLOCK,PLARGE_INTEGER,PLARGE_INTEGER,PULONG); 2615 4835 NTSYSAPI NTSTATUS WINAPI NtUnlockVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG); 2616 4836 NTSYSAPI NTSTATUS WINAPI NtUnmapViewOfSection(HANDLE,PVOID); 4837 + NTSYSAPI NTSTATUS WINAPI NtUnmapViewOfSectionEx(HANDLE,PVOID,ULONG); 2617 4838 NTSYSAPI NTSTATUS WINAPI NtVdmControl(ULONG,PVOID); 4839 + NTSYSAPI NTSTATUS WINAPI NtWaitForAlertByThreadId(const void*,const LARGE_INTEGER*); 4840 + NTSYSAPI NTSTATUS WINAPI NtWaitForDebugEvent(HANDLE,BOOLEAN,LARGE_INTEGER*,DBGUI_WAIT_STATE_CHANGE*); 2618 4841 NTSYSAPI NTSTATUS WINAPI NtWaitForKeyedEvent(HANDLE,const void*,BOOLEAN,const LARGE_INTEGER*); 2619 4842 NTSYSAPI NTSTATUS WINAPI NtWaitForSingleObject(HANDLE,BOOLEAN,const LARGE_INTEGER*); 2620 4843 NTSYSAPI NTSTATUS WINAPI NtWaitForMultipleObjects(ULONG,const HANDLE*,BOOLEAN,BOOLEAN,const LARGE_INTEGER*); ··· 2625 4848 NTSYSAPI NTSTATUS WINAPI NtWriteRequestData(HANDLE,PLPC_MESSAGE,ULONG,PVOID,ULONG,PULONG); 2626 4849 NTSYSAPI NTSTATUS WINAPI NtWriteVirtualMemory(HANDLE,void*,const void*,SIZE_T,SIZE_T*); 2627 4850 NTSYSAPI NTSTATUS WINAPI NtYieldExecution(void); 2628 - 4851 + NTSYSAPI NTSTATUS WINAPI RtlAbsoluteToSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PULONG); 2629 4852 NTSYSAPI void WINAPI RtlAcquirePebLock(void); 2630 4853 NTSYSAPI BYTE WINAPI RtlAcquireResourceExclusive(LPRTL_RWLOCK,BYTE); 2631 4854 NTSYSAPI BYTE WINAPI RtlAcquireResourceShared(LPRTL_RWLOCK,BYTE); 2632 4855 NTSYSAPI void WINAPI RtlAcquireSRWLockExclusive(RTL_SRWLOCK*); 2633 4856 NTSYSAPI void WINAPI RtlAcquireSRWLockShared(RTL_SRWLOCK*); 2634 4857 NTSYSAPI NTSTATUS WINAPI RtlActivateActivationContext(DWORD,HANDLE,ULONG_PTR*); 2635 - NTSYSAPI NTSTATUS WINAPI RtlAddAce(PACL,DWORD,DWORD,PACE_HEADER,DWORD); 4858 + NTSYSAPI NTSTATUS WINAPI RtlActivateActivationContextEx(ULONG,TEB*,HANDLE,ULONG_PTR*); 2636 4859 NTSYSAPI NTSTATUS WINAPI RtlAddAccessAllowedAce(PACL,DWORD,DWORD,PSID); 2637 4860 NTSYSAPI NTSTATUS WINAPI RtlAddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID); 2638 4861 NTSYSAPI NTSTATUS WINAPI RtlAddAccessAllowedObjectAce(PACL,DWORD,DWORD,DWORD,GUID*,GUID*,PSID); 2639 4862 NTSYSAPI NTSTATUS WINAPI RtlAddAccessDeniedAce(PACL,DWORD,DWORD,PSID); 2640 4863 NTSYSAPI NTSTATUS WINAPI RtlAddAccessDeniedAceEx(PACL,DWORD,DWORD,DWORD,PSID); 2641 4864 NTSYSAPI NTSTATUS WINAPI RtlAddAccessDeniedObjectAce(PACL,DWORD,DWORD,DWORD,GUID*,GUID*,PSID); 4865 + NTSYSAPI NTSTATUS WINAPI RtlAddAce(PACL,DWORD,DWORD,PACE_HEADER,DWORD); 2642 4866 NTSYSAPI NTSTATUS WINAPI RtlAddAtomToAtomTable(RTL_ATOM_TABLE,const WCHAR*,RTL_ATOM*); 2643 4867 NTSYSAPI NTSTATUS WINAPI RtlAddAuditAccessAce(PACL,DWORD,DWORD,PSID,BOOL,BOOL); 2644 4868 NTSYSAPI NTSTATUS WINAPI RtlAddAuditAccessAceEx(PACL,DWORD,DWORD,DWORD,PSID,BOOL,BOOL); 2645 4869 NTSYSAPI NTSTATUS WINAPI RtlAddAuditAccessObjectAce(PACL,DWORD,DWORD,DWORD,GUID*,GUID*,PSID,BOOL,BOOL); 2646 4870 NTSYSAPI NTSTATUS WINAPI RtlAddMandatoryAce(PACL,DWORD,DWORD,DWORD,DWORD,PSID); 4871 + NTSYSAPI NTSTATUS WINAPI RtlAddProcessTrustLabelAce(PACL,DWORD,DWORD,PSID,DWORD,DWORD); 2647 4872 NTSYSAPI void WINAPI RtlAddRefActivationContext(HANDLE); 4873 + NTSYSAPI PVOID WINAPI RtlAddVectoredContinueHandler(ULONG,PVECTORED_EXCEPTION_HANDLER); 2648 4874 NTSYSAPI PVOID WINAPI RtlAddVectoredExceptionHandler(ULONG,PVECTORED_EXCEPTION_HANDLER); 4875 + NTSYSAPI PVOID WINAPI RtlAddressInSectionTable(const IMAGE_NT_HEADERS*,HMODULE,DWORD); 2649 4876 NTSYSAPI NTSTATUS WINAPI RtlAdjustPrivilege(ULONG,BOOLEAN,BOOLEAN,PBOOLEAN); 2650 4877 NTSYSAPI NTSTATUS WINAPI RtlAllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *); 2651 4878 NTSYSAPI RTL_HANDLE * WINAPI RtlAllocateHandle(RTL_HANDLE_TABLE *,ULONG *); 2652 - NTSYSAPI PVOID WINAPI RtlAllocateHeap(HANDLE,ULONG,SIZE_T) __WINE_ALLOC_SIZE(3); 4879 + NTSYSAPI BOOLEAN WINAPI RtlFreeHeap(HANDLE,ULONG,PVOID); 4880 + NTSYSAPI PVOID WINAPI RtlAllocateHeap(HANDLE,ULONG,SIZE_T) __WINE_ALLOC_SIZE(3) __WINE_DEALLOC(RtlFreeHeap,3) __WINE_MALLOC; 2653 4881 NTSYSAPI WCHAR WINAPI RtlAnsiCharToUnicodeChar(LPSTR *); 2654 4882 NTSYSAPI DWORD WINAPI RtlAnsiStringToUnicodeSize(const STRING *); 2655 4883 NTSYSAPI NTSTATUS WINAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING,PCANSI_STRING,BOOLEAN); ··· 2665 4893 NTSYSAPI NTSTATUS WINAPI RtlCheckRegistryKey(ULONG, PWSTR); 2666 4894 NTSYSAPI void WINAPI RtlClearAllBits(PRTL_BITMAP); 2667 4895 NTSYSAPI void WINAPI RtlClearBits(PRTL_BITMAP,ULONG,ULONG); 2668 - NTSYSAPI NTSTATUS WINAPI RtlCreateActivationContext(HANDLE*,const void*); 2669 - NTSYSAPI PDEBUG_BUFFER WINAPI RtlCreateQueryDebugBuffer(ULONG,BOOLEAN); 2670 4896 NTSYSAPI ULONG WINAPI RtlCompactHeap(HANDLE,ULONG); 2671 - NTSYSAPI LONG WINAPI RtlCompareString(const STRING*,const STRING*,BOOLEAN); 2672 4897 NTSYSAPI LONG WINAPI RtlCompareUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN); 2673 4898 NTSYSAPI LONG WINAPI RtlCompareUnicodeStrings(const WCHAR*,SIZE_T,const WCHAR*,SIZE_T,BOOLEAN); 2674 4899 NTSYSAPI NTSTATUS WINAPI RtlCompressBuffer(USHORT,PUCHAR,ULONG,PUCHAR,ULONG,ULONG,PULONG,PVOID); 2675 4900 NTSYSAPI DWORD WINAPI RtlComputeCrc32(DWORD,const BYTE*,INT); 2676 4901 NTSYSAPI NTSTATUS WINAPI RtlConvertSidToUnicodeString(PUNICODE_STRING,PSID,BOOLEAN); 4902 + NTSYSAPI NTSTATUS WINAPI RtlConvertToAutoInheritSecurityObject(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,GUID*,BOOL,PGENERIC_MAPPING); 4903 + NTSYSAPI NTSTATUS WINAPI RtlCopyContext(CONTEXT*,DWORD,CONTEXT*); 4904 + NTSYSAPI NTSTATUS WINAPI RtlCopyExtendedContext(CONTEXT_EX*,ULONG,CONTEXT_EX*); 2677 4905 NTSYSAPI void WINAPI RtlCopyLuid(PLUID,const LUID*); 2678 4906 NTSYSAPI void WINAPI RtlCopyLuidAndAttributesArray(ULONG,const LUID_AND_ATTRIBUTES*,PLUID_AND_ATTRIBUTES); 2679 - NTSYSAPI BOOLEAN WINAPI RtlCopySid(DWORD,PSID,PSID); 2680 4907 NTSYSAPI NTSTATUS WINAPI RtlCopySecurityDescriptor(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR); 2681 - NTSYSAPI void WINAPI RtlCopyString(STRING*,const STRING*); 4908 + NTSYSAPI BOOLEAN WINAPI RtlCopySid(DWORD,PSID,PSID); 2682 4909 NTSYSAPI void WINAPI RtlCopyUnicodeString(UNICODE_STRING*,const UNICODE_STRING*); 2683 4910 NTSYSAPI NTSTATUS WINAPI RtlCreateAcl(PACL,DWORD,DWORD); 4911 + NTSYSAPI NTSTATUS WINAPI RtlCreateActivationContext(HANDLE*,const void*); 2684 4912 NTSYSAPI NTSTATUS WINAPI RtlCreateAtomTable(ULONG,RTL_ATOM_TABLE*); 2685 4913 NTSYSAPI NTSTATUS WINAPI RtlCreateEnvironment(BOOLEAN, PWSTR*); 2686 - NTSYSAPI HANDLE WINAPI RtlCreateHeap(ULONG,PVOID,SIZE_T,SIZE_T,PVOID,PRTL_HEAP_DEFINITION); 4914 + NTSYSAPI HANDLE WINAPI RtlCreateHeap(ULONG,PVOID,SIZE_T,SIZE_T,PVOID,PRTL_HEAP_PARAMETERS); 2687 4915 NTSYSAPI NTSTATUS WINAPI RtlCreateProcessParameters(RTL_USER_PROCESS_PARAMETERS**,const UNICODE_STRING*,const UNICODE_STRING*,const UNICODE_STRING*,const UNICODE_STRING*,PWSTR,const UNICODE_STRING*,const UNICODE_STRING*,const UNICODE_STRING*,const UNICODE_STRING*); 4916 + NTSYSAPI NTSTATUS WINAPI RtlCreateProcessParametersEx(RTL_USER_PROCESS_PARAMETERS**,const UNICODE_STRING*,const UNICODE_STRING*,const UNICODE_STRING*,const UNICODE_STRING*,PWSTR,const UNICODE_STRING*,const UNICODE_STRING*,const UNICODE_STRING*,const UNICODE_STRING*,ULONG); 4917 + NTSYSAPI PDEBUG_BUFFER WINAPI RtlCreateQueryDebugBuffer(ULONG,BOOLEAN); 4918 + NTSYSAPI NTSTATUS WINAPI RtlCreateRegistryKey(ULONG,PWSTR); 2688 4919 NTSYSAPI NTSTATUS WINAPI RtlCreateSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD); 4920 + NTSYSAPI NTSTATUS WINAPI RtlCreateTimer(HANDLE,HANDLE*,RTL_WAITORTIMERCALLBACKFUNC, PVOID, DWORD, DWORD, ULONG); 2689 4921 NTSYSAPI NTSTATUS WINAPI RtlCreateTimerQueue(PHANDLE); 2690 - NTSYSAPI NTSTATUS WINAPI RtlCreateTimer(PHANDLE, HANDLE, RTL_WAITORTIMERCALLBACKFUNC, PVOID, DWORD, DWORD, ULONG); 2691 4922 NTSYSAPI BOOLEAN WINAPI RtlCreateUnicodeString(PUNICODE_STRING,LPCWSTR); 2692 4923 NTSYSAPI BOOLEAN WINAPI RtlCreateUnicodeStringFromAsciiz(PUNICODE_STRING,LPCSTR); 2693 4924 NTSYSAPI NTSTATUS WINAPI RtlCreateUserProcess(UNICODE_STRING*,ULONG,RTL_USER_PROCESS_PARAMETERS*,SECURITY_DESCRIPTOR*,SECURITY_DESCRIPTOR*,HANDLE,BOOLEAN,HANDLE,HANDLE,RTL_USER_PROCESS_INFORMATION*); 2694 - NTSYSAPI NTSTATUS WINAPI RtlCreateUserThread(HANDLE,const SECURITY_DESCRIPTOR*,BOOLEAN,PVOID,SIZE_T,SIZE_T,PRTL_THREAD_START_ROUTINE,void*,HANDLE*,CLIENT_ID*); 4925 + NTSYSAPI NTSTATUS WINAPI RtlCreateUserStack(SIZE_T,SIZE_T,ULONG,SIZE_T,SIZE_T,INITIAL_TEB*); 4926 + NTSYSAPI NTSTATUS WINAPI RtlCreateUserThread(HANDLE,SECURITY_DESCRIPTOR*,BOOLEAN,ULONG,SIZE_T,SIZE_T,PRTL_THREAD_START_ROUTINE,void*,HANDLE*,CLIENT_ID*); 4927 + NTSYSAPI NTSTATUS WINAPI RtlCustomCPToUnicodeN(CPTABLEINFO*,WCHAR*,DWORD,DWORD*,const char*,DWORD); 4928 + NTSYSAPI PRTL_USER_PROCESS_PARAMETERS WINAPI RtlDeNormalizeProcessParams(RTL_USER_PROCESS_PARAMETERS*); 2695 4929 NTSYSAPI void WINAPI RtlDeactivateActivationContext(DWORD,ULONG_PTR); 2696 4930 NTSYSAPI PVOID WINAPI RtlDecodePointer(PVOID); 2697 4931 NTSYSAPI NTSTATUS WINAPI RtlDecompressBuffer(USHORT,PUCHAR,ULONG,PUCHAR,ULONG,PULONG); 4932 + NTSYSAPI NTSTATUS WINAPI RtlDecompressFragment(USHORT,PUCHAR,ULONG,PUCHAR,ULONG,ULONG,PULONG,PVOID); 4933 + NTSYSAPI NTSTATUS WINAPI RtlDefaultNpAcl(PACL*); 2698 4934 NTSYSAPI NTSTATUS WINAPI RtlDeleteAce(PACL,DWORD); 2699 4935 NTSYSAPI NTSTATUS WINAPI RtlDeleteAtomFromAtomTable(RTL_ATOM_TABLE,RTL_ATOM); 2700 4936 NTSYSAPI NTSTATUS WINAPI RtlDeleteCriticalSection(RTL_CRITICAL_SECTION *); ··· 2717 4953 NTSYSAPI BOOLEAN WINAPI RtlDoesFileExists_U(LPCWSTR); 2718 4954 NTSYSAPI BOOLEAN WINAPI RtlDosPathNameToNtPathName_U(PCWSTR,PUNICODE_STRING,PWSTR*,CURDIR*); 2719 4955 NTSYSAPI NTSTATUS WINAPI RtlDosPathNameToNtPathName_U_WithStatus(PCWSTR,PUNICODE_STRING,PWSTR*,CURDIR*); 4956 + NTSYSAPI BOOLEAN WINAPI RtlDosPathNameToRelativeNtPathName_U(PCWSTR,PUNICODE_STRING,PWSTR*,RTL_RELATIVE_NAME*); 4957 + NTSYSAPI NTSTATUS WINAPI RtlDosPathNameToRelativeNtPathName_U_WithStatus(PCWSTR,PUNICODE_STRING,PWSTR*,RTL_RELATIVE_NAME*); 2720 4958 NTSYSAPI ULONG WINAPI RtlDosSearchPath_U(LPCWSTR, LPCWSTR, LPCWSTR, ULONG, LPWSTR, LPWSTR*); 2721 4959 NTSYSAPI WCHAR WINAPI RtlDowncaseUnicodeChar(WCHAR); 2722 4960 NTSYSAPI NTSTATUS WINAPI RtlDowncaseUnicodeString(UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN); ··· 2731 4969 NTSYSAPI BOOLEAN WINAPI RtlEqualLuid(const LUID*,const LUID*); 2732 4970 NTSYSAPI BOOL WINAPI RtlEqualPrefixSid(PSID,PSID); 2733 4971 NTSYSAPI BOOL WINAPI RtlEqualSid(PSID,PSID); 2734 - NTSYSAPI BOOLEAN WINAPI RtlEqualString(const STRING*,const STRING*,BOOLEAN); 2735 4972 NTSYSAPI BOOLEAN WINAPI RtlEqualUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN); 4973 + NTSYSAPI void WINAPI RtlEraseUnicodeString(UNICODE_STRING*); 2736 4974 NTSYSAPI void DECLSPEC_NORETURN WINAPI RtlExitUserProcess(ULONG); 2737 4975 NTSYSAPI void DECLSPEC_NORETURN WINAPI RtlExitUserThread(ULONG); 4976 + NTSYSAPI NTSTATUS WINAPI RtlExpandEnvironmentStrings(const WCHAR*,WCHAR*,SIZE_T,WCHAR*,SIZE_T,SIZE_T*); 2738 4977 NTSYSAPI NTSTATUS WINAPI RtlExpandEnvironmentStrings_U(PCWSTR, const UNICODE_STRING*, UNICODE_STRING*, ULONG*); 2739 4978 NTSYSAPI NTSTATUS WINAPI RtlFindActivationContextSectionString(ULONG,const GUID*,ULONG,const UNICODE_STRING*,PVOID); 2740 4979 NTSYSAPI NTSTATUS WINAPI RtlFindActivationContextSectionGuid(ULONG,const GUID*,ULONG,const GUID*,PVOID); ··· 2742 4981 NTSYSAPI ULONG WINAPI RtlFindClearBits(PCRTL_BITMAP,ULONG,ULONG); 2743 4982 NTSYSAPI ULONG WINAPI RtlFindClearBitsAndSet(PRTL_BITMAP,ULONG,ULONG); 2744 4983 NTSYSAPI ULONG WINAPI RtlFindClearRuns(PCRTL_BITMAP,PRTL_BITMAP_RUN,ULONG,BOOLEAN); 4984 + NTSYSAPI void * WINAPI RtlFindExportedRoutineByName(HMODULE,const char*); 2745 4985 NTSYSAPI ULONG WINAPI RtlFindLastBackwardRunSet(PCRTL_BITMAP,ULONG,PULONG); 2746 4986 NTSYSAPI ULONG WINAPI RtlFindLastBackwardRunClear(PCRTL_BITMAP,ULONG,PULONG); 2747 4987 NTSYSAPI CCHAR WINAPI RtlFindLeastSignificantBit(ULONGLONG); ··· 2755 4995 NTSYSAPI ULONG WINAPI RtlFindSetBitsAndClear(PRTL_BITMAP,ULONG,ULONG); 2756 4996 NTSYSAPI ULONG WINAPI RtlFindSetRuns(PCRTL_BITMAP,PRTL_BITMAP_RUN,ULONG,BOOLEAN); 2757 4997 NTSYSAPI BOOLEAN WINAPI RtlFirstFreeAce(PACL,PACE_HEADER *); 4998 + NTSYSAPI NTSTATUS WINAPI RtlFlsAlloc(PFLS_CALLBACK_FUNCTION,ULONG *); 4999 + NTSYSAPI NTSTATUS WINAPI RtlFlsFree(ULONG); 5000 + NTSYSAPI NTSTATUS WINAPI RtlFlsGetValue(ULONG,void **); 5001 + NTSYSAPI NTSTATUS WINAPI RtlFlsSetValue(ULONG,void *); 2758 5002 NTSYSAPI NTSTATUS WINAPI RtlFormatCurrentUserKeyPath(PUNICODE_STRING); 2759 - NTSYSAPI NTSTATUS WINAPI RtlFormatMessage(LPWSTR,UCHAR,BOOLEAN,BOOLEAN,BOOLEAN,__ms_va_list *,LPWSTR,ULONG); 5003 + #ifdef __ms_va_list 5004 + NTSYSAPI NTSTATUS WINAPI RtlFormatMessage(LPCWSTR,ULONG,BOOLEAN,BOOLEAN,BOOLEAN,__ms_va_list *,LPWSTR,ULONG,ULONG*); 5005 + NTSYSAPI NTSTATUS WINAPI RtlFormatMessageEx(LPCWSTR,ULONG,BOOLEAN,BOOLEAN,BOOLEAN,__ms_va_list *,LPWSTR,ULONG,ULONG*,ULONG); 5006 + #endif 5007 + NTSYSAPI void WINAPI RtlFreeActivationContextStack(ACTIVATION_CONTEXT_STACK *); 2760 5008 NTSYSAPI void WINAPI RtlFreeAnsiString(PANSI_STRING); 2761 5009 NTSYSAPI BOOLEAN WINAPI RtlFreeHandle(RTL_HANDLE_TABLE *,RTL_HANDLE *); 2762 - NTSYSAPI BOOLEAN WINAPI RtlFreeHeap(HANDLE,ULONG,PVOID); 2763 5010 NTSYSAPI void WINAPI RtlFreeOemString(POEM_STRING); 2764 5011 NTSYSAPI DWORD WINAPI RtlFreeSid(PSID); 2765 5012 NTSYSAPI void WINAPI RtlFreeThreadActivationContextStack(void); 2766 5013 NTSYSAPI void WINAPI RtlFreeUnicodeString(PUNICODE_STRING); 5014 + NTSYSAPI void WINAPI RtlFreeUserStack(void*); 5015 + NTSYSAPI NTSTATUS WINAPI RtlGUIDFromString(PUNICODE_STRING,GUID*); 2767 5016 NTSYSAPI NTSTATUS WINAPI RtlGetAce(PACL,DWORD,LPVOID *); 2768 5017 NTSYSAPI NTSTATUS WINAPI RtlGetActiveActivationContext(HANDLE*); 2769 5018 NTSYSAPI NTSTATUS WINAPI RtlGetCompressionWorkSpaceSize(USHORT,PULONG,PULONG); 2770 5019 NTSYSAPI NTSTATUS WINAPI RtlGetControlSecurityDescriptor(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL,LPDWORD); 2771 5020 NTSYSAPI ULONG WINAPI RtlGetCurrentDirectory_U(ULONG, LPWSTR); 2772 5021 NTSYSAPI PEB * WINAPI RtlGetCurrentPeb(void); 5022 + NTSYSAPI void WINAPI RtlGetCurrentProcessorNumberEx(PROCESSOR_NUMBER*); 5023 + NTSYSAPI HANDLE WINAPI RtlGetCurrentTransaction(void); 2773 5024 NTSYSAPI NTSTATUS WINAPI RtlGetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR,PBOOLEAN,PACL *,PBOOLEAN); 5025 + NTSYSAPI ULONG64 WINAPI RtlGetEnabledExtendedFeatures(ULONG64); 5026 + NTSYSAPI NTSTATUS WINAPI RtlGetExePath(PCWSTR,PWSTR*); 5027 + NTSYSAPI NTSTATUS WINAPI RtlGetExtendedContextLength(ULONG,ULONG*); 5028 + NTSYSAPI NTSTATUS WINAPI RtlGetExtendedContextLength2(ULONG,ULONG*,ULONG64); 5029 + NTSYSAPI ULONG64 WINAPI RtlGetExtendedFeaturesMask(CONTEXT_EX*); 2774 5030 NTSYSAPI TEB_ACTIVE_FRAME * WINAPI RtlGetFrame(void); 2775 5031 NTSYSAPI ULONG WINAPI RtlGetFullPathName_U(PCWSTR,ULONG,PWSTR,PWSTR*); 2776 5032 NTSYSAPI NTSTATUS WINAPI RtlGetGroupSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID *,PBOOLEAN); ··· 2778 5034 NTSYSAPI DWORD WINAPI RtlGetLastWin32Error(void); 2779 5035 NTSYSAPI NTSTATUS WINAPI RtlGetLocaleFileMappingAddress(void**,LCID*,LARGE_INTEGER*); 2780 5036 NTSYSAPI DWORD WINAPI RtlGetLongestNtPathLength(void); 5037 + NTSYSAPI NTSTATUS WINAPI RtlGetNativeSystemInformation(SYSTEM_INFORMATION_CLASS,void*,ULONG,ULONG*); 2781 5038 NTSYSAPI ULONG WINAPI RtlGetNtGlobalFlags(void); 2782 5039 NTSYSAPI BOOLEAN WINAPI RtlGetNtProductType(LPDWORD); 5040 + NTSYSAPI void WINAPI RtlGetNtVersionNumbers(LPDWORD,LPDWORD,LPDWORD); 2783 5041 NTSYSAPI NTSTATUS WINAPI RtlGetOwnerSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID *,PBOOLEAN); 2784 5042 NTSYSAPI ULONG WINAPI RtlGetProcessHeaps(ULONG,HANDLE*); 2785 - NTSYSAPI DWORD WINAPI RtlGetThreadErrorMode(void); 5043 + NTSYSAPI NTSTATUS WINAPI RtlGetProcessPreferredUILanguages(DWORD,ULONG*,WCHAR*,ULONG*); 5044 + NTSYSAPI BOOLEAN WINAPI RtlGetProductInfo(DWORD,DWORD,DWORD,DWORD,PDWORD); 2786 5045 NTSYSAPI NTSTATUS WINAPI RtlGetSaclSecurityDescriptor(PSECURITY_DESCRIPTOR,PBOOLEAN,PACL *,PBOOLEAN); 5046 + NTSYSAPI NTSTATUS WINAPI RtlGetSearchPath(PWSTR*); 5047 + NTSYSAPI NTSTATUS WINAPI RtlGetSystemPreferredUILanguages(DWORD,ULONG,ULONG*,WCHAR*,ULONG*); 5048 + NTSYSAPI LONGLONG WINAPI RtlGetSystemTimePrecise(void); 5049 + NTSYSAPI DWORD WINAPI RtlGetThreadErrorMode(void); 5050 + NTSYSAPI NTSTATUS WINAPI RtlGetThreadPreferredUILanguages(DWORD,ULONG*,WCHAR*,ULONG*); 5051 + NTSYSAPI BOOLEAN WINAPI RtlGetUserInfoHeap(HANDLE,ULONG,void*,void**,ULONG*); 5052 + NTSYSAPI NTSTATUS WINAPI RtlGetUserPreferredUILanguages(DWORD,ULONG,ULONG*,WCHAR*,ULONG*); 2787 5053 NTSYSAPI NTSTATUS WINAPI RtlGetVersion(RTL_OSVERSIONINFOEXW*); 2788 - NTSYSAPI NTSTATUS WINAPI RtlGUIDFromString(PUNICODE_STRING,GUID*); 5054 + NTSYSAPI NTSTATUS WINAPI RtlHashUnicodeString(const UNICODE_STRING*,BOOLEAN,ULONG,ULONG*); 2789 5055 NTSYSAPI PSID_IDENTIFIER_AUTHORITY WINAPI RtlIdentifierAuthoritySid(PSID); 5056 + NTSYSAPI NTSTATUS WINAPI RtlIdnToAscii(DWORD,const WCHAR*,INT,WCHAR*,INT*); 5057 + NTSYSAPI NTSTATUS WINAPI RtlIdnToNameprepUnicode(DWORD,const WCHAR*,INT,WCHAR*,INT*); 5058 + NTSYSAPI NTSTATUS WINAPI RtlIdnToUnicode(DWORD,const WCHAR*,INT,WCHAR*,INT*); 2790 5059 NTSYSAPI PVOID WINAPI RtlImageDirectoryEntryToData(HMODULE,BOOL,WORD,ULONG *); 2791 5060 NTSYSAPI PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE); 2792 5061 NTSYSAPI PIMAGE_SECTION_HEADER WINAPI RtlImageRvaToSection(const IMAGE_NT_HEADERS *,HMODULE,DWORD); 2793 5062 NTSYSAPI PVOID WINAPI RtlImageRvaToVa(const IMAGE_NT_HEADERS *,HMODULE,DWORD,IMAGE_SECTION_HEADER **); 2794 5063 NTSYSAPI NTSTATUS WINAPI RtlImpersonateSelf(SECURITY_IMPERSONATION_LEVEL); 2795 - NTSYSAPI void WINAPI RtlInitString(PSTRING,PCSZ); 2796 5064 NTSYSAPI void WINAPI RtlInitAnsiString(PANSI_STRING,PCSZ); 2797 5065 NTSYSAPI NTSTATUS WINAPI RtlInitAnsiStringEx(PANSI_STRING,PCSZ); 5066 + NTSYSAPI void WINAPI RtlInitCodePageTable(USHORT*,CPTABLEINFO*); 5067 + NTSYSAPI void WINAPI RtlInitNlsTables(USHORT*,USHORT*,USHORT*,NLSTABLEINFO*); 5068 + NTSYSAPI void WINAPI RtlInitString(PSTRING,PCSZ); 2798 5069 NTSYSAPI void WINAPI RtlInitUnicodeString(PUNICODE_STRING,PCWSTR); 2799 5070 NTSYSAPI NTSTATUS WINAPI RtlInitUnicodeStringEx(PUNICODE_STRING,PCWSTR); 2800 5071 NTSYSAPI void WINAPI RtlInitializeBitMap(PRTL_BITMAP,PULONG,ULONG); ··· 2802 5073 NTSYSAPI NTSTATUS WINAPI RtlInitializeCriticalSection(RTL_CRITICAL_SECTION *); 2803 5074 NTSYSAPI NTSTATUS WINAPI RtlInitializeCriticalSectionAndSpinCount(RTL_CRITICAL_SECTION *,ULONG); 2804 5075 NTSYSAPI NTSTATUS WINAPI RtlInitializeCriticalSectionEx(RTL_CRITICAL_SECTION *,ULONG,ULONG); 5076 + NTSYSAPI NTSTATUS WINAPI RtlInitializeExtendedContext(void*,ULONG,CONTEXT_EX**); 5077 + NTSYSAPI NTSTATUS WINAPI RtlInitializeExtendedContext2(void*,ULONG,CONTEXT_EX**,ULONG64); 2805 5078 NTSYSAPI void WINAPI RtlInitializeHandleTable(ULONG,ULONG,RTL_HANDLE_TABLE *); 5079 + NTSYSAPI NTSTATUS WINAPI RtlInitializeNtUserPfn(const void*,ULONG,const void*,ULONG,const void*,ULONG); 2806 5080 NTSYSAPI void WINAPI RtlInitializeResource(LPRTL_RWLOCK); 2807 5081 NTSYSAPI void WINAPI RtlInitializeSRWLock(RTL_SRWLOCK*); 2808 - NTSYSAPI BOOL WINAPI RtlInitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE); 5082 + NTSYSAPI NTSTATUS WINAPI RtlInitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE); 2809 5083 NTSYSAPI NTSTATUS WINAPI RtlInt64ToUnicodeString(ULONGLONG,ULONG,UNICODE_STRING *); 2810 5084 NTSYSAPI NTSTATUS WINAPI RtlIntegerToChar(ULONG,ULONG,ULONG,PCHAR); 2811 5085 NTSYSAPI NTSTATUS WINAPI RtlIntegerToUnicodeString(ULONG,ULONG,UNICODE_STRING *); 2812 5086 NTSYSAPI BOOLEAN WINAPI RtlIsActivationContextActive(HANDLE); 2813 5087 NTSYSAPI BOOL WINAPI RtlIsCriticalSectionLocked(RTL_CRITICAL_SECTION *); 2814 5088 NTSYSAPI BOOL WINAPI RtlIsCriticalSectionLockedByThread(RTL_CRITICAL_SECTION *); 5089 + NTSYSAPI BOOLEAN WINAPI RtlIsCurrentProcess(HANDLE); 5090 + NTSYSAPI BOOLEAN WINAPI RtlIsCurrentThread(HANDLE); 2815 5091 NTSYSAPI ULONG WINAPI RtlIsDosDeviceName_U(PCWSTR); 2816 5092 NTSYSAPI BOOLEAN WINAPI RtlIsNameLegalDOS8Dot3(const UNICODE_STRING*,POEM_STRING,PBOOLEAN); 5093 + NTSYSAPI NTSTATUS WINAPI RtlIsNormalizedString(ULONG,const WCHAR*,INT,BOOLEAN*); 5094 + NTSYSAPI BOOLEAN WINAPI RtlIsProcessorFeaturePresent(UINT); 2817 5095 NTSYSAPI BOOLEAN WINAPI RtlIsTextUnicode(LPCVOID,INT,INT *); 2818 5096 NTSYSAPI BOOLEAN WINAPI RtlIsValidHandle(const RTL_HANDLE_TABLE *, const RTL_HANDLE *); 2819 5097 NTSYSAPI BOOLEAN WINAPI RtlIsValidIndexHandle(const RTL_HANDLE_TABLE *, ULONG Index, RTL_HANDLE **); 5098 + NTSYSAPI BOOLEAN WINAPI RtlIsValidLocaleName(const WCHAR*,ULONG); 5099 + NTSYSAPI NTSTATUS WINAPI RtlLcidToLocaleName(LCID,UNICODE_STRING*,ULONG,BOOLEAN); 2820 5100 NTSYSAPI NTSTATUS WINAPI RtlLeaveCriticalSection(RTL_CRITICAL_SECTION *); 2821 5101 NTSYSAPI DWORD WINAPI RtlLengthRequiredSid(DWORD); 2822 5102 NTSYSAPI ULONG WINAPI RtlLengthSecurityDescriptor(PSECURITY_DESCRIPTOR); 2823 5103 NTSYSAPI DWORD WINAPI RtlLengthSid(PSID); 2824 5104 NTSYSAPI NTSTATUS WINAPI RtlLocalTimeToSystemTime(const LARGE_INTEGER*,PLARGE_INTEGER); 5105 + NTSYSAPI NTSTATUS WINAPI RtlLocaleNameToLcid(const WCHAR*,LCID*,ULONG); 5106 + NTSYSAPI void * WINAPI RtlLocateExtendedFeature(CONTEXT_EX*,ULONG,ULONG*); 5107 + NTSYSAPI void * WINAPI RtlLocateExtendedFeature2(CONTEXT_EX*,ULONG,XSTATE_CONFIGURATION*,ULONG*); 5108 + NTSYSAPI void * WINAPI RtlLocateLegacyContext(CONTEXT_EX*,ULONG*); 2825 5109 NTSYSAPI BOOLEAN WINAPI RtlLockHeap(HANDLE); 2826 5110 NTSYSAPI NTSTATUS WINAPI RtlLookupAtomInAtomTable(RTL_ATOM_TABLE,const WCHAR*,RTL_ATOM*); 2827 5111 NTSYSAPI NTSTATUS WINAPI RtlMakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD); 2828 - NTSYSAPI void WINAPI RtlMapGenericMask(PACCESS_MASK,const GENERIC_MAPPING*); 2829 5112 NTSYSAPI NTSTATUS WINAPI RtlMultiByteToUnicodeN(LPWSTR,DWORD,LPDWORD,LPCSTR,DWORD); 2830 - NTSYSAPI NTSTATUS WINAPI RtlMultiByteToUnicodeSize(DWORD*,LPCSTR,UINT); 5113 + NTSYSAPI NTSTATUS WINAPI RtlMultiByteToUnicodeSize(DWORD*,LPCSTR,ULONG); 2831 5114 NTSYSAPI NTSTATUS WINAPI RtlNewSecurityObject(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,BOOLEAN,HANDLE,PGENERIC_MAPPING); 5115 + NTSYSAPI NTSTATUS WINAPI RtlNewSecurityObjectEx(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,GUID*,BOOLEAN,ULONG,HANDLE,PGENERIC_MAPPING); 5116 + NTSYSAPI NTSTATUS WINAPI RtlNewSecurityObjectWithMultipleInheritance(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*, 5117 + GUID **,ULONG,BOOLEAN,ULONG,HANDLE,PGENERIC_MAPPING); 2832 5118 NTSYSAPI PRTL_USER_PROCESS_PARAMETERS WINAPI RtlNormalizeProcessParams(RTL_USER_PROCESS_PARAMETERS*); 5119 + NTSYSAPI NTSTATUS WINAPI RtlNormalizeString(ULONG,const WCHAR*,INT,WCHAR*,INT*); 2833 5120 NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS); 2834 5121 NTSYSAPI ULONG WINAPI RtlNtStatusToDosErrorNoTeb(NTSTATUS); 2835 5122 NTSYSAPI ULONG WINAPI RtlNumberOfSetBits(PCRTL_BITMAP); 2836 5123 NTSYSAPI ULONG WINAPI RtlNumberOfClearBits(PCRTL_BITMAP); 2837 - NTSYSAPI UINT WINAPI RtlOemStringToUnicodeSize(const STRING*); 5124 + NTSYSAPI ULONG WINAPI RtlOemStringToUnicodeSize(const STRING*); 2838 5125 NTSYSAPI NTSTATUS WINAPI RtlOemStringToUnicodeString(UNICODE_STRING*,const STRING*,BOOLEAN); 2839 5126 NTSYSAPI NTSTATUS WINAPI RtlOemToUnicodeN(LPWSTR,DWORD,LPDWORD,LPCSTR,DWORD); 2840 5127 NTSYSAPI NTSTATUS WINAPI RtlOpenCurrentUser(ACCESS_MASK,PHANDLE); 2841 - NTSYSAPI PVOID WINAPI RtlPcToFileHeader(PVOID,PVOID*); 2842 5128 NTSYSAPI NTSTATUS WINAPI RtlPinAtomInAtomTable(RTL_ATOM_TABLE,RTL_ATOM); 2843 5129 NTSYSAPI void WINAPI RtlPopFrame(TEB_ACTIVE_FRAME*); 2844 5130 NTSYSAPI BOOLEAN WINAPI RtlPrefixString(const STRING*,const STRING*,BOOLEAN); 2845 - NTSYSAPI BOOLEAN WINAPI RtlPrefixUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN); 5131 + NTSYSAPI void WINAPI RtlProcessFlsData(void*,ULONG); 2846 5132 NTSYSAPI void WINAPI RtlPushFrame(TEB_ACTIVE_FRAME*); 5133 + NTSYSAPI NTSTATUS WINAPI RtlQueryActivationContextApplicationSettings(DWORD,HANDLE,const WCHAR*,const WCHAR*,WCHAR*,SIZE_T,SIZE_T*); 2847 5134 NTSYSAPI NTSTATUS WINAPI RtlQueryAtomInAtomTable(RTL_ATOM_TABLE,RTL_ATOM,ULONG*,ULONG*,WCHAR*,ULONG*); 2848 5135 NTSYSAPI NTSTATUS WINAPI RtlQueryDynamicTimeZoneInformation(RTL_DYNAMIC_TIME_ZONE_INFORMATION*); 5136 + NTSYSAPI NTSTATUS WINAPI RtlQueryEnvironmentVariable(WCHAR*,const WCHAR*,SIZE_T,WCHAR*,SIZE_T,SIZE_T*); 2849 5137 NTSYSAPI NTSTATUS WINAPI RtlQueryEnvironmentVariable_U(PWSTR,PUNICODE_STRING,PUNICODE_STRING); 2850 5138 NTSYSAPI NTSTATUS WINAPI RtlQueryHeapInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T,PSIZE_T); 2851 5139 NTSYSAPI NTSTATUS WINAPI RtlQueryInformationAcl(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS); 2852 5140 NTSYSAPI NTSTATUS WINAPI RtlQueryInformationActivationContext(ULONG,HANDLE,PVOID,ULONG,PVOID,SIZE_T,SIZE_T*); 5141 + NTSYSAPI NTSTATUS WINAPI RtlQueryPackageIdentity(HANDLE,WCHAR*,SIZE_T*,WCHAR*,SIZE_T*,BOOLEAN*); 5142 + NTSYSAPI BOOL WINAPI RtlQueryPerformanceCounter(LARGE_INTEGER*); 5143 + NTSYSAPI BOOL WINAPI RtlQueryPerformanceFrequency(LARGE_INTEGER*); 2853 5144 NTSYSAPI NTSTATUS WINAPI RtlQueryProcessDebugInformation(ULONG,ULONG,PDEBUG_BUFFER); 2854 5145 NTSYSAPI NTSTATUS WINAPI RtlQueryRegistryValues(ULONG, PCWSTR, PRTL_QUERY_REGISTRY_TABLE, PVOID, PVOID); 2855 5146 NTSYSAPI NTSTATUS WINAPI RtlQueryTimeZoneInformation(RTL_TIME_ZONE_INFORMATION*); 2856 - NTSYSAPI NTSTATUS WINAPI RtlQueryUnbiasedInterruptTime(ULONGLONG*); 5147 + NTSYSAPI BOOL WINAPI RtlQueryUnbiasedInterruptTime(ULONGLONG*); 2857 5148 NTSYSAPI NTSTATUS WINAPI RtlQueueWorkItem(PRTL_WORK_ITEM_ROUTINE,PVOID,ULONG); 2858 - NTSYSAPI void WINAPI RtlRaiseException(PEXCEPTION_RECORD); 2859 - NTSYSAPI void WINAPI RtlRaiseStatus(NTSTATUS); 5149 + NTSYSAPI void DECLSPEC_NORETURN WINAPI RtlRaiseStatus(NTSTATUS); 2860 5150 NTSYSAPI ULONG WINAPI RtlRandom(PULONG); 2861 - NTSYSAPI PVOID WINAPI RtlReAllocateHeap(HANDLE,ULONG,PVOID,SIZE_T); 5151 + NTSYSAPI ULONG WINAPI RtlRandomEx(PULONG); 5152 + NTSYSAPI void WINAPI RtlRbInsertNodeEx(RTL_RB_TREE*,RTL_BALANCED_NODE*,BOOLEAN,RTL_BALANCED_NODE*); 5153 + NTSYSAPI void WINAPI RtlRbRemoveNode(RTL_RB_TREE*,RTL_BALANCED_NODE*); 5154 + NTSYSAPI PVOID WINAPI RtlReAllocateHeap(HANDLE,ULONG,PVOID,SIZE_T) __WINE_ALLOC_SIZE(4) __WINE_DEALLOC(RtlFreeHeap,3); 2862 5155 NTSYSAPI NTSTATUS WINAPI RtlRegisterWait(PHANDLE,HANDLE,RTL_WAITORTIMERCALLBACKFUNC,PVOID,ULONG,ULONG); 2863 5156 NTSYSAPI void WINAPI RtlReleaseActivationContext(HANDLE); 5157 + NTSYSAPI void WINAPI RtlReleasePath(PWSTR); 2864 5158 NTSYSAPI void WINAPI RtlReleasePebLock(void); 5159 + NTSYSAPI void WINAPI RtlReleaseRelativeName(RTL_RELATIVE_NAME*); 2865 5160 NTSYSAPI void WINAPI RtlReleaseResource(LPRTL_RWLOCK); 2866 5161 NTSYSAPI void WINAPI RtlReleaseSRWLockExclusive(RTL_SRWLOCK*); 2867 5162 NTSYSAPI void WINAPI RtlReleaseSRWLockShared(RTL_SRWLOCK*); 5163 + NTSYSAPI ULONG WINAPI RtlRemoveVectoredContinueHandler(PVOID); 2868 5164 NTSYSAPI ULONG WINAPI RtlRemoveVectoredExceptionHandler(PVOID); 5165 + NTSYSAPI NTSTATUS WINAPI RtlRetrieveNtUserPfn(const void**,const void**,const void**); 5166 + NTSYSAPI NTSTATUS WINAPI RtlResetNtUserPfn(void); 5167 + NTSYSAPI void WINAPI RtlResetRtlTranslations(const NLSTABLEINFO*); 2869 5168 NTSYSAPI void WINAPI RtlRestoreLastWin32Error(DWORD); 2870 5169 NTSYSAPI void WINAPI RtlSecondsSince1970ToTime(DWORD,LARGE_INTEGER *); 2871 5170 NTSYSAPI void WINAPI RtlSecondsSince1980ToTime(DWORD,LARGE_INTEGER *); 2872 5171 NTSYSAPI NTSTATUS WINAPI RtlSelfRelativeToAbsoluteSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD,PACL,PDWORD,PACL,PDWORD,PSID,PDWORD,PSID,PDWORD); 2873 5172 NTSYSAPI void WINAPI RtlSetAllBits(PRTL_BITMAP); 2874 5173 NTSYSAPI void WINAPI RtlSetBits(PRTL_BITMAP,ULONG,ULONG); 5174 + NTSYSAPI NTSTATUS WINAPI RtlSetControlSecurityDescriptor(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL,SECURITY_DESCRIPTOR_CONTROL); 2875 5175 NTSYSAPI ULONG WINAPI RtlSetCriticalSectionSpinCount(RTL_CRITICAL_SECTION*,ULONG); 2876 - NTSYSAPI NTSTATUS WINAPI RtlSetControlSecurityDescriptor(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL,SECURITY_DESCRIPTOR_CONTROL); 2877 5176 NTSYSAPI NTSTATUS WINAPI RtlSetCurrentDirectory_U(const UNICODE_STRING*); 2878 5177 NTSYSAPI void WINAPI RtlSetCurrentEnvironment(PWSTR, PWSTR*); 5178 + NTSYSAPI BOOL WINAPI RtlSetCurrentTransaction(HANDLE); 2879 5179 NTSYSAPI NTSTATUS WINAPI RtlSetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR,BOOLEAN,PACL,BOOLEAN); 2880 5180 NTSYSAPI NTSTATUS WINAPI RtlSetEnvironmentVariable(PWSTR*,PUNICODE_STRING,PUNICODE_STRING); 2881 - NTSYSAPI NTSTATUS WINAPI RtlSetHeapInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T); 2882 - NTSYSAPI NTSTATUS WINAPI RtlSetOwnerSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID,BOOLEAN); 5181 + NTSYSAPI void WINAPI RtlSetExtendedFeaturesMask(CONTEXT_EX*,ULONG64); 2883 5182 NTSYSAPI NTSTATUS WINAPI RtlSetGroupSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID,BOOLEAN); 5183 + NTSYSAPI NTSTATUS WINAPI RtlSetHeapInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T); 2884 5184 NTSYSAPI NTSTATUS WINAPI RtlSetIoCompletionCallback(HANDLE,PRTL_OVERLAPPED_COMPLETION_ROUTINE,ULONG); 2885 5185 NTSYSAPI void WINAPI RtlSetLastWin32Error(DWORD); 2886 5186 NTSYSAPI void WINAPI RtlSetLastWin32ErrorAndNtStatusFromNtStatus(NTSTATUS); 5187 + NTSYSAPI NTSTATUS WINAPI RtlSetOwnerSecurityDescriptor(PSECURITY_DESCRIPTOR,PSID,BOOLEAN); 5188 + NTSYSAPI NTSTATUS WINAPI RtlSetProcessPreferredUILanguages(DWORD,PCZZWSTR,ULONG*); 2887 5189 NTSYSAPI NTSTATUS WINAPI RtlSetSaclSecurityDescriptor(PSECURITY_DESCRIPTOR,BOOLEAN,PACL,BOOLEAN); 5190 + NTSYSAPI NTSTATUS WINAPI RtlSetSearchPathMode(ULONG); 2888 5191 NTSYSAPI NTSTATUS WINAPI RtlSetThreadErrorMode(DWORD,LPDWORD); 5192 + NTSYSAPI NTSTATUS WINAPI RtlSetThreadPreferredUILanguages(DWORD,PCZZWSTR,ULONG*); 2889 5193 NTSYSAPI NTSTATUS WINAPI RtlSetTimeZoneInformation(const RTL_TIME_ZONE_INFORMATION*); 5194 + NTSYSAPI void WINAPI RtlSetUnhandledExceptionFilter(PRTL_EXCEPTION_FILTER); 5195 + NTSYSAPI BOOLEAN WINAPI RtlSetUserFlagsHeap(HANDLE,ULONG,void*,ULONG,ULONG); 5196 + NTSYSAPI BOOLEAN WINAPI RtlSetUserValueHeap(HANDLE,ULONG,void*,void*); 2890 5197 NTSYSAPI SIZE_T WINAPI RtlSizeHeap(HANDLE,ULONG,const void*); 2891 5198 NTSYSAPI NTSTATUS WINAPI RtlSleepConditionVariableCS(RTL_CONDITION_VARIABLE*,RTL_CRITICAL_SECTION*,const LARGE_INTEGER*); 2892 5199 NTSYSAPI NTSTATUS WINAPI RtlSleepConditionVariableSRW(RTL_CONDITION_VARIABLE*,RTL_SRWLOCK*,const LARGE_INTEGER*,ULONG); ··· 2894 5201 NTSYSAPI LPDWORD WINAPI RtlSubAuthoritySid(PSID,DWORD); 2895 5202 NTSYSAPI LPBYTE WINAPI RtlSubAuthorityCountSid(PSID); 2896 5203 NTSYSAPI NTSTATUS WINAPI RtlSystemTimeToLocalTime(const LARGE_INTEGER*,PLARGE_INTEGER); 2897 - NTSYSAPI void WINAPI RtlTimeToTimeFields(const LARGE_INTEGER*,PTIME_FIELDS); 2898 5204 NTSYSAPI BOOLEAN WINAPI RtlTimeFieldsToTime(PTIME_FIELDS,PLARGE_INTEGER); 2899 5205 NTSYSAPI void WINAPI RtlTimeToElapsedTimeFields(const LARGE_INTEGER *,PTIME_FIELDS); 2900 5206 NTSYSAPI BOOLEAN WINAPI RtlTimeToSecondsSince1970(const LARGE_INTEGER *,LPDWORD); 2901 5207 NTSYSAPI BOOLEAN WINAPI RtlTimeToSecondsSince1980(const LARGE_INTEGER *,LPDWORD); 5208 + NTSYSAPI void WINAPI RtlTimeToTimeFields(const LARGE_INTEGER*,PTIME_FIELDS); 2902 5209 NTSYSAPI BOOLEAN WINAPI RtlTryAcquireSRWLockExclusive(RTL_SRWLOCK *); 2903 5210 NTSYSAPI BOOLEAN WINAPI RtlTryAcquireSRWLockShared(RTL_SRWLOCK *); 2904 5211 NTSYSAPI BOOL WINAPI RtlTryEnterCriticalSection(RTL_CRITICAL_SECTION *); 2905 - #ifdef __REACTOS__ 2906 - ULONGLONG __fastcall RtlUlonglongByteSwap(ULONGLONG); 2907 - #define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x)) 2908 - #else 2909 - NTSYSAPI ULONGLONG __cdecl RtlUlonglongByteSwap(ULONGLONG); 2910 - #endif /* __REACTOS__ */ 5212 + NTSYSAPI NTSTATUS WINAPI RtlUTF8ToUnicodeN(WCHAR*,DWORD,DWORD*,const char*,DWORD); 2911 5213 NTSYSAPI DWORD WINAPI RtlUnicodeStringToAnsiSize(const UNICODE_STRING*); 2912 5214 NTSYSAPI NTSTATUS WINAPI RtlUnicodeStringToAnsiString(PANSI_STRING,PCUNICODE_STRING,BOOLEAN); 2913 5215 NTSYSAPI NTSTATUS WINAPI RtlUnicodeStringToInteger(const UNICODE_STRING *,ULONG,ULONG *); 2914 5216 NTSYSAPI DWORD WINAPI RtlUnicodeStringToOemSize(const UNICODE_STRING*); 2915 5217 NTSYSAPI NTSTATUS WINAPI RtlUnicodeStringToOemString(POEM_STRING,PCUNICODE_STRING,BOOLEAN); 5218 + NTSYSAPI NTSTATUS WINAPI RtlUnicodeToCustomCPN(CPTABLEINFO*,char*,DWORD,DWORD*,const WCHAR*,DWORD); 2916 5219 NTSYSAPI NTSTATUS WINAPI RtlUnicodeToMultiByteN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD); 2917 5220 NTSYSAPI NTSTATUS WINAPI RtlUnicodeToMultiByteSize(PULONG,PCWSTR,ULONG); 2918 5221 NTSYSAPI NTSTATUS WINAPI RtlUnicodeToOemN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD); 5222 + NTSYSAPI NTSTATUS WINAPI RtlUnicodeToUTF8N(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD); 2919 5223 NTSYSAPI ULONG WINAPI RtlUniform(PULONG); 2920 5224 NTSYSAPI BOOLEAN WINAPI RtlUnlockHeap(HANDLE); 2921 - NTSYSAPI void WINAPI RtlUnwind(PVOID,PVOID,PEXCEPTION_RECORD,PVOID); 2922 - #ifdef __x86_64__ 2923 - NTSYSAPI void WINAPI RtlUnwindEx(PVOID,PVOID,PEXCEPTION_RECORD,PVOID,PCONTEXT,PUNWIND_HISTORY_TABLE); 2924 - #elif defined(__ia64__) 2925 - NTSYSAPI void WINAPI RtlUnwind2(FRAME_POINTERS,PVOID,PEXCEPTION_RECORD,PVOID,PCONTEXT); 2926 - NTSYSAPI void WINAPI RtlUnwindEx(FRAME_POINTERS,PVOID,PEXCEPTION_RECORD,PVOID,PCONTEXT,PUNWIND_HISTORY_TABLE); 2927 - #endif 2928 5225 NTSYSAPI WCHAR WINAPI RtlUpcaseUnicodeChar(WCHAR); 2929 - NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeString(UNICODE_STRING*,const UNICODE_STRING *,BOOLEAN); 2930 5226 NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeStringToAnsiString(STRING*,const UNICODE_STRING*,BOOLEAN); 2931 5227 NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeStringToCountedOemString(STRING*,const UNICODE_STRING*,BOOLEAN); 2932 5228 NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeStringToOemString(STRING*,const UNICODE_STRING*,BOOLEAN); 5229 + NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeToCustomCPN(CPTABLEINFO*,char*,DWORD,DWORD*,const WCHAR*,DWORD); 2933 5230 NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeToMultiByteN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD); 2934 5231 NTSYSAPI NTSTATUS WINAPI RtlUpcaseUnicodeToOemN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD); 2935 5232 NTSYSAPI NTSTATUS WINAPI RtlUpdateTimer(HANDLE, HANDLE, DWORD, DWORD); 2936 - NTSYSAPI CHAR WINAPI RtlUpperChar(CHAR); 2937 - NTSYSAPI void WINAPI RtlUpperString(STRING *,const STRING *); 2938 - NTSYSAPI NTSTATUS WINAPI RtlValidSecurityDescriptor(PSECURITY_DESCRIPTOR); 5233 + NTSYSAPI void WINAPI RtlUserThreadStart(PRTL_THREAD_START_ROUTINE,void*); 5234 + NTSYSAPI BOOLEAN WINAPI RtlValidAcl(PACL); 2939 5235 NTSYSAPI BOOLEAN WINAPI RtlValidRelativeSecurityDescriptor(PSECURITY_DESCRIPTOR,ULONG,SECURITY_INFORMATION); 2940 - NTSYSAPI BOOLEAN WINAPI RtlValidAcl(PACL); 5236 + NTSYSAPI BOOLEAN WINAPI RtlValidSecurityDescriptor(PSECURITY_DESCRIPTOR); 2941 5237 NTSYSAPI BOOLEAN WINAPI RtlValidSid(PSID); 2942 5238 NTSYSAPI BOOLEAN WINAPI RtlValidateHeap(HANDLE,ULONG,LPCVOID); 2943 5239 NTSYSAPI NTSTATUS WINAPI RtlVerifyVersionInfo(const RTL_OSVERSIONINFOEXW*,DWORD,DWORDLONG); 5240 + NTSYSAPI NTSTATUS WINAPI RtlWaitOnAddress(const void *,const void *,SIZE_T,const LARGE_INTEGER *); 5241 + NTSYSAPI void WINAPI RtlWakeAddressAll(const void *); 5242 + NTSYSAPI void WINAPI RtlWakeAddressSingle(const void *); 2944 5243 NTSYSAPI void WINAPI RtlWakeAllConditionVariable(RTL_CONDITION_VARIABLE *); 2945 5244 NTSYSAPI void WINAPI RtlWakeConditionVariable(RTL_CONDITION_VARIABLE *); 2946 5245 NTSYSAPI NTSTATUS WINAPI RtlWalkHeap(HANDLE,PVOID); 2947 5246 NTSYSAPI NTSTATUS WINAPI RtlWow64EnableFsRedirection(BOOLEAN); 2948 5247 NTSYSAPI NTSTATUS WINAPI RtlWow64EnableFsRedirectionEx(ULONG,ULONG*); 5248 + NTSYSAPI USHORT WINAPI RtlWow64GetCurrentMachine(void); 5249 + NTSYSAPI NTSTATUS WINAPI RtlWow64GetProcessMachines(HANDLE,USHORT*,USHORT*); 5250 + NTSYSAPI NTSTATUS WINAPI RtlWow64GetSharedInfoProcess(HANDLE,BOOLEAN*,WOW64INFO*); 5251 + NTSYSAPI NTSTATUS WINAPI RtlWow64IsWowGuestMachineSupported(USHORT,BOOLEAN*); 2949 5252 NTSYSAPI NTSTATUS WINAPI RtlWriteRegistryValue(ULONG,PCWSTR,PCWSTR,ULONG,PVOID,ULONG); 2950 5253 NTSYSAPI NTSTATUS WINAPI RtlZombifyActivationContext(HANDLE); 2951 5254 NTSYSAPI NTSTATUS WINAPI RtlpNtCreateKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG,const UNICODE_STRING*,ULONG,PULONG); 2952 5255 NTSYSAPI NTSTATUS WINAPI RtlpNtEnumerateSubKey(HANDLE,UNICODE_STRING *, ULONG); 5256 + NTSYSAPI NTSTATUS WINAPI RtlpNtMakeTemporaryKey(HANDLE); 5257 + NTSYSAPI NTSTATUS WINAPI RtlpNtOpenKey(PHANDLE,ACCESS_MASK,OBJECT_ATTRIBUTES*); 5258 + NTSYSAPI NTSTATUS WINAPI RtlpNtSetValueKey(HANDLE,ULONG,const void*,ULONG); 2953 5259 NTSYSAPI NTSTATUS WINAPI RtlpWaitForCriticalSection(RTL_CRITICAL_SECTION *); 2954 5260 NTSYSAPI NTSTATUS WINAPI RtlpUnWaitCriticalSection(RTL_CRITICAL_SECTION *); 5261 + NTSYSAPI NTSTATUS WINAPI TpAllocCleanupGroup(TP_CLEANUP_GROUP **); 5262 + NTSYSAPI NTSTATUS WINAPI TpAllocIoCompletion(TP_IO **,HANDLE,PTP_IO_CALLBACK,void *,TP_CALLBACK_ENVIRON *); 5263 + NTSYSAPI NTSTATUS WINAPI TpAllocPool(TP_POOL **,PVOID); 5264 + NTSYSAPI NTSTATUS WINAPI TpAllocTimer(TP_TIMER **,PTP_TIMER_CALLBACK,PVOID,TP_CALLBACK_ENVIRON *); 5265 + NTSYSAPI NTSTATUS WINAPI TpAllocWait(TP_WAIT **,PTP_WAIT_CALLBACK,PVOID,TP_CALLBACK_ENVIRON *); 5266 + NTSYSAPI NTSTATUS WINAPI TpAllocWork(TP_WORK **,PTP_WORK_CALLBACK,PVOID,TP_CALLBACK_ENVIRON *); 5267 + NTSYSAPI void WINAPI TpCallbackLeaveCriticalSectionOnCompletion(TP_CALLBACK_INSTANCE *,RTL_CRITICAL_SECTION *); 5268 + NTSYSAPI NTSTATUS WINAPI TpCallbackMayRunLong(TP_CALLBACK_INSTANCE *); 5269 + NTSYSAPI void WINAPI TpCallbackReleaseMutexOnCompletion(TP_CALLBACK_INSTANCE *,HANDLE); 5270 + NTSYSAPI void WINAPI TpCallbackReleaseSemaphoreOnCompletion(TP_CALLBACK_INSTANCE *,HANDLE,DWORD); 5271 + NTSYSAPI void WINAPI TpCallbackSetEventOnCompletion(TP_CALLBACK_INSTANCE *,HANDLE); 5272 + NTSYSAPI void WINAPI TpCallbackUnloadDllOnCompletion(TP_CALLBACK_INSTANCE *,HMODULE); 5273 + NTSYSAPI void WINAPI TpCancelAsyncIoOperation(TP_IO *); 5274 + NTSYSAPI void WINAPI TpDisassociateCallback(TP_CALLBACK_INSTANCE *); 5275 + NTSYSAPI BOOL WINAPI TpIsTimerSet(TP_TIMER *); 5276 + NTSYSAPI void WINAPI TpPostWork(TP_WORK *); 5277 + NTSYSAPI NTSTATUS WINAPI TpQueryPoolStackInformation(TP_POOL *, TP_POOL_STACK_INFORMATION *stack_info); 5278 + NTSYSAPI void WINAPI TpReleaseCleanupGroup(TP_CLEANUP_GROUP *); 5279 + NTSYSAPI void WINAPI TpReleaseCleanupGroupMembers(TP_CLEANUP_GROUP *,BOOL,PVOID); 5280 + NTSYSAPI void WINAPI TpReleaseIoCompletion(TP_IO *); 5281 + NTSYSAPI void WINAPI TpReleasePool(TP_POOL *); 5282 + NTSYSAPI void WINAPI TpReleaseTimer(TP_TIMER *); 5283 + NTSYSAPI void WINAPI TpReleaseWait(TP_WAIT *); 5284 + NTSYSAPI void WINAPI TpReleaseWork(TP_WORK *); 5285 + NTSYSAPI void WINAPI TpSetPoolMaxThreads(TP_POOL *,DWORD); 5286 + NTSYSAPI BOOL WINAPI TpSetPoolMinThreads(TP_POOL *,DWORD); 5287 + NTSYSAPI NTSTATUS WINAPI TpSetPoolStackInformation(TP_POOL *, TP_POOL_STACK_INFORMATION *stack_info); 5288 + NTSYSAPI void WINAPI TpSetTimer(TP_TIMER *, LARGE_INTEGER *,LONG,LONG); 5289 + NTSYSAPI void WINAPI TpSetWait(TP_WAIT *,HANDLE,LARGE_INTEGER *); 5290 + NTSYSAPI NTSTATUS WINAPI TpSimpleTryPost(PTP_SIMPLE_CALLBACK,PVOID,TP_CALLBACK_ENVIRON *); 5291 + NTSYSAPI void WINAPI TpStartAsyncIoOperation(TP_IO *); 5292 + NTSYSAPI void WINAPI TpWaitForIoCompletion(TP_IO *,BOOL); 5293 + NTSYSAPI void WINAPI TpWaitForTimer(TP_TIMER *,BOOL); 5294 + NTSYSAPI void WINAPI TpWaitForWait(TP_WAIT *,BOOL); 5295 + NTSYSAPI void WINAPI TpWaitForWork(TP_WORK *,BOOL); 5296 + #ifdef __ms_va_list 2955 5297 NTSYSAPI NTSTATUS WINAPI vDbgPrintEx(ULONG,ULONG,LPCSTR,__ms_va_list); 2956 5298 NTSYSAPI NTSTATUS WINAPI vDbgPrintExWithPrefix(LPCSTR,ULONG,ULONG,LPCSTR,__ms_va_list); 5299 + #endif 2957 5300 2958 - /* 32-bit only functions */ 5301 + /* 32-bit or 64-bit only functions */ 2959 5302 2960 - #ifndef _WIN64 5303 + #ifdef _WIN64 5304 + NTSYSAPI void WINAPI RtlOpenCrossProcessEmulatorWorkConnection(HANDLE,HANDLE*,void**); 5305 + NTSYSAPI NTSTATUS WINAPI RtlWow64GetCpuAreaInfo(WOW64_CPURESERVED*,ULONG,WOW64_CPU_AREA_INFO*); 5306 + NTSYSAPI NTSTATUS WINAPI RtlWow64GetCurrentCpuArea(USHORT*,void**,void**); 5307 + NTSYSAPI NTSTATUS WINAPI RtlWow64GetThreadContext(HANDLE,WOW64_CONTEXT*); 5308 + NTSYSAPI NTSTATUS WINAPI RtlWow64GetThreadSelectorEntry(HANDLE,THREAD_DESCRIPTOR_INFORMATION*,ULONG,ULONG*); 5309 + NTSYSAPI CROSS_PROCESS_WORK_ENTRY * WINAPI RtlWow64PopAllCrossProcessWorkFromWorkList(CROSS_PROCESS_WORK_HDR*,BOOLEAN*); 5310 + NTSYSAPI CROSS_PROCESS_WORK_ENTRY * WINAPI RtlWow64PopCrossProcessWorkFromFreeList(CROSS_PROCESS_WORK_HDR*); 5311 + NTSYSAPI BOOLEAN WINAPI RtlWow64PushCrossProcessWorkOntoFreeList(CROSS_PROCESS_WORK_HDR*,CROSS_PROCESS_WORK_ENTRY*); 5312 + NTSYSAPI BOOLEAN WINAPI RtlWow64PushCrossProcessWorkOntoWorkList(CROSS_PROCESS_WORK_HDR*,CROSS_PROCESS_WORK_ENTRY*,void**); 5313 + NTSYSAPI BOOLEAN WINAPI RtlWow64RequestCrossProcessHeavyFlush(CROSS_PROCESS_WORK_HDR*); 5314 + NTSYSAPI NTSTATUS WINAPI RtlWow64SetThreadContext(HANDLE,const WOW64_CONTEXT*); 5315 + #else 5316 + NTSYSAPI NTSTATUS WINAPI NtWow64AllocateVirtualMemory64(HANDLE,ULONG64*,ULONG64,ULONG64*,ULONG,ULONG); 5317 + NTSYSAPI NTSTATUS WINAPI NtWow64GetNativeSystemInformation(SYSTEM_INFORMATION_CLASS,void*,ULONG,ULONG*); 5318 + NTSYSAPI NTSTATUS WINAPI NtWow64IsProcessorFeaturePresent(UINT); 5319 + NTSYSAPI NTSTATUS WINAPI NtWow64QueryInformationProcess64(HANDLE,PROCESSINFOCLASS,void*,ULONG,ULONG*); 5320 + NTSYSAPI NTSTATUS WINAPI NtWow64ReadVirtualMemory64(HANDLE,ULONG64,void*,ULONG64,ULONG64*); 5321 + NTSYSAPI NTSTATUS WINAPI NtWow64WriteVirtualMemory64(HANDLE,ULONG64,const void*,ULONG64,ULONG64*); 2961 5322 NTSYSAPI LONGLONG WINAPI RtlConvertLongToLargeInteger(LONG); 2962 5323 NTSYSAPI ULONGLONG WINAPI RtlConvertUlongToLargeInteger(ULONG); 2963 5324 NTSYSAPI LONGLONG WINAPI RtlEnlargedIntegerMultiply(INT,INT); ··· 2966 5327 NTSYSAPI LONGLONG WINAPI RtlExtendedMagicDivide(LONGLONG,LONGLONG,INT); 2967 5328 NTSYSAPI LONGLONG WINAPI RtlExtendedIntegerMultiply(LONGLONG,INT); 2968 5329 NTSYSAPI LONGLONG WINAPI RtlExtendedLargeIntegerDivide(LONGLONG,INT,INT *); 5330 + NTSYSAPI LONGLONG WINAPI RtlInterlockedCompareExchange64(LONGLONG*,LONGLONG,LONGLONG); 2969 5331 NTSYSAPI LONGLONG WINAPI RtlLargeIntegerAdd(LONGLONG,LONGLONG); 2970 5332 NTSYSAPI LONGLONG WINAPI RtlLargeIntegerArithmeticShift(LONGLONG,INT); 2971 - NTSYSAPI ULONGLONG WINAPI RtlLargeIntegerDivide( ULONGLONG,ULONGLONG,ULONGLONG *); 2972 5333 NTSYSAPI LONGLONG WINAPI RtlLargeIntegerNegate(LONGLONG); 2973 5334 NTSYSAPI LONGLONG WINAPI RtlLargeIntegerShiftLeft(LONGLONG,INT); 2974 5335 NTSYSAPI LONGLONG WINAPI RtlLargeIntegerShiftRight(LONGLONG,INT); ··· 2978 5339 2979 5340 /* Wine internal functions */ 2980 5341 2981 - NTSYSAPI NTSTATUS CDECL wine_nt_to_unix_file_name( const UNICODE_STRING *nameW, ANSI_STRING *unix_name_ret, 2982 - UINT disposition, BOOLEAN check_case ); 2983 - NTSYSAPI NTSTATUS CDECL wine_unix_to_nt_file_name( const ANSI_STRING *name, UNICODE_STRING *nt ); 2984 - 2985 - NTSYSAPI SIZE_T CDECL wine_uninterrupted_read_memory( const void *addr, void *buffer, SIZE_T size ); 2986 - NTSYSAPI SIZE_T CDECL wine_uninterrupted_write_memory( void *addr, const void *buffer, SIZE_T size ); 5342 + NTSYSAPI NTSTATUS WINAPI wine_nt_to_unix_file_name( const OBJECT_ATTRIBUTES *attr, char *nameA, ULONG *size, 5343 + UINT disposition ); 5344 + NTSYSAPI NTSTATUS WINAPI wine_unix_to_nt_file_name( const char *name, WCHAR *buffer, ULONG *size ); 2987 5345 2988 5346 2989 5347 /*********************************************************************** ··· 3000 5358 (p)->SecurityQualityOfService = NULL; \ 3001 5359 } while (0) 3002 5360 3003 - #define NtCurrentProcess() ((HANDLE)-1) 5361 + #define NtCurrentProcess() ((HANDLE)~(ULONG_PTR)0) 5362 + #define NtCurrentThread() ((HANDLE)~(ULONG_PTR)1) 3004 5363 3005 - #ifndef RtlFillMemory // REACTOS 5364 + #if !defined(__REACTOS__) || !defined(RtlFillMemory) 3006 5365 #define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length)) 3007 - #endif // REACTOS 3008 - #ifndef RtlMoveMemory // REACTOS 5366 + #endif // !defined(__REACTOS__) || !defined(RtlFillMemory) 5367 + #if !defined(__REACTOS__) || !defined(RtlMoveMemory) 3009 5368 #define RtlMoveMemory(Destination,Source,Length) memmove((Destination),(Source),(Length)) 3010 - #endif // REACTOS 5369 + #endif // !defined(__REACTOS__) || !defined(RtlMoveMemory) 3011 5370 #define RtlStoreUlong(p,v) do { ULONG _v = (v); memcpy((p), &_v, sizeof(_v)); } while (0) 3012 5371 #define RtlStoreUlonglong(p,v) do { ULONGLONG _v = (v); memcpy((p), &_v, sizeof(_v)); } while (0) 3013 5372 #define RtlRetrieveUlong(p,s) memcpy((p), (s), sizeof(ULONG)) 3014 5373 #define RtlRetrieveUlonglong(p,s) memcpy((p), (s), sizeof(ULONGLONG)) 3015 - #ifndef RtlZeroMemory // REACTOS 5374 + #if !defined(__REACTOS__) || !defined(RtlZeroMemory) 3016 5375 #define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length)) 3017 - #endif // REACTOS 5376 + #endif // !defined(__REACTOS__) || !defined(RtlZeroMemory) 3018 5377 3019 5378 static inline BOOLEAN RtlCheckBit(PCRTL_BITMAP lpBits, ULONG ulBit) 3020 5379 { ··· 3024 5383 return FALSE; 3025 5384 } 3026 5385 3027 - /* These are implemented as __fastcall, so we can't let Winelib apps link with them */ 5386 + /* These are implemented as __fastcall, so we can't let Winelib apps link with them. 5387 + * Moreover, they're always inlined and not exported on 64bit systems. 5388 + */ 3028 5389 static inline USHORT RtlUshortByteSwap(USHORT s) 3029 5390 { 3030 5391 return (s >> 8) | (s << 8); 3031 5392 } 3032 5393 static inline ULONG RtlUlongByteSwap(ULONG i) 3033 5394 { 3034 - #if defined(__i386__) && defined(__GNUC__) 3035 - ULONG ret; 3036 - __asm__("bswap %0" : "=r" (ret) : "0" (i) ); 3037 - return ret; 3038 - #else 3039 5395 return ((ULONG)RtlUshortByteSwap((USHORT)i) << 16) | RtlUshortByteSwap((USHORT)(i >> 16)); 3040 - #endif 5396 + } 5397 + static inline ULONGLONG RtlUlonglongByteSwap(ULONGLONG i) 5398 + { 5399 + return ((ULONGLONG)RtlUlongByteSwap((ULONG)i) << 32) | RtlUlongByteSwap((ULONG)(i >> 32)); 3041 5400 } 3042 5401 3043 5402 /* list manipulation macros */ ··· 3076 5435 3077 5436 #ifdef __WINESRC__ 3078 5437 3079 - /* FIXME: private structure for vm86 mode, stored in teb->GdiTebBatch */ 3080 - typedef struct 3081 - { 3082 - DWORD dpmi_vif; 3083 - DWORD vm86_pending; 3084 - } WINE_VM86_TEB_INFO; 5438 + /* Wine internal functions */ 3085 5439 3086 - static inline WINE_VM86_TEB_INFO *get_vm86_teb_info(void) 3087 - { 3088 - return (WINE_VM86_TEB_INFO *)&NtCurrentTeb()->GdiTebBatch; 3089 - } 5440 + NTSYSAPI NTSTATUS WINAPI __wine_unix_spawnvp( char * const argv[], int wait ); 3090 5441 3091 5442 /* The thread information for 16-bit threads */ 3092 5443 /* NtCurrentTeb()->SubSystemTib points to this */
+1
sdk/include/xdk/ketypes.h
··· 964 964 ULONG Cr0NpxState; 965 965 #endif 966 966 } XSAVE_FORMAT, *PXSAVE_FORMAT; 967 + typedef XSAVE_FORMAT XMM_SAVE_AREA32, *PXMM_SAVE_AREA32; 967 968 968 969 typedef struct DECLSPEC_ALIGN(8) _XSAVE_AREA_HEADER { 969 970 ULONG64 Mask;
+222 -64
sdk/include/xdk/winnt_old.h
··· 83 83 #else 84 84 # define __WINE_ALLOC_SIZE(...) 85 85 #endif 86 + #define __WINE_DEALLOC(...) 87 + #define __WINE_MALLOC 86 88 /*#endif*/ 87 89 88 90 #ifdef __GNUC__ ··· 349 351 350 352 /* also in ddk/winddk.h */ 351 353 #define DUPLICATE_CLOSE_SOURCE 0x00000001 352 - #define DUPLICATE_SAME_ACCESS 0x00000002 354 + #define DUPLICATE_SAME_ACCESS 0x00000002 353 355 /* end winddk.k */ 354 356 355 357 #define MAILSLOT_NO_MESSAGE ((DWORD)-1) ··· 484 486 #define PROCESSOR_ARCHITECTURE_ALPHA64 7 485 487 #define PROCESSOR_ARCHITECTURE_MSIL 8 486 488 #define PROCESSOR_ARCHITECTURE_AMD64 9 489 + #define PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 10 490 + #define PROCESSOR_ARCHITECTURE_NEUTRAL 11 491 + #define PROCESSOR_ARCHITECTURE_ARM64 12 492 + #define PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64 13 493 + #define PROCESSOR_ARCHITECTURE_IA32_ON_ARM64 14 487 494 #define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF 488 495 489 496 /* also in ddk/ntifs.h */ ··· 565 572 #define MEM_PHYSICAL 0x400000 566 573 #define MEM_4MB_PAGES 0x80000000 567 574 #define MEM_IMAGE SEC_IMAGE 575 + #define MEM_EXTENDED_PARAMETER_GRAPHICS 0x00000001 576 + #define MEM_EXTENDED_PARAMETER_NONPAGED 0x00000002 577 + #define MEM_EXTENDED_PARAMETER_ZERO_PAGES_OPTIONAL 0x00000004 578 + #define MEM_EXTENDED_PARAMETER_NONPAGED_LARGE 0x00000008 579 + #define MEM_EXTENDED_PARAMETER_NONPAGED_HUGE 0x00000010 580 + #define MEM_EXTENDED_PARAMETER_SOFT_FAULT_PAGES 0x00000020 581 + #define MEM_EXTENDED_PARAMETER_EC_CODE 0x00000040 582 + #define MEM_EXTENDED_PARAMETER_NUMA_NODE_MANDATORY MINLONG64 568 583 #define SEC_NO_CHANGE 0x00400000 569 584 #define SEC_FILE 0x00800000 570 585 #define SEC_IMAGE 0x01000000 ··· 1074 1089 #define WT_TRANSFER_IMPERSONATION 0x00000100 1075 1090 #define WT_SET_MAX_THREADPOOL_THREADS(flags,limit) ((flags)|=(limit)<<16) 1076 1091 typedef VOID (NTAPI *WORKERCALLBACKFUNC)(PVOID); 1092 + typedef VOID (NTAPI *PFLS_CALLBACK_FUNCTION)(PVOID); 1077 1093 #if (_WIN32_WINNT >= 0x0501) 1078 1094 #define ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION 1 1079 1095 #define ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION 2 ··· 1082 1098 #define ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION 5 1083 1099 #define ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION 6 1084 1100 #define ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION 7 1101 + #define ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE 8 1085 1102 #define ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES 9 1086 1103 #define ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS 10 1087 1104 #define ACTIVATION_CONTEXT_SECTION_COMPATIBILITY_INFO 11 1105 + #define ACTIVATION_CONTEXT_SECTION_WINRT_ACTIVATABLE_CLASSES 12 1088 1106 #endif /* (_WIN32_WINNT >= 0x0501) */ 1089 1107 #define BTYPE(x) ((x)&N_BTMASK) 1090 1108 #define ISPTR(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT)) ··· 1184 1202 1185 1203 #endif /* _LDT_ENTRY_DEFINED */ 1186 1204 1205 + #define ARM64_MAX_BREAKPOINTS 8 1206 + #define ARM64_MAX_WATCHPOINTS 2 1207 + 1208 + typedef enum MEM_EXTENDED_PARAMETER_TYPE 1209 + { 1210 + MemExtendedParameterInvalidType, 1211 + MemExtendedParameterAddressRequirements, 1212 + MemExtendedParameterNumaNode, 1213 + MemExtendedParameterPartitionHandle, 1214 + MemExtendedParameterUserPhysicalHandle, 1215 + MemExtendedParameterAttributeFlags, 1216 + MemExtendedParameterImageMachine, 1217 + MemExtendedParameterMax 1218 + } MEM_EXTENDED_PARAMETER_TYPE, *PMEM_EXTENDED_PARAMETER_TYPE; 1219 + 1220 + #define MEM_EXTENDED_PARAMETER_TYPE_BITS 8 1221 + 1222 + typedef struct DECLSPEC_ALIGN(8) MEM_EXTENDED_PARAMETER { 1223 + struct 1224 + { 1225 + DWORD64 Type : MEM_EXTENDED_PARAMETER_TYPE_BITS; 1226 + DWORD64 Reserved : 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS; 1227 + } DUMMYSTRUCTNAME; 1228 + 1229 + union 1230 + { 1231 + DWORD64 ULong64; 1232 + PVOID Pointer; 1233 + SIZE_T Size; 1234 + HANDLE Handle; 1235 + DWORD ULong; 1236 + } DUMMYUNIONNAME; 1237 + } MEM_EXTENDED_PARAMETER, *PMEM_EXTENDED_PARAMETER; 1238 + 1239 + typedef struct _SCOPE_TABLE_ARM { 1240 + DWORD Count; 1241 + struct 1242 + { 1243 + DWORD BeginAddress; 1244 + DWORD EndAddress; 1245 + DWORD HandlerAddress; 1246 + DWORD JumpTarget; 1247 + } ScopeRecord[1]; 1248 + } SCOPE_TABLE_ARM, *PSCOPE_TABLE_ARM; 1249 + 1250 + typedef SCOPE_TABLE_ARM SCOPE_TABLE_ARM64, *PSCOPE_TABLE_ARM64; 1251 + 1252 + typedef union _ARM64_NT_NEON128 1253 + { 1254 + struct 1255 + { 1256 + ULONGLONG Low; 1257 + LONGLONG High; 1258 + } DUMMYSTRUCTNAME; 1259 + double D[2]; 1260 + float S[4]; 1261 + WORD H[8]; 1262 + BYTE B[16]; 1263 + } ARM64_NT_NEON128, *PARM64_NT_NEON128; 1264 + 1265 + typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY { 1266 + DWORD BeginAddress; 1267 + union { 1268 + DWORD UnwindData; 1269 + struct { 1270 + DWORD Flag : 2; 1271 + DWORD FunctionLength : 11; 1272 + DWORD RegF : 3; 1273 + DWORD RegI : 4; 1274 + DWORD H : 1; 1275 + DWORD CR : 2; 1276 + DWORD FrameSize : 9; 1277 + } DUMMYSTRUCTNAME; 1278 + } DUMMYUNIONNAME; 1279 + } IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, * PIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY; 1280 + 1187 1281 /* FIXME: add more machines */ 1188 1282 #if defined(_X86_) 1189 1283 #define SIZE_OF_80387_REGISTERS 80 ··· 1270 1364 #define EXCEPTION_WRITE_FAULT 1 1271 1365 #define EXCEPTION_EXECUTE_FAULT 8 1272 1366 1273 - typedef struct _XMM_SAVE_AREA32 { 1274 - WORD ControlWord; 1275 - WORD StatusWord; 1276 - BYTE TagWord; 1277 - BYTE Reserved1; 1278 - WORD ErrorOpcode; 1279 - DWORD ErrorOffset; 1280 - WORD ErrorSelector; 1281 - WORD Reserved2; 1282 - DWORD DataOffset; 1283 - WORD DataSelector; 1284 - WORD Reserved3; 1285 - DWORD MxCsr; 1286 - DWORD MxCsr_Mask; 1287 - M128A FloatRegisters[8]; 1288 - M128A XmmRegisters[16]; 1289 - BYTE Reserved4[96]; 1290 - } XMM_SAVE_AREA32, *PXMM_SAVE_AREA32; 1291 1367 1292 1368 typedef struct DECLSPEC_ALIGN(16) _CONTEXT { 1293 1369 DWORD64 P1Home; ··· 2124 2200 } IMAGE_ARM_RUNTIME_FUNCTION_ENTRY, *PIMAGE_ARM_RUNTIME_FUNCTION_ENTRY; 2125 2201 typedef IMAGE_ARM_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION; 2126 2202 2127 - typedef struct _SCOPE_TABLE_ARM 2128 - { 2129 - DWORD Count; 2130 - struct 2131 - { 2132 - DWORD BeginAddress; 2133 - DWORD EndAddress; 2134 - DWORD HandlerAddress; 2135 - DWORD JumpTarget; 2136 - } ScopeRecord[1]; 2137 - } SCOPE_TABLE_ARM, *PSCOPE_TABLE_ARM; 2138 2203 typedef SCOPE_TABLE_ARM SCOPE_TABLE, *PSCOPE_TABLE; 2139 2204 2140 2205 typedef struct _DISPATCHER_CONTEXT ··· 2256 2321 } _CONTEXT, *P_CONTEXT; 2257 2322 typedef _CONTEXT CONTEXT, *PCONTEXT; 2258 2323 2259 - typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY { 2260 - DWORD BeginAddress; 2261 - union { 2262 - DWORD UnwindData; 2263 - struct { 2264 - DWORD Flag : 2; 2265 - DWORD FunctionLength : 11; 2266 - DWORD RegF : 3; 2267 - DWORD RegI : 4; 2268 - DWORD H : 1; 2269 - DWORD CR : 2; 2270 - DWORD FrameSize : 9; 2271 - } DUMMYSTRUCTNAME; 2272 - } DUMMYUNIONNAME; 2273 - } IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, * PIMAGE_ARM64_RUNTIME_FUNCTION_ENTRY; 2274 2324 typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION; 2275 - 2276 - typedef struct _SCOPE_TABLE_ARM64 { 2277 - DWORD Count; 2278 - struct 2279 - { 2280 - DWORD BeginAddress; 2281 - DWORD EndAddress; 2282 - DWORD HandlerAddress; 2283 - DWORD JumpTarget; 2284 - } ScopeRecord[1]; 2285 - } SCOPE_TABLE_ARM64, *PSCOPE_TABLE_ARM64; 2286 2325 typedef SCOPE_TABLE_ARM64 SCOPE_TABLE, *PSCOPE_TABLE; 2287 2326 2288 2327 typedef struct _DISPATCHER_CONTEXT { ··· 2304 2343 #endif 2305 2344 typedef CONTEXT *PCONTEXT; 2306 2345 2346 + typedef struct DECLSPEC_ALIGN(16) _ARM64EC_NT_CONTEXT 2347 + { 2348 + union 2349 + { 2350 + struct 2351 + { 2352 + DWORD64 AMD64_P1Home; /* 000 */ 2353 + DWORD64 AMD64_P2Home; /* 008 */ 2354 + DWORD64 AMD64_P3Home; /* 010 */ 2355 + DWORD64 AMD64_P4Home; /* 018 */ 2356 + DWORD64 AMD64_P5Home; /* 020 */ 2357 + DWORD64 AMD64_P6Home; /* 028 */ 2358 + DWORD ContextFlags; /* 030 */ 2359 + DWORD AMD64_MxCsr_copy; /* 034 */ 2360 + WORD AMD64_SegCs; /* 038 */ 2361 + WORD AMD64_SegDs; /* 03a */ 2362 + WORD AMD64_SegEs; /* 03c */ 2363 + WORD AMD64_SegFs; /* 03e */ 2364 + WORD AMD64_SegGs; /* 040 */ 2365 + WORD AMD64_SegSs; /* 042 */ 2366 + DWORD AMD64_EFlags; /* 044 */ 2367 + DWORD64 AMD64_Dr0; /* 048 */ 2368 + DWORD64 AMD64_Dr1; /* 050 */ 2369 + DWORD64 AMD64_Dr2; /* 058 */ 2370 + DWORD64 AMD64_Dr3; /* 060 */ 2371 + DWORD64 AMD64_Dr6; /* 068 */ 2372 + DWORD64 AMD64_Dr7; /* 070 */ 2373 + DWORD64 X8; /* 078 (Rax) */ 2374 + DWORD64 X0; /* 080 (Rcx) */ 2375 + DWORD64 X1; /* 088 (Rdx) */ 2376 + DWORD64 X27; /* 090 (Rbx) */ 2377 + DWORD64 Sp; /* 098 (Rsp) */ 2378 + DWORD64 Fp; /* 0a0 (Rbp) */ 2379 + DWORD64 X25; /* 0a8 (Rsi) */ 2380 + DWORD64 X26; /* 0b0 (Rdi) */ 2381 + DWORD64 X2; /* 0b8 (R8) */ 2382 + DWORD64 X3; /* 0c0 (R9) */ 2383 + DWORD64 X4; /* 0c8 (R10) */ 2384 + DWORD64 X5; /* 0d0 (R11) */ 2385 + DWORD64 X19; /* 0d8 (R12) */ 2386 + DWORD64 X20; /* 0e0 (R13) */ 2387 + DWORD64 X21; /* 0e8 (R14) */ 2388 + DWORD64 X22; /* 0f0 (R15) */ 2389 + DWORD64 Pc; /* 0f8 (Rip) */ 2390 + struct 2391 + { 2392 + WORD AMD64_ControlWord; /* 100 */ 2393 + WORD AMD64_StatusWord; /* 102 */ 2394 + BYTE AMD64_TagWord; /* 104 */ 2395 + BYTE AMD64_Reserved1; /* 105 */ 2396 + WORD AMD64_ErrorOpcode; /* 106 */ 2397 + DWORD AMD64_ErrorOffset; /* 108 */ 2398 + WORD AMD64_ErrorSelector; /* 10c */ 2399 + WORD AMD64_Reserved2; /* 10e */ 2400 + DWORD AMD64_DataOffset; /* 110 */ 2401 + WORD AMD64_DataSelector; /* 114 */ 2402 + WORD AMD64_Reserved3; /* 116 */ 2403 + DWORD AMD64_MxCsr; /* 118 */ 2404 + DWORD AMD64_MxCsr_Mask; /* 11c */ 2405 + DWORD64 Lr; /* 120 (FloatRegisters[0]) */ 2406 + WORD X16_0; /* 128 */ 2407 + WORD AMD64_St0_Reserved1; /* 12a */ 2408 + DWORD AMD64_St0_Reserved2; /* 12c */ 2409 + DWORD64 X6; /* 130 (FloatRegisters[1]) */ 2410 + WORD X16_1; /* 138 */ 2411 + WORD AMD64_St1_Reserved1; /* 13a */ 2412 + DWORD AMD64_St1_Reserved2; /* 13c */ 2413 + DWORD64 X7; /* 140 (FloatRegisters[2]) */ 2414 + WORD X16_2; /* 148 */ 2415 + WORD AMD64_St2_Reserved1; /* 14a */ 2416 + DWORD AMD64_St2_Reserved2; /* 14c */ 2417 + DWORD64 X9; /* 150 (FloatRegisters[3]) */ 2418 + WORD X16_3; /* 158 */ 2419 + WORD AMD64_St3_Reserved1; /* 15a */ 2420 + DWORD AMD64_St3_Reserved2; /* 15c */ 2421 + DWORD64 X10; /* 160 (FloatRegisters[4]) */ 2422 + WORD X17_0; /* 168 */ 2423 + WORD AMD64_St4_Reserved1; /* 16a */ 2424 + DWORD AMD64_St4_Reserved2; /* 16c */ 2425 + DWORD64 X11; /* 170 (FloatRegisters[5]) */ 2426 + WORD X17_1; /* 178 */ 2427 + WORD AMD64_St5_Reserved1; /* 17a */ 2428 + DWORD AMD64_St5_Reserved2; /* 17c */ 2429 + DWORD64 X12; /* 180 (FloatRegisters[6]) */ 2430 + WORD X17_2; /* 188 */ 2431 + WORD AMD64_St6_Reserved1; /* 18a */ 2432 + DWORD AMD64_St6_Reserved2; /* 18c */ 2433 + DWORD64 X15; /* 190 (FloatRegisters[7]) */ 2434 + WORD X17_3; /* 198 */ 2435 + WORD AMD64_St7_Reserved1; /* 19a */ 2436 + DWORD AMD64_St7_Reserved2; /* 19c */ 2437 + ARM64_NT_NEON128 V[16]; /* 1a0 (XmmRegisters) */ 2438 + BYTE AMD64_XSAVE_FORMAT_Reserved4[96]; /* 2a0 */ 2439 + } DUMMYSTRUCTNAME; 2440 + ARM64_NT_NEON128 AMD64_VectorRegister[26]; /* 300 */ 2441 + DWORD64 AMD64_VectorControl; /* 4a0 */ 2442 + DWORD64 AMD64_DebugControl; /* 4a8 */ 2443 + DWORD64 AMD64_LastBranchToRip; /* 4b0 */ 2444 + DWORD64 AMD64_LastBranchFromRip; /* 4b8 */ 2445 + DWORD64 AMD64_LastExceptionToRip; /* 4c0 */ 2446 + DWORD64 AMD64_LastExceptionFromRip; /* 4c8 */ 2447 + } DUMMYSTRUCTNAME; 2448 + #ifdef _ARM64EC_ 2449 + CONTEXT AMD64_Context; 2450 + #endif 2451 + } DUMMYUNIONNAME; 2452 + } ARM64EC_NT_CONTEXT, *PARM64EC_NT_CONTEXT; 2453 + 2307 2454 /* The WoW64 context */ 2308 2455 #define WOW64_CONTEXT_i386 0x00010000 2309 2456 #define WOW64_CONTEXT_i486 0x00010000 ··· 2374 2521 2375 2522 2376 2523 #define EXCEPTION_MAXIMUM_PARAMETERS 15 2377 - #define EXCEPTION_NONCONTINUABLE 0x01 2378 - #define EXCEPTION_UNWINDING 0x02 2379 - #define EXCEPTION_EXIT_UNWIND 0x04 2380 - #define EXCEPTION_STACK_INVALID 0x08 2381 - #define EXCEPTION_NESTED_CALL 0x10 2382 - #define EXCEPTION_TARGET_UNWIND 0x20 2383 - #define EXCEPTION_COLLIDED_UNWIND 0x40 2524 + #define EXCEPTION_NONCONTINUABLE 0x01 2525 + #define EXCEPTION_UNWINDING 0x02 2526 + #define EXCEPTION_EXIT_UNWIND 0x04 2527 + #define EXCEPTION_STACK_INVALID 0x08 2528 + #define EXCEPTION_NESTED_CALL 0x10 2529 + #define EXCEPTION_TARGET_UNWIND 0x20 2530 + #define EXCEPTION_COLLIDED_UNWIND 0x40 2531 + #define EXCEPTION_SOFTWARE_ORIGINATE 0x80 2384 2532 #define EXCEPTION_UNWIND (EXCEPTION_UNWINDING | EXCEPTION_EXIT_UNWIND | \ 2385 2533 EXCEPTION_TARGET_UNWIND | EXCEPTION_COLLIDED_UNWIND) 2386 2534 ··· 4209 4357 4210 4358 typedef enum { 4211 4359 ACTCTX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN = 0, 4212 - ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS 4360 + ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS, 4361 + ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MITIGATION, 4362 + ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MAXVERSIONTESTED 4213 4363 } ACTCTX_COMPATIBILITY_ELEMENT_TYPE; 4214 4364 4215 4365 typedef struct _COMPATIBILITY_CONTEXT_ELEMENT { 4216 4366 GUID Id; 4217 4367 ACTCTX_COMPATIBILITY_ELEMENT_TYPE Type; 4368 + #if (NTDDI_VERSION >= NTDDI_WIN10_19H1) 4369 + ULONGLONG MaxVersionTested; 4370 + #endif 4218 4371 } COMPATIBILITY_CONTEXT_ELEMENT, *PCOMPATIBILITY_CONTEXT_ELEMENT; 4219 4372 4220 4373 typedef struct _ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION { ··· 4484 4637 #else 4485 4638 #error Unknown architecture 4486 4639 #endif 4640 + 4641 + typedef enum _CPU_SET_INFORMATION_TYPE 4642 + { 4643 + CpuSetInformation, 4644 + } CPU_SET_INFORMATION_TYPE, *PCPU_SET_INFORMATION_TYPE; 4487 4645 4488 4646 typedef struct _TP_POOL TP_POOL, *PTP_POOL; 4489 4647 typedef struct _TP_WORK TP_WORK, *PTP_WORK;