From: Rose Hellsing <rose@pinkro.se> Some application call NtCreateWaitablePort, which made them crash since it wasn't available. By implementing a stub applications will at least not completely crash. Tested with StarMoney 10, which now throws an internal error instead of crashing. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=59494 --- dlls/ntdll/ntdll.spec | 4 +- dlls/ntdll/ntsyscalls.h | 490 ++++++++++++++++++------------------ dlls/ntdll/signal_arm64ec.c | 1 + dlls/ntdll/unix/sync.c | 9 + include/winternl.h | 1 + 5 files changed, 259 insertions(+), 246 deletions(-) diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index f396c334e2d..5aa620bd60b 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -206,7 +206,7 @@ @ stdcall -syscall NtCreateToken(ptr long ptr long ptr ptr ptr ptr ptr ptr ptr ptr ptr) @ stdcall -syscall NtCreateTransaction(ptr long ptr ptr long long long long ptr ptr) @ stdcall -syscall NtCreateUserProcess(ptr ptr long long ptr ptr long long ptr ptr ptr) -# @ stub NtCreateWaitablePort +@ stdcall -syscall NtCreateWaitablePort(ptr ptr long long long) @ stdcall -arch=i386 NtCurrentTeb() @ stdcall -syscall NtDebugActiveProcess(long long) @ stdcall -syscall NtDebugContinue(long ptr long) @@ -1280,7 +1280,7 @@ @ stdcall -private ZwCreateToken(ptr long ptr long ptr ptr ptr ptr ptr ptr ptr ptr ptr) NtCreateToken @ stdcall -private ZwCreateTransaction(ptr long ptr ptr long long long long ptr ptr) NtCreateTransaction @ stdcall -private ZwCreateUserProcess(ptr ptr long long ptr ptr long long ptr ptr ptr) NtCreateUserProcess -# @ stub ZwCreateWaitablePort +@ stdcall -private ZwCreateWaitablePort(ptr ptr long long long) NtCreateWaitablePort @ stdcall -private ZwDebugActiveProcess(long long) NtDebugActiveProcess @ stdcall -private ZwDebugContinue(long ptr long) NtDebugContinue @ stdcall -private ZwDelayExecution(long ptr) NtDelayExecution diff --git a/dlls/ntdll/ntsyscalls.h b/dlls/ntdll/ntsyscalls.h index ba7cc060c66..d50c7c17b6b 100644 --- a/dlls/ntdll/ntsyscalls.h +++ b/dlls/ntdll/ntsyscalls.h @@ -139,132 +139,133 @@ SYSCALL_ENTRY( 0x0087, NtCreateToken, 52 ) \ SYSCALL_ENTRY( 0x0088, NtCreateTransaction, 40 ) \ SYSCALL_ENTRY( 0x0089, NtCreateUserProcess, 44 ) \ - SYSCALL_ENTRY( 0x008a, NtDebugActiveProcess, 8 ) \ - SYSCALL_ENTRY( 0x008b, NtDebugContinue, 12 ) \ - SYSCALL_ENTRY( 0x008c, NtDeleteAtom, 4 ) \ - SYSCALL_ENTRY( 0x008d, NtDeleteFile, 4 ) \ - SYSCALL_ENTRY( 0x008e, NtDeleteKey, 4 ) \ - SYSCALL_ENTRY( 0x008f, NtDeleteValueKey, 8 ) \ - SYSCALL_ENTRY( 0x0090, NtDisplayString, 4 ) \ - SYSCALL_ENTRY( 0x0091, NtFilterToken, 24 ) \ - SYSCALL_ENTRY( 0x0092, NtFlushBuffersFileEx, 20 ) \ - SYSCALL_ENTRY( 0x0093, NtFlushInstructionCache, 12 ) \ - SYSCALL_ENTRY( 0x0094, NtFlushKey, 4 ) \ - SYSCALL_ENTRY( 0x0095, NtFlushProcessWriteBuffers, 0 ) \ - SYSCALL_ENTRY( 0x0096, NtFlushVirtualMemory, 16 ) \ - SYSCALL_ENTRY( 0x0097, NtGetContextThread, 8 ) \ - SYSCALL_ENTRY( 0x0098, NtGetCurrentProcessorNumber, 0 ) \ - SYSCALL_ENTRY( 0x0099, NtGetNextProcess, 20 ) \ - SYSCALL_ENTRY( 0x009a, NtGetNextThread, 24 ) \ - SYSCALL_ENTRY( 0x009b, NtGetNlsSectionPtr, 20 ) \ - SYSCALL_ENTRY( 0x009c, NtGetWriteWatch, 28 ) \ - SYSCALL_ENTRY( 0x009d, NtImpersonateAnonymousToken, 4 ) \ - SYSCALL_ENTRY( 0x009e, NtInitializeNlsFiles, 12 ) \ - SYSCALL_ENTRY( 0x009f, NtInitiatePowerAction, 16 ) \ - SYSCALL_ENTRY( 0x00a0, NtListenPort, 8 ) \ - SYSCALL_ENTRY( 0x00a1, NtLoadDriver, 4 ) \ - SYSCALL_ENTRY( 0x00a2, NtLoadKey, 8 ) \ - SYSCALL_ENTRY( 0x00a3, NtLoadKey2, 12 ) \ - SYSCALL_ENTRY( 0x00a4, NtLoadKeyEx, 32 ) \ - SYSCALL_ENTRY( 0x00a5, NtLockFile, 40 ) \ + SYSCALL_ENTRY( 0x008a, NtCreateWaitablePort, 20 ) \ + SYSCALL_ENTRY( 0x008b, NtDebugActiveProcess, 8 ) \ + SYSCALL_ENTRY( 0x008c, NtDebugContinue, 12 ) \ + SYSCALL_ENTRY( 0x008d, NtDeleteAtom, 4 ) \ + SYSCALL_ENTRY( 0x008e, NtDeleteFile, 4 ) \ + SYSCALL_ENTRY( 0x008f, NtDeleteKey, 4 ) \ + SYSCALL_ENTRY( 0x0090, NtDeleteValueKey, 8 ) \ + SYSCALL_ENTRY( 0x0091, NtDisplayString, 4 ) \ + SYSCALL_ENTRY( 0x0092, NtFilterToken, 24 ) \ + SYSCALL_ENTRY( 0x0093, NtFlushBuffersFileEx, 20 ) \ + SYSCALL_ENTRY( 0x0094, NtFlushInstructionCache, 12 ) \ + SYSCALL_ENTRY( 0x0095, NtFlushKey, 4 ) \ + SYSCALL_ENTRY( 0x0096, NtFlushProcessWriteBuffers, 0 ) \ + SYSCALL_ENTRY( 0x0097, NtFlushVirtualMemory, 16 ) \ + SYSCALL_ENTRY( 0x0098, NtGetContextThread, 8 ) \ + SYSCALL_ENTRY( 0x0099, NtGetCurrentProcessorNumber, 0 ) \ + SYSCALL_ENTRY( 0x009a, NtGetNextProcess, 20 ) \ + SYSCALL_ENTRY( 0x009b, NtGetNextThread, 24 ) \ + SYSCALL_ENTRY( 0x009c, NtGetNlsSectionPtr, 20 ) \ + SYSCALL_ENTRY( 0x009d, NtGetWriteWatch, 28 ) \ + SYSCALL_ENTRY( 0x009e, NtImpersonateAnonymousToken, 4 ) \ + SYSCALL_ENTRY( 0x009f, NtInitializeNlsFiles, 12 ) \ + SYSCALL_ENTRY( 0x00a0, NtInitiatePowerAction, 16 ) \ + SYSCALL_ENTRY( 0x00a1, NtListenPort, 8 ) \ + SYSCALL_ENTRY( 0x00a2, NtLoadDriver, 4 ) \ + SYSCALL_ENTRY( 0x00a3, NtLoadKey, 8 ) \ + SYSCALL_ENTRY( 0x00a4, NtLoadKey2, 12 ) \ + SYSCALL_ENTRY( 0x00a5, NtLoadKeyEx, 32 ) \ SYSCALL_ENTRY( 0x00a6, NtCreateDebugObject, 16 ) \ - SYSCALL_ENTRY( 0x00a7, NtLockVirtualMemory, 16 ) \ - SYSCALL_ENTRY( 0x00a8, NtMakePermanentObject, 4 ) \ - SYSCALL_ENTRY( 0x00a9, NtMakeTemporaryObject, 4 ) \ - SYSCALL_ENTRY( 0x00aa, NtMapViewOfSectionEx, 36 ) \ - SYSCALL_ENTRY( 0x00ab, NtNotifyChangeDirectoryFile, 36 ) \ - SYSCALL_ENTRY( 0x00ac, NtNotifyChangeKey, 40 ) \ - SYSCALL_ENTRY( 0x00ad, NtNotifyChangeMultipleKeys, 48 ) \ - SYSCALL_ENTRY( 0x00ae, NtOpenIoCompletion, 12 ) \ - SYSCALL_ENTRY( 0x00af, NtOpenJobObject, 12 ) \ - SYSCALL_ENTRY( 0x00b0, NtOpenKeyEx, 16 ) \ - SYSCALL_ENTRY( 0x00b1, NtOpenKeyTransacted, 16 ) \ - SYSCALL_ENTRY( 0x00b2, NtOpenKeyTransactedEx, 20 ) \ - SYSCALL_ENTRY( 0x00b3, NtOpenKeyedEvent, 12 ) \ - SYSCALL_ENTRY( 0x00b4, NtOpenMutant, 12 ) \ - SYSCALL_ENTRY( 0x00b5, NtOpenProcessToken, 12 ) \ - SYSCALL_ENTRY( 0x00b6, NtOpenSemaphore, 12 ) \ - SYSCALL_ENTRY( 0x00b7, NtOpenSymbolicLinkObject, 12 ) \ - SYSCALL_ENTRY( 0x00b8, NtOpenThread, 16 ) \ - SYSCALL_ENTRY( 0x00b9, NtOpenTimer, 12 ) \ - SYSCALL_ENTRY( 0x00ba, NtPrivilegeCheck, 12 ) \ - SYSCALL_ENTRY( 0x00bb, NtPulseEvent, 8 ) \ - SYSCALL_ENTRY( 0x00bc, NtQueryDirectoryObject, 28 ) \ - SYSCALL_ENTRY( 0x00bd, NtQueryEaFile, 36 ) \ - SYSCALL_ENTRY( 0x00be, NtQueryFullAttributesFile, 8 ) \ - SYSCALL_ENTRY( 0x00bf, NtQueryInformationAtom, 20 ) \ - SYSCALL_ENTRY( 0x00c0, NtQueryInformationJobObject, 20 ) \ - SYSCALL_ENTRY( 0x00c1, NtQueryInstallUILanguage, 4 ) \ - SYSCALL_ENTRY( 0x00c2, NtQueryIoCompletion, 20 ) \ - SYSCALL_ENTRY( 0x00c3, NtQueryLicenseValue, 20 ) \ - SYSCALL_ENTRY( 0x00c4, NtQueryMultipleValueKey, 24 ) \ - SYSCALL_ENTRY( 0x00c5, NtQueryMutant, 20 ) \ - SYSCALL_ENTRY( 0x00c6, NtQuerySecurityObject, 20 ) \ - SYSCALL_ENTRY( 0x00c7, NtQuerySemaphore, 20 ) \ - SYSCALL_ENTRY( 0x00c8, NtQuerySymbolicLinkObject, 12 ) \ - SYSCALL_ENTRY( 0x00c9, NtQuerySystemEnvironmentValue, 16 ) \ - SYSCALL_ENTRY( 0x00ca, NtQuerySystemEnvironmentValueEx, 20 ) \ - SYSCALL_ENTRY( 0x00cb, NtQuerySystemInformationEx, 24 ) \ - SYSCALL_ENTRY( 0x00cc, NtQueryTimerResolution, 12 ) \ - SYSCALL_ENTRY( 0x00cd, NtQueueApcThreadEx, 24 ) \ - SYSCALL_ENTRY( 0x00ce, NtQueueApcThreadEx2, 28 ) \ - SYSCALL_ENTRY( 0x00cf, NtRaiseException, 12 ) \ - SYSCALL_ENTRY( 0x00d0, NtRaiseHardError, 24 ) \ - SYSCALL_ENTRY( 0x00d1, NtRegisterThreadTerminatePort, 4 ) \ - SYSCALL_ENTRY( 0x00d2, NtReleaseKeyedEvent, 16 ) \ - SYSCALL_ENTRY( 0x00d3, NtRemoveIoCompletionEx, 24 ) \ - SYSCALL_ENTRY( 0x00d4, NtRemoveProcessDebug, 8 ) \ - SYSCALL_ENTRY( 0x00d5, NtRenameKey, 8 ) \ - SYSCALL_ENTRY( 0x00d6, NtReplaceKey, 12 ) \ - SYSCALL_ENTRY( 0x00d7, NtResetEvent, 8 ) \ - SYSCALL_ENTRY( 0x00d8, NtResetWriteWatch, 12 ) \ - SYSCALL_ENTRY( 0x00d9, NtRestoreKey, 12 ) \ - SYSCALL_ENTRY( 0x00da, NtResumeProcess, 4 ) \ - SYSCALL_ENTRY( 0x00db, NtRollbackTransaction, 8 ) \ - SYSCALL_ENTRY( 0x00dc, NtSaveKey, 8 ) \ - SYSCALL_ENTRY( 0x00dd, NtSecureConnectPort, 36 ) \ - SYSCALL_ENTRY( 0x00de, NtSetContextThread, 8 ) \ - SYSCALL_ENTRY( 0x00df, NtSetDebugFilterState, 12 ) \ - SYSCALL_ENTRY( 0x00e0, NtSetDefaultLocale, 8 ) \ - SYSCALL_ENTRY( 0x00e1, NtSetDefaultUILanguage, 4 ) \ - SYSCALL_ENTRY( 0x00e2, NtSetEaFile, 16 ) \ - SYSCALL_ENTRY( 0x00e3, NtSetInformationDebugObject, 20 ) \ - SYSCALL_ENTRY( 0x00e4, NtSetInformationJobObject, 16 ) \ - SYSCALL_ENTRY( 0x00e5, NtSetInformationKey, 16 ) \ - SYSCALL_ENTRY( 0x00e6, NtSetInformationToken, 16 ) \ - SYSCALL_ENTRY( 0x00e7, NtSetInformationVirtualMemory, 24 ) \ - SYSCALL_ENTRY( 0x00e8, NtSetIntervalProfile, 8 ) \ - SYSCALL_ENTRY( 0x00e9, NtSetIoCompletion, 20 ) \ - SYSCALL_ENTRY( 0x00ea, NtSetIoCompletionEx, 24 ) \ - SYSCALL_ENTRY( 0x00eb, NtSetLdtEntries, 24 ) \ - SYSCALL_ENTRY( 0x00ec, NtSetSecurityObject, 12 ) \ - SYSCALL_ENTRY( 0x00ed, NtSetSystemInformation, 12 ) \ - SYSCALL_ENTRY( 0x00ee, NtSetSystemTime, 8 ) \ - SYSCALL_ENTRY( 0x00ef, NtSetThreadExecutionState, 8 ) \ - SYSCALL_ENTRY( 0x00f0, NtSetTimerResolution, 12 ) \ - SYSCALL_ENTRY( 0x00f1, NtSetVolumeInformationFile, 20 ) \ - SYSCALL_ENTRY( 0x00f2, NtShutdownSystem, 4 ) \ - SYSCALL_ENTRY( 0x00f3, NtSignalAndWaitForSingleObject, 16 ) \ - SYSCALL_ENTRY( 0x00f4, NtSuspendProcess, 4 ) \ - SYSCALL_ENTRY( 0x00f5, NtSuspendThread, 8 ) \ - SYSCALL_ENTRY( 0x00f6, NtSystemDebugControl, 24 ) \ - SYSCALL_ENTRY( 0x00f7, NtTerminateJobObject, 8 ) \ - SYSCALL_ENTRY( 0x00f8, NtTestAlert, 0 ) \ - SYSCALL_ENTRY( 0x00f9, NtTraceControl, 24 ) \ - SYSCALL_ENTRY( 0x00fa, NtUnloadDriver, 4 ) \ - SYSCALL_ENTRY( 0x00fb, NtUnloadKey, 4 ) \ - SYSCALL_ENTRY( 0x00fc, NtUnlockFile, 20 ) \ - SYSCALL_ENTRY( 0x00fd, NtUnlockVirtualMemory, 16 ) \ - SYSCALL_ENTRY( 0x00fe, NtUnmapViewOfSectionEx, 12 ) \ - SYSCALL_ENTRY( 0x00ff, NtWaitForAlertByThreadId, 8 ) \ - SYSCALL_ENTRY( 0x0100, NtWaitForDebugEvent, 16 ) \ - SYSCALL_ENTRY( 0x0101, NtWaitForKeyedEvent, 16 ) \ - SYSCALL_ENTRY( 0x0102, NtWow64AllocateVirtualMemory64, 28 ) \ - SYSCALL_ENTRY( 0x0103, NtWow64GetNativeSystemInformation, 16 ) \ - SYSCALL_ENTRY( 0x0104, NtWow64IsProcessorFeaturePresent, 4 ) \ - SYSCALL_ENTRY( 0x0105, NtWow64QueryInformationProcess64, 20 ) \ - SYSCALL_ENTRY( 0x0106, NtWow64ReadVirtualMemory64, 28 ) \ - SYSCALL_ENTRY( 0x0107, NtWow64WriteVirtualMemory64, 28 ) + SYSCALL_ENTRY( 0x00a7, NtLockFile, 40 ) \ + SYSCALL_ENTRY( 0x00a8, NtLockVirtualMemory, 16 ) \ + SYSCALL_ENTRY( 0x00a9, NtMakePermanentObject, 4 ) \ + SYSCALL_ENTRY( 0x00aa, NtMakeTemporaryObject, 4 ) \ + SYSCALL_ENTRY( 0x00ab, NtMapViewOfSectionEx, 36 ) \ + SYSCALL_ENTRY( 0x00ac, NtNotifyChangeDirectoryFile, 36 ) \ + SYSCALL_ENTRY( 0x00ad, NtNotifyChangeKey, 40 ) \ + SYSCALL_ENTRY( 0x00ae, NtNotifyChangeMultipleKeys, 48 ) \ + SYSCALL_ENTRY( 0x00af, NtOpenIoCompletion, 12 ) \ + SYSCALL_ENTRY( 0x00b0, NtOpenJobObject, 12 ) \ + SYSCALL_ENTRY( 0x00b1, NtOpenKeyEx, 16 ) \ + SYSCALL_ENTRY( 0x00b2, NtOpenKeyTransacted, 16 ) \ + SYSCALL_ENTRY( 0x00b3, NtOpenKeyTransactedEx, 20 ) \ + SYSCALL_ENTRY( 0x00b4, NtOpenKeyedEvent, 12 ) \ + SYSCALL_ENTRY( 0x00b5, NtOpenMutant, 12 ) \ + SYSCALL_ENTRY( 0x00b6, NtOpenProcessToken, 12 ) \ + SYSCALL_ENTRY( 0x00b7, NtOpenSemaphore, 12 ) \ + SYSCALL_ENTRY( 0x00b8, NtOpenSymbolicLinkObject, 12 ) \ + SYSCALL_ENTRY( 0x00b9, NtOpenThread, 16 ) \ + SYSCALL_ENTRY( 0x00ba, NtOpenTimer, 12 ) \ + SYSCALL_ENTRY( 0x00bb, NtPrivilegeCheck, 12 ) \ + SYSCALL_ENTRY( 0x00bc, NtPulseEvent, 8 ) \ + SYSCALL_ENTRY( 0x00bd, NtQueryDirectoryObject, 28 ) \ + SYSCALL_ENTRY( 0x00be, NtQueryEaFile, 36 ) \ + SYSCALL_ENTRY( 0x00bf, NtQueryFullAttributesFile, 8 ) \ + SYSCALL_ENTRY( 0x00c0, NtQueryInformationAtom, 20 ) \ + SYSCALL_ENTRY( 0x00c1, NtQueryInformationJobObject, 20 ) \ + SYSCALL_ENTRY( 0x00c2, NtQueryInstallUILanguage, 4 ) \ + SYSCALL_ENTRY( 0x00c3, NtQueryIoCompletion, 20 ) \ + SYSCALL_ENTRY( 0x00c4, NtQueryLicenseValue, 20 ) \ + SYSCALL_ENTRY( 0x00c5, NtQueryMultipleValueKey, 24 ) \ + SYSCALL_ENTRY( 0x00c6, NtQueryMutant, 20 ) \ + SYSCALL_ENTRY( 0x00c7, NtQuerySecurityObject, 20 ) \ + SYSCALL_ENTRY( 0x00c8, NtQuerySemaphore, 20 ) \ + SYSCALL_ENTRY( 0x00c9, NtQuerySymbolicLinkObject, 12 ) \ + SYSCALL_ENTRY( 0x00ca, NtQuerySystemEnvironmentValue, 16 ) \ + SYSCALL_ENTRY( 0x00cb, NtQuerySystemEnvironmentValueEx, 20 ) \ + SYSCALL_ENTRY( 0x00cc, NtQuerySystemInformationEx, 24 ) \ + SYSCALL_ENTRY( 0x00cd, NtQueryTimerResolution, 12 ) \ + SYSCALL_ENTRY( 0x00ce, NtQueueApcThreadEx, 24 ) \ + SYSCALL_ENTRY( 0x00cf, NtQueueApcThreadEx2, 28 ) \ + SYSCALL_ENTRY( 0x00d0, NtRaiseException, 12 ) \ + SYSCALL_ENTRY( 0x00d1, NtRaiseHardError, 24 ) \ + SYSCALL_ENTRY( 0x00d2, NtRegisterThreadTerminatePort, 4 ) \ + SYSCALL_ENTRY( 0x00d3, NtReleaseKeyedEvent, 16 ) \ + SYSCALL_ENTRY( 0x00d4, NtRemoveIoCompletionEx, 24 ) \ + SYSCALL_ENTRY( 0x00d5, NtRemoveProcessDebug, 8 ) \ + SYSCALL_ENTRY( 0x00d6, NtRenameKey, 8 ) \ + SYSCALL_ENTRY( 0x00d7, NtReplaceKey, 12 ) \ + SYSCALL_ENTRY( 0x00d8, NtResetEvent, 8 ) \ + SYSCALL_ENTRY( 0x00d9, NtResetWriteWatch, 12 ) \ + SYSCALL_ENTRY( 0x00da, NtRestoreKey, 12 ) \ + SYSCALL_ENTRY( 0x00db, NtResumeProcess, 4 ) \ + SYSCALL_ENTRY( 0x00dc, NtRollbackTransaction, 8 ) \ + SYSCALL_ENTRY( 0x00dd, NtSaveKey, 8 ) \ + SYSCALL_ENTRY( 0x00de, NtSecureConnectPort, 36 ) \ + SYSCALL_ENTRY( 0x00df, NtSetContextThread, 8 ) \ + SYSCALL_ENTRY( 0x00e0, NtSetDebugFilterState, 12 ) \ + SYSCALL_ENTRY( 0x00e1, NtSetDefaultLocale, 8 ) \ + SYSCALL_ENTRY( 0x00e2, NtSetDefaultUILanguage, 4 ) \ + SYSCALL_ENTRY( 0x00e3, NtSetEaFile, 16 ) \ + SYSCALL_ENTRY( 0x00e4, NtSetInformationDebugObject, 20 ) \ + SYSCALL_ENTRY( 0x00e5, NtSetInformationJobObject, 16 ) \ + SYSCALL_ENTRY( 0x00e6, NtSetInformationKey, 16 ) \ + SYSCALL_ENTRY( 0x00e7, NtSetInformationToken, 16 ) \ + SYSCALL_ENTRY( 0x00e8, NtSetInformationVirtualMemory, 24 ) \ + SYSCALL_ENTRY( 0x00e9, NtSetIntervalProfile, 8 ) \ + SYSCALL_ENTRY( 0x00ea, NtSetIoCompletion, 20 ) \ + SYSCALL_ENTRY( 0x00eb, NtSetIoCompletionEx, 24 ) \ + SYSCALL_ENTRY( 0x00ec, NtSetLdtEntries, 24 ) \ + SYSCALL_ENTRY( 0x00ed, NtSetSecurityObject, 12 ) \ + SYSCALL_ENTRY( 0x00ee, NtSetSystemInformation, 12 ) \ + SYSCALL_ENTRY( 0x00ef, NtSetSystemTime, 8 ) \ + SYSCALL_ENTRY( 0x00f0, NtSetThreadExecutionState, 8 ) \ + SYSCALL_ENTRY( 0x00f1, NtSetTimerResolution, 12 ) \ + SYSCALL_ENTRY( 0x00f2, NtSetVolumeInformationFile, 20 ) \ + SYSCALL_ENTRY( 0x00f3, NtShutdownSystem, 4 ) \ + SYSCALL_ENTRY( 0x00f4, NtSignalAndWaitForSingleObject, 16 ) \ + SYSCALL_ENTRY( 0x00f5, NtSuspendProcess, 4 ) \ + SYSCALL_ENTRY( 0x00f6, NtSuspendThread, 8 ) \ + SYSCALL_ENTRY( 0x00f7, NtSystemDebugControl, 24 ) \ + SYSCALL_ENTRY( 0x00f8, NtTerminateJobObject, 8 ) \ + SYSCALL_ENTRY( 0x00f9, NtTestAlert, 0 ) \ + SYSCALL_ENTRY( 0x00fa, NtTraceControl, 24 ) \ + SYSCALL_ENTRY( 0x00fb, NtUnloadDriver, 4 ) \ + SYSCALL_ENTRY( 0x00fc, NtUnloadKey, 4 ) \ + SYSCALL_ENTRY( 0x00fd, NtUnlockFile, 20 ) \ + SYSCALL_ENTRY( 0x00fe, NtUnlockVirtualMemory, 16 ) \ + SYSCALL_ENTRY( 0x00ff, NtUnmapViewOfSectionEx, 12 ) \ + SYSCALL_ENTRY( 0x0100, NtWaitForAlertByThreadId, 8 ) \ + SYSCALL_ENTRY( 0x0101, NtWaitForDebugEvent, 16 ) \ + SYSCALL_ENTRY( 0x0102, NtWaitForKeyedEvent, 16 ) \ + SYSCALL_ENTRY( 0x0103, NtWow64AllocateVirtualMemory64, 28 ) \ + SYSCALL_ENTRY( 0x0104, NtWow64GetNativeSystemInformation, 16 ) \ + SYSCALL_ENTRY( 0x0105, NtWow64IsProcessorFeaturePresent, 4 ) \ + SYSCALL_ENTRY( 0x0106, NtWow64QueryInformationProcess64, 20 ) \ + SYSCALL_ENTRY( 0x0107, NtWow64ReadVirtualMemory64, 28 ) \ + SYSCALL_ENTRY( 0x0108, NtWow64WriteVirtualMemory64, 28 ) #ifdef _WIN64 #define ALL_SYSCALLS \ SYSCALL_ENTRY( 0x0000, NtAccessCheck, 64 ) \ @@ -405,126 +406,127 @@ SYSCALL_ENTRY( 0x0087, NtCreateToken, 104 ) \ SYSCALL_ENTRY( 0x0088, NtCreateTransaction, 80 ) \ SYSCALL_ENTRY( 0x0089, NtCreateUserProcess, 88 ) \ - SYSCALL_ENTRY( 0x008a, NtDebugActiveProcess, 16 ) \ - SYSCALL_ENTRY( 0x008b, NtDebugContinue, 24 ) \ - SYSCALL_ENTRY( 0x008c, NtDeleteAtom, 8 ) \ - SYSCALL_ENTRY( 0x008d, NtDeleteFile, 8 ) \ - SYSCALL_ENTRY( 0x008e, NtDeleteKey, 8 ) \ - SYSCALL_ENTRY( 0x008f, NtDeleteValueKey, 16 ) \ - SYSCALL_ENTRY( 0x0090, NtDisplayString, 8 ) \ - SYSCALL_ENTRY( 0x0091, NtFilterToken, 48 ) \ - SYSCALL_ENTRY( 0x0092, NtFlushBuffersFileEx, 40 ) \ - SYSCALL_ENTRY( 0x0093, NtFlushInstructionCache, 24 ) \ - SYSCALL_ENTRY( 0x0094, NtFlushKey, 8 ) \ - SYSCALL_ENTRY( 0x0095, NtFlushProcessWriteBuffers, 0 ) \ - SYSCALL_ENTRY( 0x0096, NtFlushVirtualMemory, 32 ) \ - SYSCALL_ENTRY( 0x0097, NtGetContextThread, 16 ) \ - SYSCALL_ENTRY( 0x0098, NtGetCurrentProcessorNumber, 0 ) \ - SYSCALL_ENTRY( 0x0099, NtGetNextProcess, 40 ) \ - SYSCALL_ENTRY( 0x009a, NtGetNextThread, 48 ) \ - SYSCALL_ENTRY( 0x009b, NtGetNlsSectionPtr, 40 ) \ - SYSCALL_ENTRY( 0x009c, NtGetWriteWatch, 56 ) \ - SYSCALL_ENTRY( 0x009d, NtImpersonateAnonymousToken, 8 ) \ - SYSCALL_ENTRY( 0x009e, NtInitializeNlsFiles, 24 ) \ - SYSCALL_ENTRY( 0x009f, NtInitiatePowerAction, 32 ) \ - SYSCALL_ENTRY( 0x00a0, NtListenPort, 16 ) \ - SYSCALL_ENTRY( 0x00a1, NtLoadDriver, 8 ) \ - SYSCALL_ENTRY( 0x00a2, NtLoadKey, 16 ) \ - SYSCALL_ENTRY( 0x00a3, NtLoadKey2, 24 ) \ - SYSCALL_ENTRY( 0x00a4, NtLoadKeyEx, 64 ) \ - SYSCALL_ENTRY( 0x00a5, NtLockFile, 80 ) \ + SYSCALL_ENTRY( 0x008a, NtCreateWaitablePort, 40 ) \ + SYSCALL_ENTRY( 0x008b, NtDebugActiveProcess, 16 ) \ + SYSCALL_ENTRY( 0x008c, NtDebugContinue, 24 ) \ + SYSCALL_ENTRY( 0x008d, NtDeleteAtom, 8 ) \ + SYSCALL_ENTRY( 0x008e, NtDeleteFile, 8 ) \ + SYSCALL_ENTRY( 0x008f, NtDeleteKey, 8 ) \ + SYSCALL_ENTRY( 0x0090, NtDeleteValueKey, 16 ) \ + SYSCALL_ENTRY( 0x0091, NtDisplayString, 8 ) \ + SYSCALL_ENTRY( 0x0092, NtFilterToken, 48 ) \ + SYSCALL_ENTRY( 0x0093, NtFlushBuffersFileEx, 40 ) \ + SYSCALL_ENTRY( 0x0094, NtFlushInstructionCache, 24 ) \ + SYSCALL_ENTRY( 0x0095, NtFlushKey, 8 ) \ + SYSCALL_ENTRY( 0x0096, NtFlushProcessWriteBuffers, 0 ) \ + SYSCALL_ENTRY( 0x0097, NtFlushVirtualMemory, 32 ) \ + SYSCALL_ENTRY( 0x0098, NtGetContextThread, 16 ) \ + SYSCALL_ENTRY( 0x0099, NtGetCurrentProcessorNumber, 0 ) \ + SYSCALL_ENTRY( 0x009a, NtGetNextProcess, 40 ) \ + SYSCALL_ENTRY( 0x009b, NtGetNextThread, 48 ) \ + SYSCALL_ENTRY( 0x009c, NtGetNlsSectionPtr, 40 ) \ + SYSCALL_ENTRY( 0x009d, NtGetWriteWatch, 56 ) \ + SYSCALL_ENTRY( 0x009e, NtImpersonateAnonymousToken, 8 ) \ + SYSCALL_ENTRY( 0x009f, NtInitializeNlsFiles, 24 ) \ + SYSCALL_ENTRY( 0x00a0, NtInitiatePowerAction, 32 ) \ + SYSCALL_ENTRY( 0x00a1, NtListenPort, 16 ) \ + SYSCALL_ENTRY( 0x00a2, NtLoadDriver, 8 ) \ + SYSCALL_ENTRY( 0x00a3, NtLoadKey, 16 ) \ + SYSCALL_ENTRY( 0x00a4, NtLoadKey2, 24 ) \ + SYSCALL_ENTRY( 0x00a5, NtLoadKeyEx, 64 ) \ SYSCALL_ENTRY( 0x00a6, NtCreateDebugObject, 32 ) \ - SYSCALL_ENTRY( 0x00a7, NtLockVirtualMemory, 32 ) \ - SYSCALL_ENTRY( 0x00a8, NtMakePermanentObject, 8 ) \ - SYSCALL_ENTRY( 0x00a9, NtMakeTemporaryObject, 8 ) \ - SYSCALL_ENTRY( 0x00aa, NtMapViewOfSectionEx, 72 ) \ - SYSCALL_ENTRY( 0x00ab, NtNotifyChangeDirectoryFile, 72 ) \ - SYSCALL_ENTRY( 0x00ac, NtNotifyChangeKey, 80 ) \ - SYSCALL_ENTRY( 0x00ad, NtNotifyChangeMultipleKeys, 96 ) \ - SYSCALL_ENTRY( 0x00ae, NtOpenIoCompletion, 24 ) \ - SYSCALL_ENTRY( 0x00af, NtOpenJobObject, 24 ) \ - SYSCALL_ENTRY( 0x00b0, NtOpenKeyEx, 32 ) \ - SYSCALL_ENTRY( 0x00b1, NtOpenKeyTransacted, 32 ) \ - SYSCALL_ENTRY( 0x00b2, NtOpenKeyTransactedEx, 40 ) \ - SYSCALL_ENTRY( 0x00b3, NtOpenKeyedEvent, 24 ) \ - SYSCALL_ENTRY( 0x00b4, NtOpenMutant, 24 ) \ - SYSCALL_ENTRY( 0x00b5, NtOpenProcessToken, 24 ) \ - SYSCALL_ENTRY( 0x00b6, NtOpenSemaphore, 24 ) \ - SYSCALL_ENTRY( 0x00b7, NtOpenSymbolicLinkObject, 24 ) \ - SYSCALL_ENTRY( 0x00b8, NtOpenThread, 32 ) \ - SYSCALL_ENTRY( 0x00b9, NtOpenTimer, 24 ) \ - SYSCALL_ENTRY( 0x00ba, NtPrivilegeCheck, 24 ) \ - SYSCALL_ENTRY( 0x00bb, NtPulseEvent, 16 ) \ - SYSCALL_ENTRY( 0x00bc, NtQueryDirectoryObject, 56 ) \ - SYSCALL_ENTRY( 0x00bd, NtQueryEaFile, 72 ) \ - SYSCALL_ENTRY( 0x00be, NtQueryFullAttributesFile, 16 ) \ - SYSCALL_ENTRY( 0x00bf, NtQueryInformationAtom, 40 ) \ - SYSCALL_ENTRY( 0x00c0, NtQueryInformationJobObject, 40 ) \ - SYSCALL_ENTRY( 0x00c1, NtQueryInstallUILanguage, 8 ) \ - SYSCALL_ENTRY( 0x00c2, NtQueryIoCompletion, 40 ) \ - SYSCALL_ENTRY( 0x00c3, NtQueryLicenseValue, 40 ) \ - SYSCALL_ENTRY( 0x00c4, NtQueryMultipleValueKey, 48 ) \ - SYSCALL_ENTRY( 0x00c5, NtQueryMutant, 40 ) \ - SYSCALL_ENTRY( 0x00c6, NtQuerySecurityObject, 40 ) \ - SYSCALL_ENTRY( 0x00c7, NtQuerySemaphore, 40 ) \ - SYSCALL_ENTRY( 0x00c8, NtQuerySymbolicLinkObject, 24 ) \ - SYSCALL_ENTRY( 0x00c9, NtQuerySystemEnvironmentValue, 32 ) \ - SYSCALL_ENTRY( 0x00ca, NtQuerySystemEnvironmentValueEx, 40 ) \ - SYSCALL_ENTRY( 0x00cb, NtQuerySystemInformationEx, 48 ) \ - SYSCALL_ENTRY( 0x00cc, NtQueryTimerResolution, 24 ) \ - SYSCALL_ENTRY( 0x00cd, NtQueueApcThreadEx, 48 ) \ - SYSCALL_ENTRY( 0x00ce, NtQueueApcThreadEx2, 56 ) \ - SYSCALL_ENTRY( 0x00cf, NtRaiseException, 24 ) \ - SYSCALL_ENTRY( 0x00d0, NtRaiseHardError, 48 ) \ - SYSCALL_ENTRY( 0x00d1, NtRegisterThreadTerminatePort, 8 ) \ - SYSCALL_ENTRY( 0x00d2, NtReleaseKeyedEvent, 32 ) \ - SYSCALL_ENTRY( 0x00d3, NtRemoveIoCompletionEx, 48 ) \ - SYSCALL_ENTRY( 0x00d4, NtRemoveProcessDebug, 16 ) \ - SYSCALL_ENTRY( 0x00d5, NtRenameKey, 16 ) \ - SYSCALL_ENTRY( 0x00d6, NtReplaceKey, 24 ) \ - SYSCALL_ENTRY( 0x00d7, NtResetEvent, 16 ) \ - SYSCALL_ENTRY( 0x00d8, NtResetWriteWatch, 24 ) \ - SYSCALL_ENTRY( 0x00d9, NtRestoreKey, 24 ) \ - SYSCALL_ENTRY( 0x00da, NtResumeProcess, 8 ) \ - SYSCALL_ENTRY( 0x00db, NtRollbackTransaction, 16 ) \ - SYSCALL_ENTRY( 0x00dc, NtSaveKey, 16 ) \ - SYSCALL_ENTRY( 0x00dd, NtSecureConnectPort, 72 ) \ - SYSCALL_ENTRY( 0x00de, NtSetContextThread, 16 ) \ - SYSCALL_ENTRY( 0x00df, NtSetDebugFilterState, 24 ) \ - SYSCALL_ENTRY( 0x00e0, NtSetDefaultLocale, 16 ) \ - SYSCALL_ENTRY( 0x00e1, NtSetDefaultUILanguage, 8 ) \ - SYSCALL_ENTRY( 0x00e2, NtSetEaFile, 32 ) \ - SYSCALL_ENTRY( 0x00e3, NtSetInformationDebugObject, 40 ) \ - SYSCALL_ENTRY( 0x00e4, NtSetInformationJobObject, 32 ) \ - SYSCALL_ENTRY( 0x00e5, NtSetInformationKey, 32 ) \ - SYSCALL_ENTRY( 0x00e6, NtSetInformationToken, 32 ) \ - SYSCALL_ENTRY( 0x00e7, NtSetInformationVirtualMemory, 48 ) \ - SYSCALL_ENTRY( 0x00e8, NtSetIntervalProfile, 16 ) \ - SYSCALL_ENTRY( 0x00e9, NtSetIoCompletion, 40 ) \ - SYSCALL_ENTRY( 0x00ea, NtSetIoCompletionEx, 48 ) \ - SYSCALL_ENTRY( 0x00eb, NtSetLdtEntries, 48 ) \ - SYSCALL_ENTRY( 0x00ec, NtSetSecurityObject, 24 ) \ - SYSCALL_ENTRY( 0x00ed, NtSetSystemInformation, 24 ) \ - SYSCALL_ENTRY( 0x00ee, NtSetSystemTime, 16 ) \ - SYSCALL_ENTRY( 0x00ef, NtSetThreadExecutionState, 16 ) \ - SYSCALL_ENTRY( 0x00f0, NtSetTimerResolution, 24 ) \ - SYSCALL_ENTRY( 0x00f1, NtSetVolumeInformationFile, 40 ) \ - SYSCALL_ENTRY( 0x00f2, NtShutdownSystem, 8 ) \ - SYSCALL_ENTRY( 0x00f3, NtSignalAndWaitForSingleObject, 32 ) \ - SYSCALL_ENTRY( 0x00f4, NtSuspendProcess, 8 ) \ - SYSCALL_ENTRY( 0x00f5, NtSuspendThread, 16 ) \ - SYSCALL_ENTRY( 0x00f6, NtSystemDebugControl, 48 ) \ - SYSCALL_ENTRY( 0x00f7, NtTerminateJobObject, 16 ) \ - SYSCALL_ENTRY( 0x00f8, NtTestAlert, 0 ) \ - SYSCALL_ENTRY( 0x00f9, NtTraceControl, 48 ) \ - SYSCALL_ENTRY( 0x00fa, NtUnloadDriver, 8 ) \ - SYSCALL_ENTRY( 0x00fb, NtUnloadKey, 8 ) \ - SYSCALL_ENTRY( 0x00fc, NtUnlockFile, 40 ) \ - SYSCALL_ENTRY( 0x00fd, NtUnlockVirtualMemory, 32 ) \ - SYSCALL_ENTRY( 0x00fe, NtUnmapViewOfSectionEx, 24 ) \ - SYSCALL_ENTRY( 0x00ff, NtWaitForAlertByThreadId, 16 ) \ - SYSCALL_ENTRY( 0x0100, NtWaitForDebugEvent, 32 ) \ - SYSCALL_ENTRY( 0x0101, NtWaitForKeyedEvent, 32 ) + SYSCALL_ENTRY( 0x00a7, NtLockFile, 80 ) \ + SYSCALL_ENTRY( 0x00a8, NtLockVirtualMemory, 32 ) \ + SYSCALL_ENTRY( 0x00a9, NtMakePermanentObject, 8 ) \ + SYSCALL_ENTRY( 0x00aa, NtMakeTemporaryObject, 8 ) \ + SYSCALL_ENTRY( 0x00ab, NtMapViewOfSectionEx, 72 ) \ + SYSCALL_ENTRY( 0x00ac, NtNotifyChangeDirectoryFile, 72 ) \ + SYSCALL_ENTRY( 0x00ad, NtNotifyChangeKey, 80 ) \ + SYSCALL_ENTRY( 0x00ae, NtNotifyChangeMultipleKeys, 96 ) \ + SYSCALL_ENTRY( 0x00af, NtOpenIoCompletion, 24 ) \ + SYSCALL_ENTRY( 0x00b0, NtOpenJobObject, 24 ) \ + SYSCALL_ENTRY( 0x00b1, NtOpenKeyEx, 32 ) \ + SYSCALL_ENTRY( 0x00b2, NtOpenKeyTransacted, 32 ) \ + SYSCALL_ENTRY( 0x00b3, NtOpenKeyTransactedEx, 40 ) \ + SYSCALL_ENTRY( 0x00b4, NtOpenKeyedEvent, 24 ) \ + SYSCALL_ENTRY( 0x00b5, NtOpenMutant, 24 ) \ + SYSCALL_ENTRY( 0x00b6, NtOpenProcessToken, 24 ) \ + SYSCALL_ENTRY( 0x00b7, NtOpenSemaphore, 24 ) \ + SYSCALL_ENTRY( 0x00b8, NtOpenSymbolicLinkObject, 24 ) \ + SYSCALL_ENTRY( 0x00b9, NtOpenThread, 32 ) \ + SYSCALL_ENTRY( 0x00ba, NtOpenTimer, 24 ) \ + SYSCALL_ENTRY( 0x00bb, NtPrivilegeCheck, 24 ) \ + SYSCALL_ENTRY( 0x00bc, NtPulseEvent, 16 ) \ + SYSCALL_ENTRY( 0x00bd, NtQueryDirectoryObject, 56 ) \ + SYSCALL_ENTRY( 0x00be, NtQueryEaFile, 72 ) \ + SYSCALL_ENTRY( 0x00bf, NtQueryFullAttributesFile, 16 ) \ + SYSCALL_ENTRY( 0x00c0, NtQueryInformationAtom, 40 ) \ + SYSCALL_ENTRY( 0x00c1, NtQueryInformationJobObject, 40 ) \ + SYSCALL_ENTRY( 0x00c2, NtQueryInstallUILanguage, 8 ) \ + SYSCALL_ENTRY( 0x00c3, NtQueryIoCompletion, 40 ) \ + SYSCALL_ENTRY( 0x00c4, NtQueryLicenseValue, 40 ) \ + SYSCALL_ENTRY( 0x00c5, NtQueryMultipleValueKey, 48 ) \ + SYSCALL_ENTRY( 0x00c6, NtQueryMutant, 40 ) \ + SYSCALL_ENTRY( 0x00c7, NtQuerySecurityObject, 40 ) \ + SYSCALL_ENTRY( 0x00c8, NtQuerySemaphore, 40 ) \ + SYSCALL_ENTRY( 0x00c9, NtQuerySymbolicLinkObject, 24 ) \ + SYSCALL_ENTRY( 0x00ca, NtQuerySystemEnvironmentValue, 32 ) \ + SYSCALL_ENTRY( 0x00cb, NtQuerySystemEnvironmentValueEx, 40 ) \ + SYSCALL_ENTRY( 0x00cc, NtQuerySystemInformationEx, 48 ) \ + SYSCALL_ENTRY( 0x00cd, NtQueryTimerResolution, 24 ) \ + SYSCALL_ENTRY( 0x00ce, NtQueueApcThreadEx, 48 ) \ + SYSCALL_ENTRY( 0x00cf, NtQueueApcThreadEx2, 56 ) \ + SYSCALL_ENTRY( 0x00d0, NtRaiseException, 24 ) \ + SYSCALL_ENTRY( 0x00d1, NtRaiseHardError, 48 ) \ + SYSCALL_ENTRY( 0x00d2, NtRegisterThreadTerminatePort, 8 ) \ + SYSCALL_ENTRY( 0x00d3, NtReleaseKeyedEvent, 32 ) \ + SYSCALL_ENTRY( 0x00d4, NtRemoveIoCompletionEx, 48 ) \ + SYSCALL_ENTRY( 0x00d5, NtRemoveProcessDebug, 16 ) \ + SYSCALL_ENTRY( 0x00d6, NtRenameKey, 16 ) \ + SYSCALL_ENTRY( 0x00d7, NtReplaceKey, 24 ) \ + SYSCALL_ENTRY( 0x00d8, NtResetEvent, 16 ) \ + SYSCALL_ENTRY( 0x00d9, NtResetWriteWatch, 24 ) \ + SYSCALL_ENTRY( 0x00da, NtRestoreKey, 24 ) \ + SYSCALL_ENTRY( 0x00db, NtResumeProcess, 8 ) \ + SYSCALL_ENTRY( 0x00dc, NtRollbackTransaction, 16 ) \ + SYSCALL_ENTRY( 0x00dd, NtSaveKey, 16 ) \ + SYSCALL_ENTRY( 0x00de, NtSecureConnectPort, 72 ) \ + SYSCALL_ENTRY( 0x00df, NtSetContextThread, 16 ) \ + SYSCALL_ENTRY( 0x00e0, NtSetDebugFilterState, 24 ) \ + SYSCALL_ENTRY( 0x00e1, NtSetDefaultLocale, 16 ) \ + SYSCALL_ENTRY( 0x00e2, NtSetDefaultUILanguage, 8 ) \ + SYSCALL_ENTRY( 0x00e3, NtSetEaFile, 32 ) \ + SYSCALL_ENTRY( 0x00e4, NtSetInformationDebugObject, 40 ) \ + SYSCALL_ENTRY( 0x00e5, NtSetInformationJobObject, 32 ) \ + SYSCALL_ENTRY( 0x00e6, NtSetInformationKey, 32 ) \ + SYSCALL_ENTRY( 0x00e7, NtSetInformationToken, 32 ) \ + SYSCALL_ENTRY( 0x00e8, NtSetInformationVirtualMemory, 48 ) \ + SYSCALL_ENTRY( 0x00e9, NtSetIntervalProfile, 16 ) \ + SYSCALL_ENTRY( 0x00ea, NtSetIoCompletion, 40 ) \ + SYSCALL_ENTRY( 0x00eb, NtSetIoCompletionEx, 48 ) \ + SYSCALL_ENTRY( 0x00ec, NtSetLdtEntries, 48 ) \ + SYSCALL_ENTRY( 0x00ed, NtSetSecurityObject, 24 ) \ + SYSCALL_ENTRY( 0x00ee, NtSetSystemInformation, 24 ) \ + SYSCALL_ENTRY( 0x00ef, NtSetSystemTime, 16 ) \ + SYSCALL_ENTRY( 0x00f0, NtSetThreadExecutionState, 16 ) \ + SYSCALL_ENTRY( 0x00f1, NtSetTimerResolution, 24 ) \ + SYSCALL_ENTRY( 0x00f2, NtSetVolumeInformationFile, 40 ) \ + SYSCALL_ENTRY( 0x00f3, NtShutdownSystem, 8 ) \ + SYSCALL_ENTRY( 0x00f4, NtSignalAndWaitForSingleObject, 32 ) \ + SYSCALL_ENTRY( 0x00f5, NtSuspendProcess, 8 ) \ + SYSCALL_ENTRY( 0x00f6, NtSuspendThread, 16 ) \ + SYSCALL_ENTRY( 0x00f7, NtSystemDebugControl, 48 ) \ + SYSCALL_ENTRY( 0x00f8, NtTerminateJobObject, 16 ) \ + SYSCALL_ENTRY( 0x00f9, NtTestAlert, 0 ) \ + SYSCALL_ENTRY( 0x00fa, NtTraceControl, 48 ) \ + SYSCALL_ENTRY( 0x00fb, NtUnloadDriver, 8 ) \ + SYSCALL_ENTRY( 0x00fc, NtUnloadKey, 8 ) \ + SYSCALL_ENTRY( 0x00fd, NtUnlockFile, 40 ) \ + SYSCALL_ENTRY( 0x00fe, NtUnlockVirtualMemory, 32 ) \ + SYSCALL_ENTRY( 0x00ff, NtUnmapViewOfSectionEx, 24 ) \ + SYSCALL_ENTRY( 0x0100, NtWaitForAlertByThreadId, 16 ) \ + SYSCALL_ENTRY( 0x0101, NtWaitForDebugEvent, 32 ) \ + SYSCALL_ENTRY( 0x0102, NtWaitForKeyedEvent, 32 ) #else #define ALL_SYSCALLS ALL_SYSCALLS32 #endif diff --git a/dlls/ntdll/signal_arm64ec.c b/dlls/ntdll/signal_arm64ec.c index 954ace7824e..517f7690bf1 100644 --- a/dlls/ntdll/signal_arm64ec.c +++ b/dlls/ntdll/signal_arm64ec.c @@ -400,6 +400,7 @@ DEFINE_SYSCALL(NtCreateTimer, (HANDLE *handle, ACCESS_MASK access, const OBJECT_ DEFINE_SYSCALL(NtCreateToken, (HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBUTES *attr, TOKEN_TYPE type, LUID *token_id, LARGE_INTEGER *expire, TOKEN_USER *user, TOKEN_GROUPS *groups, TOKEN_PRIVILEGES *privs, TOKEN_OWNER *owner, TOKEN_PRIMARY_GROUP *group, TOKEN_DEFAULT_DACL *dacl, TOKEN_SOURCE *source)) DEFINE_SYSCALL(NtCreateTransaction, (HANDLE *handle, ACCESS_MASK mask, OBJECT_ATTRIBUTES *obj_attr, GUID *guid, HANDLE tm, ULONG options, ULONG isol_level, ULONG isol_flags, PLARGE_INTEGER timeout, UNICODE_STRING *description)) DEFINE_SYSCALL(NtCreateUserProcess, (HANDLE *process_handle_ptr, HANDLE *thread_handle_ptr, ACCESS_MASK process_access, ACCESS_MASK thread_access, OBJECT_ATTRIBUTES *process_attr, OBJECT_ATTRIBUTES *thread_attr, ULONG process_flags, ULONG thread_flags, RTL_USER_PROCESS_PARAMETERS *params, PS_CREATE_INFO *info, PS_ATTRIBUTE_LIST *ps_attr)) +DEFINE_SYSCALL(NtCreateWaitablePort, (HANDLE *handle, OBJECT_ATTRIBUTES *attr, ULONG info_len, ULONG data_len, ULONG reserved)) DEFINE_SYSCALL(NtDebugActiveProcess, (HANDLE process, HANDLE debug)) DEFINE_SYSCALL(NtDebugContinue, (HANDLE handle, CLIENT_ID *client, NTSTATUS status)) DEFINE_SYSCALL(NtDelayExecution, (BOOLEAN alertable, const LARGE_INTEGER *timeout)) diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c index bc9bbf2c30d..b6dd5cceab2 100644 --- a/dlls/ntdll/unix/sync.c +++ b/dlls/ntdll/unix/sync.c @@ -3072,6 +3072,15 @@ NTSTATUS WINAPI NtCreatePort( HANDLE *handle, OBJECT_ATTRIBUTES *attr, ULONG inf return STATUS_NOT_IMPLEMENTED; } +/*********************************************************************** + * NtCreateWaitablePort (NTDLL.@) + */ +NTSTATUS WINAPI NtCreateWaitablePort( HANDLE *handle, OBJECT_ATTRIBUTES *attr, ULONG info_len, + ULONG data_len, ULONG reserved ) +{ + FIXME( "(%p,%p,%u,%u,%u),stub!\n", handle, attr, info_len, data_len, reserved ); + return STATUS_NOT_IMPLEMENTED; +} /*********************************************************************** * NtConnectPort (NTDLL.@) diff --git a/include/winternl.h b/include/winternl.h index a20aca55a0e..3abf69f06b7 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -4784,6 +4784,7 @@ NTSYSAPI NTSTATUS WINAPI NtCreateTimer(HANDLE*, ACCESS_MASK, const OBJECT_ATTRI 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); NTSYSAPI NTSTATUS WINAPI NtCreateTransaction(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,LPGUID,HANDLE,ULONG,ULONG,ULONG,PLARGE_INTEGER,PUNICODE_STRING); 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*); +NTSYSAPI NTSTATUS WINAPI NtCreateWaitablePort(PHANDLE,POBJECT_ATTRIBUTES,ULONG,ULONG,ULONG); NTSYSAPI NTSTATUS WINAPI NtDebugActiveProcess(HANDLE,HANDLE); NTSYSAPI NTSTATUS WINAPI NtDebugContinue(HANDLE,CLIENT_ID*,NTSTATUS); NTSYSAPI NTSTATUS WINAPI NtDelayExecution(BOOLEAN,const LARGE_INTEGER*); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10571