summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authormoonshadow5652023-12-23 22:37:02 +0100
committermoonshadow5652023-12-23 22:47:17 +0100
commitbbef7dd7e6aef5caa7fc5ada1fcf7f6e30e6d12c (patch)
treed35be1b6e2e8fe1f0c8837ec5cb75a79eab6edf3
parentfc6b924fd8b9e4be749a4c754fd99444bfb628ba (diff)
downloadaur-bbef7dd7e6aef5caa7fc5ada1fcf7f6e30e6d12c.tar.gz
Add patch for missing syscall
-rw-r--r--.SRCINFO4
-rw-r--r--0012-ntdll-implement-ntcontinueex.patch998
-rw-r--r--PKGBUILD8
3 files changed, 1008 insertions, 2 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 553ffd2db429..8eea1aea3ccc 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = wine-lol-staging
pkgdesc = A compatibility layer for running Windows programs (staging branch) with LoL patches
pkgver = 8.21
- pkgrel = 1
+ pkgrel = 2
url = https://wiki.winehq.org/Wine-Staging
arch = x86_64
license = LGPL
@@ -118,6 +118,7 @@ pkgbase = wine-lol-staging
source = 0008-ntdll-nopguard-call_vectored_handlers.patch
source = 0009-kernel32-dont-create-console-when-not-cui.patch
source = 0011-ntdll-signal_set_full_context-amd64.patch
+ source = 0012-ntdll-implement-ntcontinueex.patch
sha256sums = SKIP
sha256sums = SKIP
sha256sums = 7607a84fd357a86bc8fb59d2cf002a3e471bd8ec78ecdb844b0b77b1ae6d11a0
@@ -125,5 +126,6 @@ pkgbase = wine-lol-staging
sha256sums = 2075ddc417ddd11954f76be753c88e04db28f0b3937e60508f178630dd5763eb
sha256sums = b19443ba1e01014ab478b03ac84797df2d481432798259371d94e4ba2e7b317c
sha256sums = 8dfef7fdbeb4bf503f72c2b3a15033849f67197d6d9571135369b4b0183ea213
+ sha256sums = 8bb15743e589f7505817309122e04af8cb99e12459a9b4ef05b14eeef10ccc83
pkgname = wine-lol-staging
diff --git a/0012-ntdll-implement-ntcontinueex.patch b/0012-ntdll-implement-ntcontinueex.patch
new file mode 100644
index 000000000000..23260af142e3
--- /dev/null
+++ b/0012-ntdll-implement-ntcontinueex.patch
@@ -0,0 +1,998 @@
+From 92baac3e4dcec94bb0c75b38640af2ce5c77e3a5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?D=C4=81vis=20Mos=C4=81ns?= <davispuh@gmail.com>
+Date: Tue, 28 Nov 2023 23:59:07 +0200
+Subject: [PATCH] ntdll: Implement NtContinueEx
+
+Co-authored-by: Etaash Mathamsetty <etaash.mathamsetty@gmail.com>
+---
+ dlls/ntdll/ntdll.spec | 2 +
+ dlls/ntdll/ntsyscalls.h | 840 ++++++++++++++++++++-------------------
+ dlls/ntdll/unix/server.c | 19 +
+ dlls/wow64/syscall.c | 14 +-
+ include/winternl.h | 21 +
+ 5 files changed, 475 insertions(+), 421 deletions(-)
+
+diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
+index 1908a089d44..fa4e18f3566 100644
+--- a/dlls/ntdll/ntdll.spec
++++ b/dlls/ntdll/ntdll.spec
+@@ -166,6 +166,7 @@
+ # @ stub NtCompressKey
+ @ stdcall -syscall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr)
+ @ stdcall -syscall NtContinue(ptr long)
++@ stdcall -syscall NtContinueEx(ptr ptr)
+ @ stdcall -syscall NtCreateDebugObject(ptr long ptr long)
+ @ stdcall -syscall NtCreateDirectoryObject(ptr long ptr)
+ @ stdcall -syscall NtCreateEvent(ptr long ptr long long)
+@@ -1216,6 +1217,7 @@
+ # @ stub ZwCompressKey
+ @ stdcall -private -syscall ZwConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) NtConnectPort
+ @ stdcall -private -syscall ZwContinue(ptr long) NtContinue
++@ stdcall -private -syscall ZwContinueEx(ptr ptr) NtContinueEx
+ # @ stub ZwCreateDebugObject
+ @ stdcall -private -syscall ZwCreateDirectoryObject(ptr long ptr) NtCreateDirectoryObject
+ @ stdcall -private -syscall ZwCreateEvent(ptr long ptr long long) NtCreateEvent
+diff --git a/dlls/ntdll/ntsyscalls.h b/dlls/ntdll/ntsyscalls.h
+index 7ae20b31159..92b492ba685 100644
+--- a/dlls/ntdll/ntsyscalls.h
++++ b/dlls/ntdll/ntsyscalls.h
+@@ -28,218 +28,219 @@
+ SYSCALL_ENTRY( 0x0018, NtCompleteConnectPort, 4 ) \
+ SYSCALL_ENTRY( 0x0019, NtConnectPort, 32 ) \
+ SYSCALL_ENTRY( 0x001a, NtContinue, 8 ) \
+- SYSCALL_ENTRY( 0x001b, NtCreateDebugObject, 16 ) \
+- SYSCALL_ENTRY( 0x001c, NtCreateDirectoryObject, 12 ) \
+- SYSCALL_ENTRY( 0x001d, NtCreateEvent, 20 ) \
+- SYSCALL_ENTRY( 0x001e, NtCreateFile, 44 ) \
+- SYSCALL_ENTRY( 0x001f, NtCreateIoCompletion, 16 ) \
+- SYSCALL_ENTRY( 0x0020, NtCreateJobObject, 12 ) \
+- SYSCALL_ENTRY( 0x0021, NtCreateKey, 28 ) \
+- SYSCALL_ENTRY( 0x0022, NtCreateKeyTransacted, 32 ) \
+- SYSCALL_ENTRY( 0x0023, NtCreateKeyedEvent, 16 ) \
+- SYSCALL_ENTRY( 0x0024, NtCreateLowBoxToken, 36 ) \
+- SYSCALL_ENTRY( 0x0025, NtCreateMailslotFile, 32 ) \
+- SYSCALL_ENTRY( 0x0026, NtCreateMutant, 16 ) \
+- SYSCALL_ENTRY( 0x0027, NtCreateNamedPipeFile, 56 ) \
+- SYSCALL_ENTRY( 0x0028, NtCreatePagingFile, 16 ) \
+- SYSCALL_ENTRY( 0x0029, NtCreatePort, 20 ) \
+- SYSCALL_ENTRY( 0x002a, NtCreateSection, 28 ) \
+- SYSCALL_ENTRY( 0x002b, NtCreateSemaphore, 20 ) \
+- SYSCALL_ENTRY( 0x002c, NtCreateSymbolicLinkObject, 16 ) \
+- SYSCALL_ENTRY( 0x002d, NtCreateThread, 32 ) \
+- SYSCALL_ENTRY( 0x002e, NtCreateThreadEx, 44 ) \
+- SYSCALL_ENTRY( 0x002f, NtCreateTimer, 16 ) \
+- SYSCALL_ENTRY( 0x0030, NtCreateToken, 52 ) \
+- SYSCALL_ENTRY( 0x0031, NtCreateTransaction, 40 ) \
+- SYSCALL_ENTRY( 0x0032, NtCreateUserProcess, 44 ) \
+- SYSCALL_ENTRY( 0x0033, NtDebugActiveProcess, 8 ) \
+- SYSCALL_ENTRY( 0x0034, NtDebugContinue, 12 ) \
+- SYSCALL_ENTRY( 0x0035, NtDelayExecution, 8 ) \
+- SYSCALL_ENTRY( 0x0036, NtDeleteAtom, 4 ) \
+- SYSCALL_ENTRY( 0x0037, NtDeleteFile, 4 ) \
+- SYSCALL_ENTRY( 0x0038, NtDeleteKey, 4 ) \
+- SYSCALL_ENTRY( 0x0039, NtDeleteValueKey, 8 ) \
+- SYSCALL_ENTRY( 0x003a, NtDeviceIoControlFile, 40 ) \
+- SYSCALL_ENTRY( 0x003b, NtDisplayString, 4 ) \
+- SYSCALL_ENTRY( 0x003c, NtDuplicateObject, 28 ) \
+- SYSCALL_ENTRY( 0x003d, NtDuplicateToken, 24 ) \
+- SYSCALL_ENTRY( 0x003e, NtEnumerateKey, 24 ) \
+- SYSCALL_ENTRY( 0x003f, NtEnumerateValueKey, 24 ) \
+- SYSCALL_ENTRY( 0x0040, NtFilterToken, 24 ) \
+- SYSCALL_ENTRY( 0x0041, NtFindAtom, 12 ) \
+- SYSCALL_ENTRY( 0x0042, NtFlushBuffersFile, 8 ) \
+- SYSCALL_ENTRY( 0x0043, NtFlushInstructionCache, 12 ) \
+- SYSCALL_ENTRY( 0x0044, NtFlushKey, 4 ) \
+- SYSCALL_ENTRY( 0x0045, NtFlushProcessWriteBuffers, 0 ) \
+- SYSCALL_ENTRY( 0x0046, NtFlushVirtualMemory, 16 ) \
+- SYSCALL_ENTRY( 0x0047, NtFreeVirtualMemory, 16 ) \
+- SYSCALL_ENTRY( 0x0048, NtFsControlFile, 40 ) \
+- SYSCALL_ENTRY( 0x0049, NtGetContextThread, 8 ) \
+- SYSCALL_ENTRY( 0x004a, NtGetCurrentProcessorNumber, 0 ) \
+- SYSCALL_ENTRY( 0x004b, NtGetNextThread, 24 ) \
+- SYSCALL_ENTRY( 0x004c, NtGetNlsSectionPtr, 20 ) \
+- SYSCALL_ENTRY( 0x004d, NtGetWriteWatch, 28 ) \
+- SYSCALL_ENTRY( 0x004e, NtImpersonateAnonymousToken, 4 ) \
+- SYSCALL_ENTRY( 0x004f, NtInitializeNlsFiles, 12 ) \
+- SYSCALL_ENTRY( 0x0050, NtInitiatePowerAction, 16 ) \
+- SYSCALL_ENTRY( 0x0051, NtIsProcessInJob, 8 ) \
+- SYSCALL_ENTRY( 0x0052, NtListenPort, 8 ) \
+- SYSCALL_ENTRY( 0x0053, NtLoadDriver, 4 ) \
+- SYSCALL_ENTRY( 0x0054, NtLoadKey, 8 ) \
+- SYSCALL_ENTRY( 0x0055, NtLoadKey2, 12 ) \
+- SYSCALL_ENTRY( 0x0056, NtLoadKeyEx, 32 ) \
+- SYSCALL_ENTRY( 0x0057, NtLockFile, 40 ) \
+- SYSCALL_ENTRY( 0x0058, NtLockVirtualMemory, 16 ) \
+- SYSCALL_ENTRY( 0x0059, NtMakeTemporaryObject, 4 ) \
+- SYSCALL_ENTRY( 0x005a, NtMapViewOfSection, 40 ) \
+- SYSCALL_ENTRY( 0x005b, NtMapViewOfSectionEx, 36 ) \
+- SYSCALL_ENTRY( 0x005c, NtNotifyChangeDirectoryFile, 36 ) \
+- SYSCALL_ENTRY( 0x005d, NtNotifyChangeKey, 40 ) \
+- SYSCALL_ENTRY( 0x005e, NtNotifyChangeMultipleKeys, 48 ) \
+- SYSCALL_ENTRY( 0x005f, NtOpenDirectoryObject, 12 ) \
+- SYSCALL_ENTRY( 0x0060, NtOpenEvent, 12 ) \
+- SYSCALL_ENTRY( 0x0061, NtOpenFile, 24 ) \
+- SYSCALL_ENTRY( 0x0062, NtOpenIoCompletion, 12 ) \
+- SYSCALL_ENTRY( 0x0063, NtOpenJobObject, 12 ) \
+- SYSCALL_ENTRY( 0x0064, NtOpenKey, 12 ) \
+- SYSCALL_ENTRY( 0x0065, NtOpenKeyEx, 16 ) \
+- SYSCALL_ENTRY( 0x0066, NtOpenKeyTransacted, 16 ) \
+- SYSCALL_ENTRY( 0x0067, NtOpenKeyTransactedEx, 20 ) \
+- SYSCALL_ENTRY( 0x0068, NtOpenKeyedEvent, 12 ) \
+- SYSCALL_ENTRY( 0x0069, NtOpenMutant, 12 ) \
+- SYSCALL_ENTRY( 0x006a, NtOpenProcess, 16 ) \
+- SYSCALL_ENTRY( 0x006b, NtOpenProcessToken, 12 ) \
+- SYSCALL_ENTRY( 0x006c, NtOpenProcessTokenEx, 16 ) \
+- SYSCALL_ENTRY( 0x006d, NtOpenSection, 12 ) \
+- SYSCALL_ENTRY( 0x006e, NtOpenSemaphore, 12 ) \
+- SYSCALL_ENTRY( 0x006f, NtOpenSymbolicLinkObject, 12 ) \
+- SYSCALL_ENTRY( 0x0070, NtOpenThread, 16 ) \
+- SYSCALL_ENTRY( 0x0071, NtOpenThreadToken, 16 ) \
+- SYSCALL_ENTRY( 0x0072, NtOpenThreadTokenEx, 20 ) \
+- SYSCALL_ENTRY( 0x0073, NtOpenTimer, 12 ) \
+- SYSCALL_ENTRY( 0x0074, NtPowerInformation, 20 ) \
+- SYSCALL_ENTRY( 0x0075, NtPrivilegeCheck, 12 ) \
+- SYSCALL_ENTRY( 0x0076, NtProtectVirtualMemory, 20 ) \
+- SYSCALL_ENTRY( 0x0077, NtPulseEvent, 8 ) \
+- SYSCALL_ENTRY( 0x0078, NtQueryAttributesFile, 8 ) \
+- SYSCALL_ENTRY( 0x0079, NtQueryDefaultLocale, 8 ) \
+- SYSCALL_ENTRY( 0x007a, NtQueryDefaultUILanguage, 4 ) \
+- SYSCALL_ENTRY( 0x007b, NtQueryDirectoryFile, 44 ) \
+- SYSCALL_ENTRY( 0x007c, NtQueryDirectoryObject, 28 ) \
+- SYSCALL_ENTRY( 0x007d, NtQueryEaFile, 36 ) \
+- SYSCALL_ENTRY( 0x007e, NtQueryEvent, 20 ) \
+- SYSCALL_ENTRY( 0x007f, NtQueryFullAttributesFile, 8 ) \
+- SYSCALL_ENTRY( 0x0080, NtQueryInformationAtom, 20 ) \
+- SYSCALL_ENTRY( 0x0081, NtQueryInformationFile, 20 ) \
+- SYSCALL_ENTRY( 0x0082, NtQueryInformationJobObject, 20 ) \
+- SYSCALL_ENTRY( 0x0083, NtQueryInformationProcess, 20 ) \
+- SYSCALL_ENTRY( 0x0084, NtQueryInformationThread, 20 ) \
+- SYSCALL_ENTRY( 0x0085, NtQueryInformationToken, 20 ) \
+- SYSCALL_ENTRY( 0x0086, NtQueryInstallUILanguage, 4 ) \
+- SYSCALL_ENTRY( 0x0087, NtQueryIoCompletion, 20 ) \
+- SYSCALL_ENTRY( 0x0088, NtQueryKey, 20 ) \
+- SYSCALL_ENTRY( 0x0089, NtQueryLicenseValue, 20 ) \
+- SYSCALL_ENTRY( 0x008a, NtQueryMultipleValueKey, 24 ) \
+- SYSCALL_ENTRY( 0x008b, NtQueryMutant, 20 ) \
+- SYSCALL_ENTRY( 0x008c, NtQueryObject, 20 ) \
+- SYSCALL_ENTRY( 0x008d, NtQueryPerformanceCounter, 8 ) \
+- SYSCALL_ENTRY( 0x008e, NtQuerySection, 20 ) \
+- SYSCALL_ENTRY( 0x008f, NtQuerySecurityObject, 20 ) \
+- SYSCALL_ENTRY( 0x0090, NtQuerySemaphore, 20 ) \
+- SYSCALL_ENTRY( 0x0091, NtQuerySymbolicLinkObject, 12 ) \
+- SYSCALL_ENTRY( 0x0092, NtQuerySystemEnvironmentValue, 16 ) \
+- SYSCALL_ENTRY( 0x0093, NtQuerySystemEnvironmentValueEx, 20 ) \
+- SYSCALL_ENTRY( 0x0094, NtQuerySystemInformation, 16 ) \
+- SYSCALL_ENTRY( 0x0095, NtQuerySystemInformationEx, 24 ) \
+- SYSCALL_ENTRY( 0x0096, NtQuerySystemTime, 4 ) \
+- SYSCALL_ENTRY( 0x0097, NtQueryTimer, 20 ) \
+- SYSCALL_ENTRY( 0x0098, NtQueryTimerResolution, 12 ) \
+- SYSCALL_ENTRY( 0x0099, NtQueryValueKey, 24 ) \
+- SYSCALL_ENTRY( 0x009a, NtQueryVirtualMemory, 24 ) \
+- SYSCALL_ENTRY( 0x009b, NtQueryVolumeInformationFile, 20 ) \
+- SYSCALL_ENTRY( 0x009c, NtQueueApcThread, 20 ) \
+- SYSCALL_ENTRY( 0x009d, NtRaiseException, 12 ) \
+- SYSCALL_ENTRY( 0x009e, NtRaiseHardError, 24 ) \
+- SYSCALL_ENTRY( 0x009f, NtReadFile, 36 ) \
+- SYSCALL_ENTRY( 0x00a0, NtReadFileScatter, 36 ) \
+- SYSCALL_ENTRY( 0x00a1, NtReadVirtualMemory, 20 ) \
+- SYSCALL_ENTRY( 0x00a2, NtRegisterThreadTerminatePort, 4 ) \
+- SYSCALL_ENTRY( 0x00a3, NtReleaseKeyedEvent, 16 ) \
+- SYSCALL_ENTRY( 0x00a4, NtReleaseMutant, 8 ) \
+- SYSCALL_ENTRY( 0x00a5, NtReleaseSemaphore, 12 ) \
+- SYSCALL_ENTRY( 0x00a6, NtRemoveIoCompletion, 20 ) \
+- SYSCALL_ENTRY( 0x00a7, NtRemoveIoCompletionEx, 24 ) \
+- SYSCALL_ENTRY( 0x00a8, NtRemoveProcessDebug, 8 ) \
+- SYSCALL_ENTRY( 0x00a9, NtRenameKey, 8 ) \
+- SYSCALL_ENTRY( 0x00aa, NtReplaceKey, 12 ) \
+- SYSCALL_ENTRY( 0x00ab, NtReplyWaitReceivePort, 16 ) \
+- SYSCALL_ENTRY( 0x00ac, NtRequestWaitReplyPort, 12 ) \
+- SYSCALL_ENTRY( 0x00ad, NtResetEvent, 8 ) \
+- SYSCALL_ENTRY( 0x00ae, NtResetWriteWatch, 12 ) \
+- SYSCALL_ENTRY( 0x00af, NtRestoreKey, 12 ) \
+- SYSCALL_ENTRY( 0x00b0, NtResumeProcess, 4 ) \
+- SYSCALL_ENTRY( 0x00b1, NtResumeThread, 8 ) \
+- SYSCALL_ENTRY( 0x00b2, NtRollbackTransaction, 8 ) \
+- SYSCALL_ENTRY( 0x00b3, NtSaveKey, 8 ) \
+- SYSCALL_ENTRY( 0x00b4, NtSecureConnectPort, 36 ) \
+- SYSCALL_ENTRY( 0x00b5, NtSetContextThread, 8 ) \
+- SYSCALL_ENTRY( 0x00b6, NtSetDebugFilterState, 12 ) \
+- SYSCALL_ENTRY( 0x00b7, NtSetDefaultLocale, 8 ) \
+- SYSCALL_ENTRY( 0x00b8, NtSetDefaultUILanguage, 4 ) \
+- SYSCALL_ENTRY( 0x00b9, NtSetEaFile, 16 ) \
+- SYSCALL_ENTRY( 0x00ba, NtSetEvent, 8 ) \
+- SYSCALL_ENTRY( 0x00bb, NtSetInformationDebugObject, 20 ) \
+- SYSCALL_ENTRY( 0x00bc, NtSetInformationFile, 20 ) \
+- SYSCALL_ENTRY( 0x00bd, NtSetInformationJobObject, 16 ) \
+- SYSCALL_ENTRY( 0x00be, NtSetInformationKey, 16 ) \
+- SYSCALL_ENTRY( 0x00bf, NtSetInformationObject, 16 ) \
+- SYSCALL_ENTRY( 0x00c0, NtSetInformationProcess, 16 ) \
+- SYSCALL_ENTRY( 0x00c1, NtSetInformationThread, 16 ) \
+- SYSCALL_ENTRY( 0x00c2, NtSetInformationToken, 16 ) \
+- SYSCALL_ENTRY( 0x00c3, NtSetInformationVirtualMemory, 24 ) \
+- SYSCALL_ENTRY( 0x00c4, NtSetIntervalProfile, 8 ) \
+- SYSCALL_ENTRY( 0x00c5, NtSetIoCompletion, 20 ) \
+- SYSCALL_ENTRY( 0x00c6, NtSetLdtEntries, 24 ) \
+- SYSCALL_ENTRY( 0x00c7, NtSetSecurityObject, 12 ) \
+- SYSCALL_ENTRY( 0x00c8, NtSetSystemInformation, 12 ) \
+- SYSCALL_ENTRY( 0x00c9, NtSetSystemTime, 8 ) \
+- SYSCALL_ENTRY( 0x00ca, NtSetThreadExecutionState, 8 ) \
+- SYSCALL_ENTRY( 0x00cb, NtSetTimer, 28 ) \
+- SYSCALL_ENTRY( 0x00cc, NtSetTimerResolution, 12 ) \
+- SYSCALL_ENTRY( 0x00cd, NtSetValueKey, 24 ) \
+- SYSCALL_ENTRY( 0x00ce, NtSetVolumeInformationFile, 20 ) \
+- SYSCALL_ENTRY( 0x00cf, NtShutdownSystem, 4 ) \
+- SYSCALL_ENTRY( 0x00d0, NtSignalAndWaitForSingleObject, 16 ) \
+- SYSCALL_ENTRY( 0x00d1, NtSuspendProcess, 4 ) \
+- SYSCALL_ENTRY( 0x00d2, NtSuspendThread, 8 ) \
+- SYSCALL_ENTRY( 0x00d3, NtSystemDebugControl, 24 ) \
+- SYSCALL_ENTRY( 0x00d4, NtTerminateJobObject, 8 ) \
+- SYSCALL_ENTRY( 0x00d5, NtTerminateProcess, 8 ) \
+- SYSCALL_ENTRY( 0x00d6, NtTerminateThread, 8 ) \
+- SYSCALL_ENTRY( 0x00d7, NtTestAlert, 0 ) \
+- SYSCALL_ENTRY( 0x00d8, NtTraceControl, 24 ) \
+- SYSCALL_ENTRY( 0x00d9, NtUnloadDriver, 4 ) \
+- SYSCALL_ENTRY( 0x00da, NtUnloadKey, 4 ) \
+- SYSCALL_ENTRY( 0x00db, NtUnlockFile, 20 ) \
+- SYSCALL_ENTRY( 0x00dc, NtUnlockVirtualMemory, 16 ) \
+- SYSCALL_ENTRY( 0x00dd, NtUnmapViewOfSection, 8 ) \
+- SYSCALL_ENTRY( 0x00de, NtUnmapViewOfSectionEx, 12 ) \
+- SYSCALL_ENTRY( 0x00df, NtWaitForAlertByThreadId, 8 ) \
+- SYSCALL_ENTRY( 0x00e0, NtWaitForDebugEvent, 16 ) \
+- SYSCALL_ENTRY( 0x00e1, NtWaitForKeyedEvent, 16 ) \
+- SYSCALL_ENTRY( 0x00e2, NtWaitForMultipleObjects, 20 ) \
+- SYSCALL_ENTRY( 0x00e3, NtWaitForSingleObject, 12 ) \
+- SYSCALL_ENTRY( 0x00e4, NtWow64AllocateVirtualMemory64, 28 ) \
+- SYSCALL_ENTRY( 0x00e5, NtWow64GetNativeSystemInformation, 16 ) \
+- SYSCALL_ENTRY( 0x00e6, NtWow64IsProcessorFeaturePresent, 4 ) \
+- SYSCALL_ENTRY( 0x00e7, NtWow64ReadVirtualMemory64, 28 ) \
+- SYSCALL_ENTRY( 0x00e8, NtWow64WriteVirtualMemory64, 28 ) \
+- SYSCALL_ENTRY( 0x00e9, NtWriteFile, 36 ) \
+- SYSCALL_ENTRY( 0x00ea, NtWriteFileGather, 36 ) \
+- SYSCALL_ENTRY( 0x00eb, NtWriteVirtualMemory, 20 ) \
+- SYSCALL_ENTRY( 0x00ec, NtYieldExecution, 0 ) \
+- SYSCALL_ENTRY( 0x00ed, wine_nt_to_unix_file_name, 16 ) \
+- SYSCALL_ENTRY( 0x00ee, wine_unix_to_nt_file_name, 12 )
++ SYSCALL_ENTRY( 0x001b, NtContinueEx, 8 ) \
++ SYSCALL_ENTRY( 0x001c, NtCreateDebugObject, 16 ) \
++ SYSCALL_ENTRY( 0x001d, NtCreateDirectoryObject, 12 ) \
++ SYSCALL_ENTRY( 0x001e, NtCreateEvent, 20 ) \
++ SYSCALL_ENTRY( 0x001f, NtCreateFile, 44 ) \
++ SYSCALL_ENTRY( 0x0020, NtCreateIoCompletion, 16 ) \
++ SYSCALL_ENTRY( 0x0021, NtCreateJobObject, 12 ) \
++ SYSCALL_ENTRY( 0x0022, NtCreateKey, 28 ) \
++ SYSCALL_ENTRY( 0x0023, NtCreateKeyTransacted, 32 ) \
++ SYSCALL_ENTRY( 0x0024, NtCreateKeyedEvent, 16 ) \
++ SYSCALL_ENTRY( 0x0025, NtCreateLowBoxToken, 36 ) \
++ SYSCALL_ENTRY( 0x0026, NtCreateMailslotFile, 32 ) \
++ SYSCALL_ENTRY( 0x0027, NtCreateMutant, 16 ) \
++ SYSCALL_ENTRY( 0x0028, NtCreateNamedPipeFile, 56 ) \
++ SYSCALL_ENTRY( 0x0029, NtCreatePagingFile, 16 ) \
++ SYSCALL_ENTRY( 0x002a, NtCreatePort, 20 ) \
++ SYSCALL_ENTRY( 0x002b, NtCreateSection, 28 ) \
++ SYSCALL_ENTRY( 0x002c, NtCreateSemaphore, 20 ) \
++ SYSCALL_ENTRY( 0x002d, NtCreateSymbolicLinkObject, 16 ) \
++ SYSCALL_ENTRY( 0x002e, NtCreateThread, 32 ) \
++ SYSCALL_ENTRY( 0x002f, NtCreateThreadEx, 44 ) \
++ SYSCALL_ENTRY( 0x0030, NtCreateTimer, 16 ) \
++ SYSCALL_ENTRY( 0x0031, NtCreateToken, 52 ) \
++ SYSCALL_ENTRY( 0x0032, NtCreateTransaction, 40 ) \
++ SYSCALL_ENTRY( 0x0033, NtCreateUserProcess, 44 ) \
++ SYSCALL_ENTRY( 0x0034, NtDebugActiveProcess, 8 ) \
++ SYSCALL_ENTRY( 0x0035, NtDebugContinue, 12 ) \
++ SYSCALL_ENTRY( 0x0036, NtDelayExecution, 8 ) \
++ SYSCALL_ENTRY( 0x0037, NtDeleteAtom, 4 ) \
++ SYSCALL_ENTRY( 0x0038, NtDeleteFile, 4 ) \
++ SYSCALL_ENTRY( 0x0039, NtDeleteKey, 4 ) \
++ SYSCALL_ENTRY( 0x003a, NtDeleteValueKey, 8 ) \
++ SYSCALL_ENTRY( 0x003b, NtDeviceIoControlFile, 40 ) \
++ SYSCALL_ENTRY( 0x003c, NtDisplayString, 4 ) \
++ SYSCALL_ENTRY( 0x003d, NtDuplicateObject, 28 ) \
++ SYSCALL_ENTRY( 0x003e, NtDuplicateToken, 24 ) \
++ SYSCALL_ENTRY( 0x003f, NtEnumerateKey, 24 ) \
++ SYSCALL_ENTRY( 0x0040, NtEnumerateValueKey, 24 ) \
++ SYSCALL_ENTRY( 0x0041, NtFilterToken, 24 ) \
++ SYSCALL_ENTRY( 0x0042, NtFindAtom, 12 ) \
++ SYSCALL_ENTRY( 0x0043, NtFlushBuffersFile, 8 ) \
++ SYSCALL_ENTRY( 0x0044, NtFlushInstructionCache, 12 ) \
++ SYSCALL_ENTRY( 0x0045, NtFlushKey, 4 ) \
++ SYSCALL_ENTRY( 0x0046, NtFlushProcessWriteBuffers, 0 ) \
++ SYSCALL_ENTRY( 0x0047, NtFlushVirtualMemory, 16 ) \
++ SYSCALL_ENTRY( 0x0048, NtFreeVirtualMemory, 16 ) \
++ SYSCALL_ENTRY( 0x0049, NtFsControlFile, 40 ) \
++ SYSCALL_ENTRY( 0x004a, NtGetContextThread, 8 ) \
++ SYSCALL_ENTRY( 0x004b, NtGetCurrentProcessorNumber, 0 ) \
++ SYSCALL_ENTRY( 0x004c, NtGetNextThread, 24 ) \
++ SYSCALL_ENTRY( 0x004d, NtGetNlsSectionPtr, 20 ) \
++ SYSCALL_ENTRY( 0x004e, NtGetWriteWatch, 28 ) \
++ SYSCALL_ENTRY( 0x004f, NtImpersonateAnonymousToken, 4 ) \
++ SYSCALL_ENTRY( 0x0050, NtInitializeNlsFiles, 12 ) \
++ SYSCALL_ENTRY( 0x0051, NtInitiatePowerAction, 16 ) \
++ SYSCALL_ENTRY( 0x0052, NtIsProcessInJob, 8 ) \
++ SYSCALL_ENTRY( 0x0053, NtListenPort, 8 ) \
++ SYSCALL_ENTRY( 0x0054, NtLoadDriver, 4 ) \
++ SYSCALL_ENTRY( 0x0055, NtLoadKey, 8 ) \
++ SYSCALL_ENTRY( 0x0056, NtLoadKey2, 12 ) \
++ SYSCALL_ENTRY( 0x0057, NtLoadKeyEx, 32 ) \
++ SYSCALL_ENTRY( 0x0058, NtLockFile, 40 ) \
++ SYSCALL_ENTRY( 0x0059, NtLockVirtualMemory, 16 ) \
++ SYSCALL_ENTRY( 0x005a, NtMakeTemporaryObject, 4 ) \
++ SYSCALL_ENTRY( 0x005b, NtMapViewOfSection, 40 ) \
++ SYSCALL_ENTRY( 0x005c, NtMapViewOfSectionEx, 36 ) \
++ SYSCALL_ENTRY( 0x005d, NtNotifyChangeDirectoryFile, 36 ) \
++ SYSCALL_ENTRY( 0x005e, NtNotifyChangeKey, 40 ) \
++ SYSCALL_ENTRY( 0x005f, NtNotifyChangeMultipleKeys, 48 ) \
++ SYSCALL_ENTRY( 0x0060, NtOpenDirectoryObject, 12 ) \
++ SYSCALL_ENTRY( 0x0061, NtOpenEvent, 12 ) \
++ SYSCALL_ENTRY( 0x0062, NtOpenFile, 24 ) \
++ SYSCALL_ENTRY( 0x0063, NtOpenIoCompletion, 12 ) \
++ SYSCALL_ENTRY( 0x0064, NtOpenJobObject, 12 ) \
++ SYSCALL_ENTRY( 0x0065, NtOpenKey, 12 ) \
++ SYSCALL_ENTRY( 0x0066, NtOpenKeyEx, 16 ) \
++ SYSCALL_ENTRY( 0x0067, NtOpenKeyTransacted, 16 ) \
++ SYSCALL_ENTRY( 0x0068, NtOpenKeyTransactedEx, 20 ) \
++ SYSCALL_ENTRY( 0x0069, NtOpenKeyedEvent, 12 ) \
++ SYSCALL_ENTRY( 0x006a, NtOpenMutant, 12 ) \
++ SYSCALL_ENTRY( 0x006b, NtOpenProcess, 16 ) \
++ SYSCALL_ENTRY( 0x006c, NtOpenProcessToken, 12 ) \
++ SYSCALL_ENTRY( 0x006d, NtOpenProcessTokenEx, 16 ) \
++ SYSCALL_ENTRY( 0x006e, NtOpenSection, 12 ) \
++ SYSCALL_ENTRY( 0x006f, NtOpenSemaphore, 12 ) \
++ SYSCALL_ENTRY( 0x0070, NtOpenSymbolicLinkObject, 12 ) \
++ SYSCALL_ENTRY( 0x0071, NtOpenThread, 16 ) \
++ SYSCALL_ENTRY( 0x0072, NtOpenThreadToken, 16 ) \
++ SYSCALL_ENTRY( 0x0073, NtOpenThreadTokenEx, 20 ) \
++ SYSCALL_ENTRY( 0x0074, NtOpenTimer, 12 ) \
++ SYSCALL_ENTRY( 0x0075, NtPowerInformation, 20 ) \
++ SYSCALL_ENTRY( 0x0076, NtPrivilegeCheck, 12 ) \
++ SYSCALL_ENTRY( 0x0077, NtProtectVirtualMemory, 20 ) \
++ SYSCALL_ENTRY( 0x0078, NtPulseEvent, 8 ) \
++ SYSCALL_ENTRY( 0x0079, NtQueryAttributesFile, 8 ) \
++ SYSCALL_ENTRY( 0x007a, NtQueryDefaultLocale, 8 ) \
++ SYSCALL_ENTRY( 0x007b, NtQueryDefaultUILanguage, 4 ) \
++ SYSCALL_ENTRY( 0x007c, NtQueryDirectoryFile, 44 ) \
++ SYSCALL_ENTRY( 0x007d, NtQueryDirectoryObject, 28 ) \
++ SYSCALL_ENTRY( 0x007e, NtQueryEaFile, 36 ) \
++ SYSCALL_ENTRY( 0x007f, NtQueryEvent, 20 ) \
++ SYSCALL_ENTRY( 0x0080, NtQueryFullAttributesFile, 8 ) \
++ SYSCALL_ENTRY( 0x0081, NtQueryInformationAtom, 20 ) \
++ SYSCALL_ENTRY( 0x0082, NtQueryInformationFile, 20 ) \
++ SYSCALL_ENTRY( 0x0083, NtQueryInformationJobObject, 20 ) \
++ SYSCALL_ENTRY( 0x0084, NtQueryInformationProcess, 20 ) \
++ SYSCALL_ENTRY( 0x0085, NtQueryInformationThread, 20 ) \
++ SYSCALL_ENTRY( 0x0086, NtQueryInformationToken, 20 ) \
++ SYSCALL_ENTRY( 0x0087, NtQueryInstallUILanguage, 4 ) \
++ SYSCALL_ENTRY( 0x0088, NtQueryIoCompletion, 20 ) \
++ SYSCALL_ENTRY( 0x0089, NtQueryKey, 20 ) \
++ SYSCALL_ENTRY( 0x008a, NtQueryLicenseValue, 20 ) \
++ SYSCALL_ENTRY( 0x008b, NtQueryMultipleValueKey, 24 ) \
++ SYSCALL_ENTRY( 0x008c, NtQueryMutant, 20 ) \
++ SYSCALL_ENTRY( 0x008d, NtQueryObject, 20 ) \
++ SYSCALL_ENTRY( 0x008e, NtQueryPerformanceCounter, 8 ) \
++ SYSCALL_ENTRY( 0x008f, NtQuerySection, 20 ) \
++ SYSCALL_ENTRY( 0x0090, NtQuerySecurityObject, 20 ) \
++ SYSCALL_ENTRY( 0x0091, NtQuerySemaphore, 20 ) \
++ SYSCALL_ENTRY( 0x0092, NtQuerySymbolicLinkObject, 12 ) \
++ SYSCALL_ENTRY( 0x0093, NtQuerySystemEnvironmentValue, 16 ) \
++ SYSCALL_ENTRY( 0x0094, NtQuerySystemEnvironmentValueEx, 20 ) \
++ SYSCALL_ENTRY( 0x0095, NtQuerySystemInformation, 16 ) \
++ SYSCALL_ENTRY( 0x0096, NtQuerySystemInformationEx, 24 ) \
++ SYSCALL_ENTRY( 0x0097, NtQuerySystemTime, 4 ) \
++ SYSCALL_ENTRY( 0x0098, NtQueryTimer, 20 ) \
++ SYSCALL_ENTRY( 0x0099, NtQueryTimerResolution, 12 ) \
++ SYSCALL_ENTRY( 0x009a, NtQueryValueKey, 24 ) \
++ SYSCALL_ENTRY( 0x009b, NtQueryVirtualMemory, 24 ) \
++ SYSCALL_ENTRY( 0x009c, NtQueryVolumeInformationFile, 20 ) \
++ SYSCALL_ENTRY( 0x009d, NtQueueApcThread, 20 ) \
++ SYSCALL_ENTRY( 0x009e, NtRaiseException, 12 ) \
++ SYSCALL_ENTRY( 0x009f, NtRaiseHardError, 24 ) \
++ SYSCALL_ENTRY( 0x00a0, NtReadFile, 36 ) \
++ SYSCALL_ENTRY( 0x00a1, NtReadFileScatter, 36 ) \
++ SYSCALL_ENTRY( 0x00a2, NtReadVirtualMemory, 20 ) \
++ SYSCALL_ENTRY( 0x00a3, NtRegisterThreadTerminatePort, 4 ) \
++ SYSCALL_ENTRY( 0x00a4, NtReleaseKeyedEvent, 16 ) \
++ SYSCALL_ENTRY( 0x00a5, NtReleaseMutant, 8 ) \
++ SYSCALL_ENTRY( 0x00a6, NtReleaseSemaphore, 12 ) \
++ SYSCALL_ENTRY( 0x00a7, NtRemoveIoCompletion, 20 ) \
++ SYSCALL_ENTRY( 0x00a8, NtRemoveIoCompletionEx, 24 ) \
++ SYSCALL_ENTRY( 0x00a9, NtRemoveProcessDebug, 8 ) \
++ SYSCALL_ENTRY( 0x00aa, NtRenameKey, 8 ) \
++ SYSCALL_ENTRY( 0x00ab, NtReplaceKey, 12 ) \
++ SYSCALL_ENTRY( 0x00ac, NtReplyWaitReceivePort, 16 ) \
++ SYSCALL_ENTRY( 0x00ad, NtRequestWaitReplyPort, 12 ) \
++ SYSCALL_ENTRY( 0x00ae, NtResetEvent, 8 ) \
++ SYSCALL_ENTRY( 0x00af, NtResetWriteWatch, 12 ) \
++ SYSCALL_ENTRY( 0x00b0, NtRestoreKey, 12 ) \
++ SYSCALL_ENTRY( 0x00b1, NtResumeProcess, 4 ) \
++ SYSCALL_ENTRY( 0x00b2, NtResumeThread, 8 ) \
++ SYSCALL_ENTRY( 0x00b3, NtRollbackTransaction, 8 ) \
++ SYSCALL_ENTRY( 0x00b4, NtSaveKey, 8 ) \
++ SYSCALL_ENTRY( 0x00b5, NtSecureConnectPort, 36 ) \
++ SYSCALL_ENTRY( 0x00b6, NtSetContextThread, 8 ) \
++ SYSCALL_ENTRY( 0x00b7, NtSetDebugFilterState, 12 ) \
++ SYSCALL_ENTRY( 0x00b8, NtSetDefaultLocale, 8 ) \
++ SYSCALL_ENTRY( 0x00b9, NtSetDefaultUILanguage, 4 ) \
++ SYSCALL_ENTRY( 0x00ba, NtSetEaFile, 16 ) \
++ SYSCALL_ENTRY( 0x00bb, NtSetEvent, 8 ) \
++ SYSCALL_ENTRY( 0x00bc, NtSetInformationDebugObject, 20 ) \
++ SYSCALL_ENTRY( 0x00bd, NtSetInformationFile, 20 ) \
++ SYSCALL_ENTRY( 0x00be, NtSetInformationJobObject, 16 ) \
++ SYSCALL_ENTRY( 0x00bf, NtSetInformationKey, 16 ) \
++ SYSCALL_ENTRY( 0x00c0, NtSetInformationObject, 16 ) \
++ SYSCALL_ENTRY( 0x00c1, NtSetInformationProcess, 16 ) \
++ SYSCALL_ENTRY( 0x00c2, NtSetInformationThread, 16 ) \
++ SYSCALL_ENTRY( 0x00c3, NtSetInformationToken, 16 ) \
++ SYSCALL_ENTRY( 0x00c4, NtSetInformationVirtualMemory, 24 ) \
++ SYSCALL_ENTRY( 0x00c5, NtSetIntervalProfile, 8 ) \
++ SYSCALL_ENTRY( 0x00c6, NtSetIoCompletion, 20 ) \
++ SYSCALL_ENTRY( 0x00c7, NtSetLdtEntries, 24 ) \
++ SYSCALL_ENTRY( 0x00c8, NtSetSecurityObject, 12 ) \
++ SYSCALL_ENTRY( 0x00c9, NtSetSystemInformation, 12 ) \
++ SYSCALL_ENTRY( 0x00ca, NtSetSystemTime, 8 ) \
++ SYSCALL_ENTRY( 0x00cb, NtSetThreadExecutionState, 8 ) \
++ SYSCALL_ENTRY( 0x00cc, NtSetTimer, 28 ) \
++ SYSCALL_ENTRY( 0x00cd, NtSetTimerResolution, 12 ) \
++ SYSCALL_ENTRY( 0x00ce, NtSetValueKey, 24 ) \
++ SYSCALL_ENTRY( 0x00cf, NtSetVolumeInformationFile, 20 ) \
++ SYSCALL_ENTRY( 0x00d0, NtShutdownSystem, 4 ) \
++ SYSCALL_ENTRY( 0x00d1, NtSignalAndWaitForSingleObject, 16 ) \
++ SYSCALL_ENTRY( 0x00d2, NtSuspendProcess, 4 ) \
++ SYSCALL_ENTRY( 0x00d3, NtSuspendThread, 8 ) \
++ SYSCALL_ENTRY( 0x00d4, NtSystemDebugControl, 24 ) \
++ SYSCALL_ENTRY( 0x00d5, NtTerminateJobObject, 8 ) \
++ SYSCALL_ENTRY( 0x00d6, NtTerminateProcess, 8 ) \
++ SYSCALL_ENTRY( 0x00d7, NtTerminateThread, 8 ) \
++ SYSCALL_ENTRY( 0x00d8, NtTestAlert, 0 ) \
++ SYSCALL_ENTRY( 0x00d9, NtTraceControl, 24 ) \
++ SYSCALL_ENTRY( 0x00da, NtUnloadDriver, 4 ) \
++ SYSCALL_ENTRY( 0x00db, NtUnloadKey, 4 ) \
++ SYSCALL_ENTRY( 0x00dc, NtUnlockFile, 20 ) \
++ SYSCALL_ENTRY( 0x00dd, NtUnlockVirtualMemory, 16 ) \
++ SYSCALL_ENTRY( 0x00de, NtUnmapViewOfSection, 8 ) \
++ SYSCALL_ENTRY( 0x00df, NtUnmapViewOfSectionEx, 12 ) \
++ SYSCALL_ENTRY( 0x00e0, NtWaitForAlertByThreadId, 8 ) \
++ SYSCALL_ENTRY( 0x00e1, NtWaitForDebugEvent, 16 ) \
++ SYSCALL_ENTRY( 0x00e2, NtWaitForKeyedEvent, 16 ) \
++ SYSCALL_ENTRY( 0x00e3, NtWaitForMultipleObjects, 20 ) \
++ SYSCALL_ENTRY( 0x00e4, NtWaitForSingleObject, 12 ) \
++ SYSCALL_ENTRY( 0x00e5, NtWow64AllocateVirtualMemory64, 28 ) \
++ SYSCALL_ENTRY( 0x00e6, NtWow64GetNativeSystemInformation, 16 ) \
++ SYSCALL_ENTRY( 0x00e7, NtWow64IsProcessorFeaturePresent, 4 ) \
++ SYSCALL_ENTRY( 0x00e8, NtWow64ReadVirtualMemory64, 28 ) \
++ SYSCALL_ENTRY( 0x00e9, NtWow64WriteVirtualMemory64, 28 ) \
++ SYSCALL_ENTRY( 0x00ea, NtWriteFile, 36 ) \
++ SYSCALL_ENTRY( 0x00eb, NtWriteFileGather, 36 ) \
++ SYSCALL_ENTRY( 0x00ec, NtWriteVirtualMemory, 20 ) \
++ SYSCALL_ENTRY( 0x00ed, NtYieldExecution, 0 ) \
++ SYSCALL_ENTRY( 0x00ee, wine_nt_to_unix_file_name, 16 ) \
++ SYSCALL_ENTRY( 0x00ef, wine_unix_to_nt_file_name, 12 )
+
+ #define ALL_SYSCALLS64 \
+ SYSCALL_ENTRY( 0x0000, NtAcceptConnectPort, 48 ) \
+@@ -269,210 +270,211 @@
+ SYSCALL_ENTRY( 0x0018, NtCompleteConnectPort, 8 ) \
+ SYSCALL_ENTRY( 0x0019, NtConnectPort, 64 ) \
+ SYSCALL_ENTRY( 0x001a, NtContinue, 16 ) \
+- SYSCALL_ENTRY( 0x001b, NtCreateDebugObject, 32 ) \
+- SYSCALL_ENTRY( 0x001c, NtCreateDirectoryObject, 24 ) \
+- SYSCALL_ENTRY( 0x001d, NtCreateEvent, 40 ) \
+- SYSCALL_ENTRY( 0x001e, NtCreateFile, 88 ) \
+- SYSCALL_ENTRY( 0x001f, NtCreateIoCompletion, 32 ) \
+- SYSCALL_ENTRY( 0x0020, NtCreateJobObject, 24 ) \
+- SYSCALL_ENTRY( 0x0021, NtCreateKey, 56 ) \
+- SYSCALL_ENTRY( 0x0022, NtCreateKeyTransacted, 64 ) \
+- SYSCALL_ENTRY( 0x0023, NtCreateKeyedEvent, 32 ) \
+- SYSCALL_ENTRY( 0x0024, NtCreateLowBoxToken, 72 ) \
+- SYSCALL_ENTRY( 0x0025, NtCreateMailslotFile, 64 ) \
+- SYSCALL_ENTRY( 0x0026, NtCreateMutant, 32 ) \
+- SYSCALL_ENTRY( 0x0027, NtCreateNamedPipeFile, 112 ) \
+- SYSCALL_ENTRY( 0x0028, NtCreatePagingFile, 32 ) \
+- SYSCALL_ENTRY( 0x0029, NtCreatePort, 40 ) \
+- SYSCALL_ENTRY( 0x002a, NtCreateSection, 56 ) \
+- SYSCALL_ENTRY( 0x002b, NtCreateSemaphore, 40 ) \
+- SYSCALL_ENTRY( 0x002c, NtCreateSymbolicLinkObject, 32 ) \
+- SYSCALL_ENTRY( 0x002d, NtCreateThread, 64 ) \
+- SYSCALL_ENTRY( 0x002e, NtCreateThreadEx, 88 ) \
+- SYSCALL_ENTRY( 0x002f, NtCreateTimer, 32 ) \
+- SYSCALL_ENTRY( 0x0030, NtCreateToken, 104 ) \
+- SYSCALL_ENTRY( 0x0031, NtCreateTransaction, 80 ) \
+- SYSCALL_ENTRY( 0x0032, NtCreateUserProcess, 88 ) \
+- SYSCALL_ENTRY( 0x0033, NtDebugActiveProcess, 16 ) \
+- SYSCALL_ENTRY( 0x0034, NtDebugContinue, 24 ) \
+- SYSCALL_ENTRY( 0x0035, NtDelayExecution, 16 ) \
+- SYSCALL_ENTRY( 0x0036, NtDeleteAtom, 8 ) \
+- SYSCALL_ENTRY( 0x0037, NtDeleteFile, 8 ) \
+- SYSCALL_ENTRY( 0x0038, NtDeleteKey, 8 ) \
+- SYSCALL_ENTRY( 0x0039, NtDeleteValueKey, 16 ) \
+- SYSCALL_ENTRY( 0x003a, NtDeviceIoControlFile, 80 ) \
+- SYSCALL_ENTRY( 0x003b, NtDisplayString, 8 ) \
+- SYSCALL_ENTRY( 0x003c, NtDuplicateObject, 56 ) \
+- SYSCALL_ENTRY( 0x003d, NtDuplicateToken, 48 ) \
+- SYSCALL_ENTRY( 0x003e, NtEnumerateKey, 48 ) \
+- SYSCALL_ENTRY( 0x003f, NtEnumerateValueKey, 48 ) \
+- SYSCALL_ENTRY( 0x0040, NtFilterToken, 48 ) \
+- SYSCALL_ENTRY( 0x0041, NtFindAtom, 24 ) \
+- SYSCALL_ENTRY( 0x0042, NtFlushBuffersFile, 16 ) \
+- SYSCALL_ENTRY( 0x0043, NtFlushInstructionCache, 24 ) \
+- SYSCALL_ENTRY( 0x0044, NtFlushKey, 8 ) \
+- SYSCALL_ENTRY( 0x0045, NtFlushProcessWriteBuffers, 0 ) \
+- SYSCALL_ENTRY( 0x0046, NtFlushVirtualMemory, 32 ) \
+- SYSCALL_ENTRY( 0x0047, NtFreeVirtualMemory, 32 ) \
+- SYSCALL_ENTRY( 0x0048, NtFsControlFile, 80 ) \
+- SYSCALL_ENTRY( 0x0049, NtGetContextThread, 16 ) \
+- SYSCALL_ENTRY( 0x004a, NtGetCurrentProcessorNumber, 0 ) \
+- SYSCALL_ENTRY( 0x004b, NtGetNextThread, 48 ) \
+- SYSCALL_ENTRY( 0x004c, NtGetNlsSectionPtr, 40 ) \
+- SYSCALL_ENTRY( 0x004d, NtGetWriteWatch, 56 ) \
+- SYSCALL_ENTRY( 0x004e, NtImpersonateAnonymousToken, 8 ) \
+- SYSCALL_ENTRY( 0x004f, NtInitializeNlsFiles, 24 ) \
+- SYSCALL_ENTRY( 0x0050, NtInitiatePowerAction, 32 ) \
+- SYSCALL_ENTRY( 0x0051, NtIsProcessInJob, 16 ) \
+- SYSCALL_ENTRY( 0x0052, NtListenPort, 16 ) \
+- SYSCALL_ENTRY( 0x0053, NtLoadDriver, 8 ) \
+- SYSCALL_ENTRY( 0x0054, NtLoadKey, 16 ) \
+- SYSCALL_ENTRY( 0x0055, NtLoadKey2, 24 ) \
+- SYSCALL_ENTRY( 0x0056, NtLoadKeyEx, 64 ) \
+- SYSCALL_ENTRY( 0x0057, NtLockFile, 80 ) \
+- SYSCALL_ENTRY( 0x0058, NtLockVirtualMemory, 32 ) \
+- SYSCALL_ENTRY( 0x0059, NtMakeTemporaryObject, 8 ) \
+- SYSCALL_ENTRY( 0x005a, NtMapViewOfSection, 80 ) \
+- SYSCALL_ENTRY( 0x005b, NtMapViewOfSectionEx, 72 ) \
+- SYSCALL_ENTRY( 0x005c, NtNotifyChangeDirectoryFile, 72 ) \
+- SYSCALL_ENTRY( 0x005d, NtNotifyChangeKey, 80 ) \
+- SYSCALL_ENTRY( 0x005e, NtNotifyChangeMultipleKeys, 96 ) \
+- SYSCALL_ENTRY( 0x005f, NtOpenDirectoryObject, 24 ) \
+- SYSCALL_ENTRY( 0x0060, NtOpenEvent, 24 ) \
+- SYSCALL_ENTRY( 0x0061, NtOpenFile, 48 ) \
+- SYSCALL_ENTRY( 0x0062, NtOpenIoCompletion, 24 ) \
+- SYSCALL_ENTRY( 0x0063, NtOpenJobObject, 24 ) \
+- SYSCALL_ENTRY( 0x0064, NtOpenKey, 24 ) \
+- SYSCALL_ENTRY( 0x0065, NtOpenKeyEx, 32 ) \
+- SYSCALL_ENTRY( 0x0066, NtOpenKeyTransacted, 32 ) \
+- SYSCALL_ENTRY( 0x0067, NtOpenKeyTransactedEx, 40 ) \
+- SYSCALL_ENTRY( 0x0068, NtOpenKeyedEvent, 24 ) \
+- SYSCALL_ENTRY( 0x0069, NtOpenMutant, 24 ) \
+- SYSCALL_ENTRY( 0x006a, NtOpenProcess, 32 ) \
+- SYSCALL_ENTRY( 0x006b, NtOpenProcessToken, 24 ) \
+- SYSCALL_ENTRY( 0x006c, NtOpenProcessTokenEx, 32 ) \
+- SYSCALL_ENTRY( 0x006d, NtOpenSection, 24 ) \
+- SYSCALL_ENTRY( 0x006e, NtOpenSemaphore, 24 ) \
+- SYSCALL_ENTRY( 0x006f, NtOpenSymbolicLinkObject, 24 ) \
+- SYSCALL_ENTRY( 0x0070, NtOpenThread, 32 ) \
+- SYSCALL_ENTRY( 0x0071, NtOpenThreadToken, 32 ) \
+- SYSCALL_ENTRY( 0x0072, NtOpenThreadTokenEx, 40 ) \
+- SYSCALL_ENTRY( 0x0073, NtOpenTimer, 24 ) \
+- SYSCALL_ENTRY( 0x0074, NtPowerInformation, 40 ) \
+- SYSCALL_ENTRY( 0x0075, NtPrivilegeCheck, 24 ) \
+- SYSCALL_ENTRY( 0x0076, NtProtectVirtualMemory, 40 ) \
+- SYSCALL_ENTRY( 0x0077, NtPulseEvent, 16 ) \
+- SYSCALL_ENTRY( 0x0078, NtQueryAttributesFile, 16 ) \
+- SYSCALL_ENTRY( 0x0079, NtQueryDefaultLocale, 16 ) \
+- SYSCALL_ENTRY( 0x007a, NtQueryDefaultUILanguage, 8 ) \
+- SYSCALL_ENTRY( 0x007b, NtQueryDirectoryFile, 88 ) \
+- SYSCALL_ENTRY( 0x007c, NtQueryDirectoryObject, 56 ) \
+- SYSCALL_ENTRY( 0x007d, NtQueryEaFile, 72 ) \
+- SYSCALL_ENTRY( 0x007e, NtQueryEvent, 40 ) \
+- SYSCALL_ENTRY( 0x007f, NtQueryFullAttributesFile, 16 ) \
+- SYSCALL_ENTRY( 0x0080, NtQueryInformationAtom, 40 ) \
+- SYSCALL_ENTRY( 0x0081, NtQueryInformationFile, 40 ) \
+- SYSCALL_ENTRY( 0x0082, NtQueryInformationJobObject, 40 ) \
+- SYSCALL_ENTRY( 0x0083, NtQueryInformationProcess, 40 ) \
+- SYSCALL_ENTRY( 0x0084, NtQueryInformationThread, 40 ) \
+- SYSCALL_ENTRY( 0x0085, NtQueryInformationToken, 40 ) \
+- SYSCALL_ENTRY( 0x0086, NtQueryInstallUILanguage, 8 ) \
+- SYSCALL_ENTRY( 0x0087, NtQueryIoCompletion, 40 ) \
+- SYSCALL_ENTRY( 0x0088, NtQueryKey, 40 ) \
+- SYSCALL_ENTRY( 0x0089, NtQueryLicenseValue, 40 ) \
+- SYSCALL_ENTRY( 0x008a, NtQueryMultipleValueKey, 48 ) \
+- SYSCALL_ENTRY( 0x008b, NtQueryMutant, 40 ) \
+- SYSCALL_ENTRY( 0x008c, NtQueryObject, 40 ) \
+- SYSCALL_ENTRY( 0x008d, NtQueryPerformanceCounter, 16 ) \
+- SYSCALL_ENTRY( 0x008e, NtQuerySection, 40 ) \
+- SYSCALL_ENTRY( 0x008f, NtQuerySecurityObject, 40 ) \
+- SYSCALL_ENTRY( 0x0090, NtQuerySemaphore, 40 ) \
+- SYSCALL_ENTRY( 0x0091, NtQuerySymbolicLinkObject, 24 ) \
+- SYSCALL_ENTRY( 0x0092, NtQuerySystemEnvironmentValue, 32 ) \
+- SYSCALL_ENTRY( 0x0093, NtQuerySystemEnvironmentValueEx, 40 ) \
+- SYSCALL_ENTRY( 0x0094, NtQuerySystemInformation, 32 ) \
+- SYSCALL_ENTRY( 0x0095, NtQuerySystemInformationEx, 48 ) \
+- SYSCALL_ENTRY( 0x0096, NtQuerySystemTime, 8 ) \
+- SYSCALL_ENTRY( 0x0097, NtQueryTimer, 40 ) \
+- SYSCALL_ENTRY( 0x0098, NtQueryTimerResolution, 24 ) \
+- SYSCALL_ENTRY( 0x0099, NtQueryValueKey, 48 ) \
+- SYSCALL_ENTRY( 0x009a, NtQueryVirtualMemory, 48 ) \
+- SYSCALL_ENTRY( 0x009b, NtQueryVolumeInformationFile, 40 ) \
+- SYSCALL_ENTRY( 0x009c, NtQueueApcThread, 40 ) \
+- SYSCALL_ENTRY( 0x009d, NtRaiseException, 24 ) \
+- SYSCALL_ENTRY( 0x009e, NtRaiseHardError, 48 ) \
+- SYSCALL_ENTRY( 0x009f, NtReadFile, 72 ) \
+- SYSCALL_ENTRY( 0x00a0, NtReadFileScatter, 72 ) \
+- SYSCALL_ENTRY( 0x00a1, NtReadVirtualMemory, 40 ) \
+- SYSCALL_ENTRY( 0x00a2, NtRegisterThreadTerminatePort, 8 ) \
+- SYSCALL_ENTRY( 0x00a3, NtReleaseKeyedEvent, 32 ) \
+- SYSCALL_ENTRY( 0x00a4, NtReleaseMutant, 16 ) \
+- SYSCALL_ENTRY( 0x00a5, NtReleaseSemaphore, 24 ) \
+- SYSCALL_ENTRY( 0x00a6, NtRemoveIoCompletion, 40 ) \
+- SYSCALL_ENTRY( 0x00a7, NtRemoveIoCompletionEx, 48 ) \
+- SYSCALL_ENTRY( 0x00a8, NtRemoveProcessDebug, 16 ) \
+- SYSCALL_ENTRY( 0x00a9, NtRenameKey, 16 ) \
+- SYSCALL_ENTRY( 0x00aa, NtReplaceKey, 24 ) \
+- SYSCALL_ENTRY( 0x00ab, NtReplyWaitReceivePort, 32 ) \
+- SYSCALL_ENTRY( 0x00ac, NtRequestWaitReplyPort, 24 ) \
+- SYSCALL_ENTRY( 0x00ad, NtResetEvent, 16 ) \
+- SYSCALL_ENTRY( 0x00ae, NtResetWriteWatch, 24 ) \
+- SYSCALL_ENTRY( 0x00af, NtRestoreKey, 24 ) \
+- SYSCALL_ENTRY( 0x00b0, NtResumeProcess, 8 ) \
+- SYSCALL_ENTRY( 0x00b1, NtResumeThread, 16 ) \
+- SYSCALL_ENTRY( 0x00b2, NtRollbackTransaction, 16 ) \
+- SYSCALL_ENTRY( 0x00b3, NtSaveKey, 16 ) \
+- SYSCALL_ENTRY( 0x00b4, NtSecureConnectPort, 72 ) \
+- SYSCALL_ENTRY( 0x00b5, NtSetContextThread, 16 ) \
+- SYSCALL_ENTRY( 0x00b6, NtSetDebugFilterState, 24 ) \
+- SYSCALL_ENTRY( 0x00b7, NtSetDefaultLocale, 16 ) \
+- SYSCALL_ENTRY( 0x00b8, NtSetDefaultUILanguage, 8 ) \
+- SYSCALL_ENTRY( 0x00b9, NtSetEaFile, 32 ) \
+- SYSCALL_ENTRY( 0x00ba, NtSetEvent, 16 ) \
+- SYSCALL_ENTRY( 0x00bb, NtSetInformationDebugObject, 40 ) \
+- SYSCALL_ENTRY( 0x00bc, NtSetInformationFile, 40 ) \
+- SYSCALL_ENTRY( 0x00bd, NtSetInformationJobObject, 32 ) \
+- SYSCALL_ENTRY( 0x00be, NtSetInformationKey, 32 ) \
+- SYSCALL_ENTRY( 0x00bf, NtSetInformationObject, 32 ) \
+- SYSCALL_ENTRY( 0x00c0, NtSetInformationProcess, 32 ) \
+- SYSCALL_ENTRY( 0x00c1, NtSetInformationThread, 32 ) \
+- SYSCALL_ENTRY( 0x00c2, NtSetInformationToken, 32 ) \
+- SYSCALL_ENTRY( 0x00c3, NtSetInformationVirtualMemory, 48 ) \
+- SYSCALL_ENTRY( 0x00c4, NtSetIntervalProfile, 16 ) \
+- SYSCALL_ENTRY( 0x00c5, NtSetIoCompletion, 40 ) \
+- SYSCALL_ENTRY( 0x00c6, NtSetLdtEntries, 32 ) \
+- SYSCALL_ENTRY( 0x00c7, NtSetSecurityObject, 24 ) \
+- SYSCALL_ENTRY( 0x00c8, NtSetSystemInformation, 24 ) \
+- SYSCALL_ENTRY( 0x00c9, NtSetSystemTime, 16 ) \
+- SYSCALL_ENTRY( 0x00ca, NtSetThreadExecutionState, 16 ) \
+- SYSCALL_ENTRY( 0x00cb, NtSetTimer, 56 ) \
+- SYSCALL_ENTRY( 0x00cc, NtSetTimerResolution, 24 ) \
+- SYSCALL_ENTRY( 0x00cd, NtSetValueKey, 48 ) \
+- SYSCALL_ENTRY( 0x00ce, NtSetVolumeInformationFile, 40 ) \
+- SYSCALL_ENTRY( 0x00cf, NtShutdownSystem, 8 ) \
+- SYSCALL_ENTRY( 0x00d0, NtSignalAndWaitForSingleObject, 32 ) \
+- SYSCALL_ENTRY( 0x00d1, NtSuspendProcess, 8 ) \
+- SYSCALL_ENTRY( 0x00d2, NtSuspendThread, 16 ) \
+- SYSCALL_ENTRY( 0x00d3, NtSystemDebugControl, 48 ) \
+- SYSCALL_ENTRY( 0x00d4, NtTerminateJobObject, 16 ) \
+- SYSCALL_ENTRY( 0x00d5, NtTerminateProcess, 16 ) \
+- SYSCALL_ENTRY( 0x00d6, NtTerminateThread, 16 ) \
+- SYSCALL_ENTRY( 0x00d7, NtTestAlert, 0 ) \
+- SYSCALL_ENTRY( 0x00d8, NtTraceControl, 48 ) \
+- SYSCALL_ENTRY( 0x00d9, NtUnloadDriver, 8 ) \
+- SYSCALL_ENTRY( 0x00da, NtUnloadKey, 8 ) \
+- SYSCALL_ENTRY( 0x00db, NtUnlockFile, 40 ) \
+- SYSCALL_ENTRY( 0x00dc, NtUnlockVirtualMemory, 32 ) \
+- SYSCALL_ENTRY( 0x00dd, NtUnmapViewOfSection, 16 ) \
+- SYSCALL_ENTRY( 0x00de, NtUnmapViewOfSectionEx, 24 ) \
+- SYSCALL_ENTRY( 0x00df, NtWaitForAlertByThreadId, 16 ) \
+- SYSCALL_ENTRY( 0x00e0, NtWaitForDebugEvent, 32 ) \
+- SYSCALL_ENTRY( 0x00e1, NtWaitForKeyedEvent, 32 ) \
+- SYSCALL_ENTRY( 0x00e2, NtWaitForMultipleObjects, 40 ) \
+- SYSCALL_ENTRY( 0x00e3, NtWaitForSingleObject, 24 ) \
+- SYSCALL_ENTRY( 0x00e4, NtWriteFile, 72 ) \
+- SYSCALL_ENTRY( 0x00e5, NtWriteFileGather, 72 ) \
+- SYSCALL_ENTRY( 0x00e6, NtWriteVirtualMemory, 40 ) \
+- SYSCALL_ENTRY( 0x00e7, NtYieldExecution, 0 ) \
+- SYSCALL_ENTRY( 0x00e8, wine_nt_to_unix_file_name, 32 ) \
+- SYSCALL_ENTRY( 0x00e9, wine_unix_to_nt_file_name, 24 )
++ SYSCALL_ENTRY( 0x001b, NtContinueEx, 16 ) \
++ SYSCALL_ENTRY( 0x001c, NtCreateDebugObject, 32 ) \
++ SYSCALL_ENTRY( 0x001d, NtCreateDirectoryObject, 24 ) \
++ SYSCALL_ENTRY( 0x001e, NtCreateEvent, 40 ) \
++ SYSCALL_ENTRY( 0x001f, NtCreateFile, 88 ) \
++ SYSCALL_ENTRY( 0x0020, NtCreateIoCompletion, 32 ) \
++ SYSCALL_ENTRY( 0x0021, NtCreateJobObject, 24 ) \
++ SYSCALL_ENTRY( 0x0022, NtCreateKey, 56 ) \
++ SYSCALL_ENTRY( 0x0023, NtCreateKeyTransacted, 64 ) \
++ SYSCALL_ENTRY( 0x0024, NtCreateKeyedEvent, 32 ) \
++ SYSCALL_ENTRY( 0x0025, NtCreateLowBoxToken, 72 ) \
++ SYSCALL_ENTRY( 0x0026, NtCreateMailslotFile, 64 ) \
++ SYSCALL_ENTRY( 0x0027, NtCreateMutant, 32 ) \
++ SYSCALL_ENTRY( 0x0028, NtCreateNamedPipeFile, 112 ) \
++ SYSCALL_ENTRY( 0x0029, NtCreatePagingFile, 32 ) \
++ SYSCALL_ENTRY( 0x002a, NtCreatePort, 40 ) \
++ SYSCALL_ENTRY( 0x002b, NtCreateSection, 56 ) \
++ SYSCALL_ENTRY( 0x002c, NtCreateSemaphore, 40 ) \
++ SYSCALL_ENTRY( 0x002d, NtCreateSymbolicLinkObject, 32 ) \
++ SYSCALL_ENTRY( 0x002e, NtCreateThread, 64 ) \
++ SYSCALL_ENTRY( 0x002f, NtCreateThreadEx, 88 ) \
++ SYSCALL_ENTRY( 0x0030, NtCreateTimer, 32 ) \
++ SYSCALL_ENTRY( 0x0031, NtCreateToken, 104 ) \
++ SYSCALL_ENTRY( 0x0032, NtCreateTransaction, 80 ) \
++ SYSCALL_ENTRY( 0x0033, NtCreateUserProcess, 88 ) \
++ SYSCALL_ENTRY( 0x0034, NtDebugActiveProcess, 16 ) \
++ SYSCALL_ENTRY( 0x0035, NtDebugContinue, 24 ) \
++ SYSCALL_ENTRY( 0x0036, NtDelayExecution, 16 ) \
++ SYSCALL_ENTRY( 0x0037, NtDeleteAtom, 8 ) \
++ SYSCALL_ENTRY( 0x0038, NtDeleteFile, 8 ) \
++ SYSCALL_ENTRY( 0x0039, NtDeleteKey, 8 ) \
++ SYSCALL_ENTRY( 0x003a, NtDeleteValueKey, 16 ) \
++ SYSCALL_ENTRY( 0x003b, NtDeviceIoControlFile, 80 ) \
++ SYSCALL_ENTRY( 0x003c, NtDisplayString, 8 ) \
++ SYSCALL_ENTRY( 0x003d, NtDuplicateObject, 56 ) \
++ SYSCALL_ENTRY( 0x003e, NtDuplicateToken, 48 ) \
++ SYSCALL_ENTRY( 0x003f, NtEnumerateKey, 48 ) \
++ SYSCALL_ENTRY( 0x0040, NtEnumerateValueKey, 48 ) \
++ SYSCALL_ENTRY( 0x0041, NtFilterToken, 48 ) \
++ SYSCALL_ENTRY( 0x0042, NtFindAtom, 24 ) \
++ SYSCALL_ENTRY( 0x0043, NtFlushBuffersFile, 16 ) \
++ SYSCALL_ENTRY( 0x0044, NtFlushInstructionCache, 24 ) \
++ SYSCALL_ENTRY( 0x0045, NtFlushKey, 8 ) \
++ SYSCALL_ENTRY( 0x0046, NtFlushProcessWriteBuffers, 0 ) \
++ SYSCALL_ENTRY( 0x0047, NtFlushVirtualMemory, 32 ) \
++ SYSCALL_ENTRY( 0x0048, NtFreeVirtualMemory, 32 ) \
++ SYSCALL_ENTRY( 0x0049, NtFsControlFile, 80 ) \
++ SYSCALL_ENTRY( 0x004a, NtGetContextThread, 16 ) \
++ SYSCALL_ENTRY( 0x004b, NtGetCurrentProcessorNumber, 0 ) \
++ SYSCALL_ENTRY( 0x004c, NtGetNextThread, 48 ) \
++ SYSCALL_ENTRY( 0x004d, NtGetNlsSectionPtr, 40 ) \
++ SYSCALL_ENTRY( 0x004e, NtGetWriteWatch, 56 ) \
++ SYSCALL_ENTRY( 0x004f, NtImpersonateAnonymousToken, 8 ) \
++ SYSCALL_ENTRY( 0x0050, NtInitializeNlsFiles, 24 ) \
++ SYSCALL_ENTRY( 0x0051, NtInitiatePowerAction, 32 ) \
++ SYSCALL_ENTRY( 0x0052, NtIsProcessInJob, 16 ) \
++ SYSCALL_ENTRY( 0x0053, NtListenPort, 16 ) \
++ SYSCALL_ENTRY( 0x0054, NtLoadDriver, 8 ) \
++ SYSCALL_ENTRY( 0x0055, NtLoadKey, 16 ) \
++ SYSCALL_ENTRY( 0x0056, NtLoadKey2, 24 ) \
++ SYSCALL_ENTRY( 0x0057, NtLoadKeyEx, 64 ) \
++ SYSCALL_ENTRY( 0x0058, NtLockFile, 80 ) \
++ SYSCALL_ENTRY( 0x0059, NtLockVirtualMemory, 32 ) \
++ SYSCALL_ENTRY( 0x005a, NtMakeTemporaryObject, 8 ) \
++ SYSCALL_ENTRY( 0x005b, NtMapViewOfSection, 80 ) \
++ SYSCALL_ENTRY( 0x005c, NtMapViewOfSectionEx, 72 ) \
++ SYSCALL_ENTRY( 0x005d, NtNotifyChangeDirectoryFile, 72 ) \
++ SYSCALL_ENTRY( 0x005e, NtNotifyChangeKey, 80 ) \
++ SYSCALL_ENTRY( 0x005f, NtNotifyChangeMultipleKeys, 96 ) \
++ SYSCALL_ENTRY( 0x0060, NtOpenDirectoryObject, 24 ) \
++ SYSCALL_ENTRY( 0x0061, NtOpenEvent, 24 ) \
++ SYSCALL_ENTRY( 0x0062, NtOpenFile, 48 ) \
++ SYSCALL_ENTRY( 0x0063, NtOpenIoCompletion, 24 ) \
++ SYSCALL_ENTRY( 0x0064, NtOpenJobObject, 24 ) \
++ SYSCALL_ENTRY( 0x0065, NtOpenKey, 24 ) \
++ SYSCALL_ENTRY( 0x0066, NtOpenKeyEx, 32 ) \
++ SYSCALL_ENTRY( 0x0067, NtOpenKeyTransacted, 32 ) \
++ SYSCALL_ENTRY( 0x0068, NtOpenKeyTransactedEx, 40 ) \
++ SYSCALL_ENTRY( 0x0069, NtOpenKeyedEvent, 24 ) \
++ SYSCALL_ENTRY( 0x006a, NtOpenMutant, 24 ) \
++ SYSCALL_ENTRY( 0x006b, NtOpenProcess, 32 ) \
++ SYSCALL_ENTRY( 0x006c, NtOpenProcessToken, 24 ) \
++ SYSCALL_ENTRY( 0x006d, NtOpenProcessTokenEx, 32 ) \
++ SYSCALL_ENTRY( 0x006e, NtOpenSection, 24 ) \
++ SYSCALL_ENTRY( 0x006f, NtOpenSemaphore, 24 ) \
++ SYSCALL_ENTRY( 0x0070, NtOpenSymbolicLinkObject, 24 ) \
++ SYSCALL_ENTRY( 0x0071, NtOpenThread, 32 ) \
++ SYSCALL_ENTRY( 0x0072, NtOpenThreadToken, 32 ) \
++ SYSCALL_ENTRY( 0x0073, NtOpenThreadTokenEx, 40 ) \
++ SYSCALL_ENTRY( 0x0074, NtOpenTimer, 24 ) \
++ SYSCALL_ENTRY( 0x0075, NtPowerInformation, 40 ) \
++ SYSCALL_ENTRY( 0x0076, NtPrivilegeCheck, 24 ) \
++ SYSCALL_ENTRY( 0x0077, NtProtectVirtualMemory, 40 ) \
++ SYSCALL_ENTRY( 0x0078, NtPulseEvent, 16 ) \
++ SYSCALL_ENTRY( 0x0079, NtQueryAttributesFile, 16 ) \
++ SYSCALL_ENTRY( 0x007a, NtQueryDefaultLocale, 16 ) \
++ SYSCALL_ENTRY( 0x007b, NtQueryDefaultUILanguage, 8 ) \
++ SYSCALL_ENTRY( 0x007c, NtQueryDirectoryFile, 88 ) \
++ SYSCALL_ENTRY( 0x007d, NtQueryDirectoryObject, 56 ) \
++ SYSCALL_ENTRY( 0x007e, NtQueryEaFile, 72 ) \
++ SYSCALL_ENTRY( 0x007f, NtQueryEvent, 40 ) \
++ SYSCALL_ENTRY( 0x0080, NtQueryFullAttributesFile, 16 ) \
++ SYSCALL_ENTRY( 0x0081, NtQueryInformationAtom, 40 ) \
++ SYSCALL_ENTRY( 0x0082, NtQueryInformationFile, 40 ) \
++ SYSCALL_ENTRY( 0x0083, NtQueryInformationJobObject, 40 ) \
++ SYSCALL_ENTRY( 0x0084, NtQueryInformationProcess, 40 ) \
++ SYSCALL_ENTRY( 0x0085, NtQueryInformationThread, 40 ) \
++ SYSCALL_ENTRY( 0x0086, NtQueryInformationToken, 40 ) \
++ SYSCALL_ENTRY( 0x0087, NtQueryInstallUILanguage, 8 ) \
++ SYSCALL_ENTRY( 0x0088, NtQueryIoCompletion, 40 ) \
++ SYSCALL_ENTRY( 0x0089, NtQueryKey, 40 ) \
++ SYSCALL_ENTRY( 0x008a, NtQueryLicenseValue, 40 ) \
++ SYSCALL_ENTRY( 0x008b, NtQueryMultipleValueKey, 48 ) \
++ SYSCALL_ENTRY( 0x008c, NtQueryMutant, 40 ) \
++ SYSCALL_ENTRY( 0x008d, NtQueryObject, 40 ) \
++ SYSCALL_ENTRY( 0x008e, NtQueryPerformanceCounter, 16 ) \
++ SYSCALL_ENTRY( 0x008f, NtQuerySection, 40 ) \
++ SYSCALL_ENTRY( 0x0090, NtQuerySecurityObject, 40 ) \
++ SYSCALL_ENTRY( 0x0091, NtQuerySemaphore, 40 ) \
++ SYSCALL_ENTRY( 0x0092, NtQuerySymbolicLinkObject, 24 ) \
++ SYSCALL_ENTRY( 0x0093, NtQuerySystemEnvironmentValue, 32 ) \
++ SYSCALL_ENTRY( 0x0094, NtQuerySystemEnvironmentValueEx, 40 ) \
++ SYSCALL_ENTRY( 0x0095, NtQuerySystemInformation, 32 ) \
++ SYSCALL_ENTRY( 0x0096, NtQuerySystemInformationEx, 48 ) \
++ SYSCALL_ENTRY( 0x0097, NtQuerySystemTime, 8 ) \
++ SYSCALL_ENTRY( 0x0098, NtQueryTimer, 40 ) \
++ SYSCALL_ENTRY( 0x0099, NtQueryTimerResolution, 24 ) \
++ SYSCALL_ENTRY( 0x009a, NtQueryValueKey, 48 ) \
++ SYSCALL_ENTRY( 0x009b, NtQueryVirtualMemory, 48 ) \
++ SYSCALL_ENTRY( 0x009c, NtQueryVolumeInformationFile, 40 ) \
++ SYSCALL_ENTRY( 0x009d, NtQueueApcThread, 40 ) \
++ SYSCALL_ENTRY( 0x009e, NtRaiseException, 24 ) \
++ SYSCALL_ENTRY( 0x009f, NtRaiseHardError, 48 ) \
++ SYSCALL_ENTRY( 0x00a0, NtReadFile, 72 ) \
++ SYSCALL_ENTRY( 0x00a1, NtReadFileScatter, 72 ) \
++ SYSCALL_ENTRY( 0x00a2, NtReadVirtualMemory, 40 ) \
++ SYSCALL_ENTRY( 0x00a3, NtRegisterThreadTerminatePort, 8 ) \
++ SYSCALL_ENTRY( 0x00a4, NtReleaseKeyedEvent, 32 ) \
++ SYSCALL_ENTRY( 0x00a5, NtReleaseMutant, 16 ) \
++ SYSCALL_ENTRY( 0x00a6, NtReleaseSemaphore, 24 ) \
++ SYSCALL_ENTRY( 0x00a7, NtRemoveIoCompletion, 40 ) \
++ SYSCALL_ENTRY( 0x00a8, NtRemoveIoCompletionEx, 48 ) \
++ SYSCALL_ENTRY( 0x00a9, NtRemoveProcessDebug, 16 ) \
++ SYSCALL_ENTRY( 0x00aa, NtRenameKey, 16 ) \
++ SYSCALL_ENTRY( 0x00ab, NtReplaceKey, 24 ) \
++ SYSCALL_ENTRY( 0x00ac, NtReplyWaitReceivePort, 32 ) \
++ SYSCALL_ENTRY( 0x00ad, NtRequestWaitReplyPort, 24 ) \
++ SYSCALL_ENTRY( 0x00ae, NtResetEvent, 16 ) \
++ SYSCALL_ENTRY( 0x00af, NtResetWriteWatch, 24 ) \
++ SYSCALL_ENTRY( 0x00b0, NtRestoreKey, 24 ) \
++ SYSCALL_ENTRY( 0x00b1, NtResumeProcess, 8 ) \
++ SYSCALL_ENTRY( 0x00b2, NtResumeThread, 16 ) \
++ SYSCALL_ENTRY( 0x00b3, NtRollbackTransaction, 16 ) \
++ SYSCALL_ENTRY( 0x00b4, NtSaveKey, 16 ) \
++ SYSCALL_ENTRY( 0x00b5, NtSecureConnectPort, 72 ) \
++ SYSCALL_ENTRY( 0x00b6, NtSetContextThread, 16 ) \
++ SYSCALL_ENTRY( 0x00b7, NtSetDebugFilterState, 24 ) \
++ SYSCALL_ENTRY( 0x00b8, NtSetDefaultLocale, 16 ) \
++ SYSCALL_ENTRY( 0x00b9, NtSetDefaultUILanguage, 8 ) \
++ SYSCALL_ENTRY( 0x00ba, NtSetEaFile, 32 ) \
++ SYSCALL_ENTRY( 0x00bb, NtSetEvent, 16 ) \
++ SYSCALL_ENTRY( 0x00bc, NtSetInformationDebugObject, 40 ) \
++ SYSCALL_ENTRY( 0x00bd, NtSetInformationFile, 40 ) \
++ SYSCALL_ENTRY( 0x00be, NtSetInformationJobObject, 32 ) \
++ SYSCALL_ENTRY( 0x00bf, NtSetInformationKey, 32 ) \
++ SYSCALL_ENTRY( 0x00c0, NtSetInformationObject, 32 ) \
++ SYSCALL_ENTRY( 0x00c1, NtSetInformationProcess, 32 ) \
++ SYSCALL_ENTRY( 0x00c2, NtSetInformationThread, 32 ) \
++ SYSCALL_ENTRY( 0x00c3, NtSetInformationToken, 32 ) \
++ SYSCALL_ENTRY( 0x00c4, NtSetInformationVirtualMemory, 48 ) \
++ SYSCALL_ENTRY( 0x00c5, NtSetIntervalProfile, 16 ) \
++ SYSCALL_ENTRY( 0x00c6, NtSetIoCompletion, 40 ) \
++ SYSCALL_ENTRY( 0x00c7, NtSetLdtEntries, 32 ) \
++ SYSCALL_ENTRY( 0x00c8, NtSetSecurityObject, 24 ) \
++ SYSCALL_ENTRY( 0x00c9, NtSetSystemInformation, 24 ) \
++ SYSCALL_ENTRY( 0x00ca, NtSetSystemTime, 16 ) \
++ SYSCALL_ENTRY( 0x00cb, NtSetThreadExecutionState, 16 ) \
++ SYSCALL_ENTRY( 0x00cc, NtSetTimer, 56 ) \
++ SYSCALL_ENTRY( 0x00cd, NtSetTimerResolution, 24 ) \
++ SYSCALL_ENTRY( 0x00ce, NtSetValueKey, 48 ) \
++ SYSCALL_ENTRY( 0x00cf, NtSetVolumeInformationFile, 40 ) \
++ SYSCALL_ENTRY( 0x00d0, NtShutdownSystem, 8 ) \
++ SYSCALL_ENTRY( 0x00d1, NtSignalAndWaitForSingleObject, 32 ) \
++ SYSCALL_ENTRY( 0x00d2, NtSuspendProcess, 8 ) \
++ SYSCALL_ENTRY( 0x00d3, NtSuspendThread, 16 ) \
++ SYSCALL_ENTRY( 0x00d4, NtSystemDebugControl, 48 ) \
++ SYSCALL_ENTRY( 0x00d5, NtTerminateJobObject, 16 ) \
++ SYSCALL_ENTRY( 0x00d6, NtTerminateProcess, 16 ) \
++ SYSCALL_ENTRY( 0x00d7, NtTerminateThread, 16 ) \
++ SYSCALL_ENTRY( 0x00d8, NtTestAlert, 0 ) \
++ SYSCALL_ENTRY( 0x00d9, NtTraceControl, 48 ) \
++ SYSCALL_ENTRY( 0x00da, NtUnloadDriver, 8 ) \
++ SYSCALL_ENTRY( 0x00db, NtUnloadKey, 8 ) \
++ SYSCALL_ENTRY( 0x00dc, NtUnlockFile, 40 ) \
++ SYSCALL_ENTRY( 0x00dd, NtUnlockVirtualMemory, 32 ) \
++ SYSCALL_ENTRY( 0x00de, NtUnmapViewOfSection, 16 ) \
++ SYSCALL_ENTRY( 0x00df, NtUnmapViewOfSectionEx, 24 ) \
++ SYSCALL_ENTRY( 0x00e0, NtWaitForAlertByThreadId, 16 ) \
++ SYSCALL_ENTRY( 0x00e1, NtWaitForDebugEvent, 32 ) \
++ SYSCALL_ENTRY( 0x00e2, NtWaitForKeyedEvent, 32 ) \
++ SYSCALL_ENTRY( 0x00e3, NtWaitForMultipleObjects, 40 ) \
++ SYSCALL_ENTRY( 0x00e4, NtWaitForSingleObject, 24 ) \
++ SYSCALL_ENTRY( 0x00e5, NtWriteFile, 72 ) \
++ SYSCALL_ENTRY( 0x00e6, NtWriteFileGather, 72 ) \
++ SYSCALL_ENTRY( 0x00e7, NtWriteVirtualMemory, 40 ) \
++ SYSCALL_ENTRY( 0x00e8, NtYieldExecution, 0 ) \
++ SYSCALL_ENTRY( 0x00e9, wine_nt_to_unix_file_name, 32 ) \
++ SYSCALL_ENTRY( 0x00ea, wine_unix_to_nt_file_name, 24 )
+diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
+index 1245f1aa508..04867b91ac5 100644
+--- a/dlls/ntdll/unix/server.c
++++ b/dlls/ntdll/unix/server.c
+@@ -818,9 +818,28 @@ unsigned int server_wait( const select_op_t *select_op, data_size_t size, UINT f
+ * NtContinue (NTDLL.@)
+ */
+ NTSTATUS WINAPI NtContinue( CONTEXT *context, BOOLEAN alertable )
++{
++ /* NtContinueEx accepts both */
++ return NtContinueEx(context, (PCONTINUE_OPTIONS)(intptr_t)alertable);
++}
++
++
++/***********************************************************************
++ * NtContinueEx (NTDLL.@)
++ */
++NTSTATUS WINAPI NtContinueEx( CONTEXT *context, PCONTINUE_OPTIONS options )
+ {
+ user_apc_t apc;
+ NTSTATUS status;
++ BOOLEAN alertable;
++
++ if (options <= 0xff) {
++ alertable = (BOOLEAN)(intptr_t)options;
++ } else {
++ alertable = !!(options->ContinueFlags & CONTINUE_FLAG_TEST_ALERT);
++ /* FIXME: no idea how to handle rest of CONTINUE_OPTIONS stuff */
++ FIXME("NtContinueEx is not implemented!");
++ }
+
+ if (alertable)
+ {
+diff --git a/dlls/wow64/syscall.c b/dlls/wow64/syscall.c
+index 2af7bf75de2..438fa83c296 100644
+--- a/dlls/wow64/syscall.c
++++ b/dlls/wow64/syscall.c
+@@ -441,9 +441,19 @@ NTSTATUS WINAPI wow64_NtClose( UINT *args )
+ * wow64_NtContinue
+ */
+ NTSTATUS WINAPI wow64_NtContinue( UINT *args )
++{
++ return wow64_NtContinueEx( args );
++}
++
++
++/**********************************************************************
++ * wow64_NtContinueEx
++ */
++NTSTATUS WINAPI wow64_NtContinueEx( UINT *args )
+ {
+ void *context = get_ptr( &args );
+- BOOLEAN alertable = get_ulong( &args );
++ CONTINUE_OPTIONS *options = get_ptr( &args );
++ BOOL alertable = options > (CONTINUE_OPTIONS *)0xFF ? options->ContinueFlags & CONTINUE_FLAG_DELIVER_APC : !!options;
+
+ NTSTATUS status = get_context_return_value( context );
+ struct user_apc_frame *frame = NtCurrentTeb()->TlsSlots[WOW64_TLS_APCLIST];
+@@ -452,7 +462,7 @@ NTSTATUS WINAPI wow64_NtContinue( UINT *args )
+
+ while (frame && frame->wow_context != context) frame = frame->prev_frame;
+ NtCurrentTeb()->TlsSlots[WOW64_TLS_APCLIST] = frame ? frame->prev_frame : NULL;
+- if (frame) NtContinue( frame->context, alertable );
++ if (frame) NtContinueEx( frame->context, options );
+
+ if (alertable) NtTestAlert();
+ return status;
+diff --git a/include/winternl.h b/include/winternl.h
+index ff8756211a1..a3325f5c398 100644
+--- a/include/winternl.h
++++ b/include/winternl.h
+@@ -4283,6 +4283,26 @@ typedef struct _API_SET_VALUE_ENTRY
+ ULONG ValueLength;
+ } API_SET_VALUE_ENTRY;
+
++typedef enum _CONTINUE_TYPE
++{
++ CONTINUE_UNWIND,
++ CONTINUE_RESUME,
++ CONTINUE_LONGJUMP,
++ CONTINUE_SET,
++ CONTINUE_LAST,
++} CONTINUE_TYPE;
++
++typedef struct _CONTINUE_OPTIONS
++{
++ CONTINUE_TYPE ContinueType;
++ ULONG ContinueFlags;
++ ULONGLONG Reserved[2];
++} CONTINUE_OPTIONS, *PCONTINUE_OPTIONS;
++
++#define CONTINUE_FLAG_TEST_ALERT 0x00000001
++#define CONTINUE_FLAG_DELIVER_APC 0x00000002
++
++
+ /***********************************************************************
+ * Function declarations
+ */
+@@ -4358,6 +4378,7 @@ NTSYSAPI NTSTATUS WINAPI NtCompareObjects(HANDLE,HANDLE);
+ NTSYSAPI NTSTATUS WINAPI NtCompleteConnectPort(HANDLE);
+ NTSYSAPI NTSTATUS WINAPI NtConnectPort(PHANDLE,PUNICODE_STRING,PSECURITY_QUALITY_OF_SERVICE,PLPC_SECTION_WRITE,PLPC_SECTION_READ,PULONG,PVOID,PULONG);
+ NTSYSAPI NTSTATUS WINAPI NtContinue(PCONTEXT,BOOLEAN);
++NTSYSAPI NTSTATUS WINAPI NtContinueEx(PCONTEXT,PCONTINUE_OPTIONS); /* PCONTINUE_OPTIONS can also be BOOLEAN */
+ NTSYSAPI NTSTATUS WINAPI NtCreateDebugObject(HANDLE*,ACCESS_MASK,OBJECT_ATTRIBUTES*,ULONG);
+ NTSYSAPI NTSTATUS WINAPI NtCreateDirectoryObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
+ NTSYSAPI NTSTATUS WINAPI NtCreateEvent(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *,EVENT_TYPE,BOOLEAN);
+--
+GitLab
+
diff --git a/PKGBUILD b/PKGBUILD
index 287c14ec6156..283ce67a4445 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,7 +4,7 @@
pkgname=wine-lol-staging
pkgver=8.21
_winever=8.21
-pkgrel=1
+pkgrel=2
pkgdesc='A compatibility layer for running Windows programs (staging branch) with LoL patches'
arch=('x86_64')
url='https://wiki.winehq.org/Wine-Staging'
@@ -20,6 +20,7 @@ source=("git+https://gitlab.winehq.org/wine/wine-staging.git#tag=v${_winever}"
"0008-ntdll-nopguard-call_vectored_handlers.patch"
"0009-kernel32-dont-create-console-when-not-cui.patch"
"0011-ntdll-signal_set_full_context-amd64.patch"
+ "0012-ntdll-implement-ntcontinueex.patch"
)
sha256sums=('SKIP'
@@ -29,6 +30,7 @@ sha256sums=('SKIP'
'2075ddc417ddd11954f76be753c88e04db28f0b3937e60508f178630dd5763eb'
'b19443ba1e01014ab478b03ac84797df2d481432798259371d94e4ba2e7b317c'
'8dfef7fdbeb4bf503f72c2b3a15033849f67197d6d9571135369b4b0183ea213'
+ '8bb15743e589f7505817309122e04af8cb99e12459a9b4ef05b14eeef10ccc83'
)
depends=(
@@ -135,6 +137,10 @@ prepare() {
echo 'Apply 00011-ntdll-signal_set_full_context-amd64.patch'
patch -Np1 < "${srcdir}/0011-ntdll-signal_set_full_context-amd64.patch"
+ # Missing syscall introduced in windows 10
+ echo 'Apply 0012-ntdll-implement-ntcontinueex.patch'
+ patch -Np1 < "${srcdir}/0012-ntdll-implement-ntcontinueex.patch"
+
# Clean up .orig files
echo "Clean up .orig files"
find ./ -name '*.orig' -delete