The stub is enough for TokenViewer.exe to start up and display its user interface.
Based on a patch by Nikolay Sivov.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45119
-- v9: ntdll: Add NtGetNextProcess stub.
From: Alex Henrie alexhenrie24@gmail.com
The stub is enough for TokenViewer.exe to start up and display its user interface.
Based on a patch by Nikolay Sivov.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45119 --- dlls/ntdll/ntdll.spec | 1 + dlls/ntdll/ntsyscalls.h | 656 +++++++++++++++++++------------------- dlls/ntdll/unix/process.c | 12 + dlls/wow64/process.c | 21 ++ include/winternl.h | 1 + 5 files changed, 364 insertions(+), 327 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 13043130cf6..bb4ff7b20d1 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -231,6 +231,7 @@ @ stdcall -norelay -syscall NtGetContextThread(long ptr) @ stdcall -syscall NtGetCurrentProcessorNumber() # @ stub NtGetDevicePowerState +@ stdcall -syscall NtGetNextProcess(ptr long long long ptr) @ stdcall -syscall NtGetNextThread(ptr ptr long long long ptr) @ stdcall -syscall NtGetNlsSectionPtr(long long long ptr ptr) # @ stub NtGetPlugPlayEvent diff --git a/dlls/ntdll/ntsyscalls.h b/dlls/ntdll/ntsyscalls.h index 55e1436848b..404ce75ff9e 100644 --- a/dlls/ntdll/ntsyscalls.h +++ b/dlls/ntdll/ntsyscalls.h @@ -77,172 +77,173 @@ 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, NtMakePermanentObject, 4 ) \ - SYSCALL_ENTRY( 0x005b, NtMakeTemporaryObject, 4 ) \ - SYSCALL_ENTRY( 0x005c, NtMapViewOfSection, 40 ) \ - SYSCALL_ENTRY( 0x005d, NtMapViewOfSectionEx, 36 ) \ - SYSCALL_ENTRY( 0x005e, NtNotifyChangeDirectoryFile, 36 ) \ - SYSCALL_ENTRY( 0x005f, NtNotifyChangeKey, 40 ) \ - SYSCALL_ENTRY( 0x0060, NtNotifyChangeMultipleKeys, 48 ) \ - SYSCALL_ENTRY( 0x0061, NtOpenDirectoryObject, 12 ) \ - SYSCALL_ENTRY( 0x0062, NtOpenEvent, 12 ) \ - SYSCALL_ENTRY( 0x0063, NtOpenFile, 24 ) \ - SYSCALL_ENTRY( 0x0064, NtOpenIoCompletion, 12 ) \ - SYSCALL_ENTRY( 0x0065, NtOpenJobObject, 12 ) \ - SYSCALL_ENTRY( 0x0066, NtOpenKey, 12 ) \ - SYSCALL_ENTRY( 0x0067, NtOpenKeyEx, 16 ) \ - SYSCALL_ENTRY( 0x0068, NtOpenKeyTransacted, 16 ) \ - SYSCALL_ENTRY( 0x0069, NtOpenKeyTransactedEx, 20 ) \ - SYSCALL_ENTRY( 0x006a, NtOpenKeyedEvent, 12 ) \ - SYSCALL_ENTRY( 0x006b, NtOpenMutant, 12 ) \ - SYSCALL_ENTRY( 0x006c, NtOpenProcess, 16 ) \ - SYSCALL_ENTRY( 0x006d, NtOpenProcessToken, 12 ) \ - SYSCALL_ENTRY( 0x006e, NtOpenProcessTokenEx, 16 ) \ - SYSCALL_ENTRY( 0x006f, NtOpenSection, 12 ) \ - SYSCALL_ENTRY( 0x0070, NtOpenSemaphore, 12 ) \ - SYSCALL_ENTRY( 0x0071, NtOpenSymbolicLinkObject, 12 ) \ - SYSCALL_ENTRY( 0x0072, NtOpenThread, 16 ) \ - SYSCALL_ENTRY( 0x0073, NtOpenThreadToken, 16 ) \ - SYSCALL_ENTRY( 0x0074, NtOpenThreadTokenEx, 20 ) \ - SYSCALL_ENTRY( 0x0075, NtOpenTimer, 12 ) \ - SYSCALL_ENTRY( 0x0076, NtPowerInformation, 20 ) \ - SYSCALL_ENTRY( 0x0077, NtPrivilegeCheck, 12 ) \ - SYSCALL_ENTRY( 0x0078, NtProtectVirtualMemory, 20 ) \ - SYSCALL_ENTRY( 0x0079, NtPulseEvent, 8 ) \ - SYSCALL_ENTRY( 0x007a, NtQueryAttributesFile, 8 ) \ - SYSCALL_ENTRY( 0x007b, NtQueryDefaultLocale, 8 ) \ - SYSCALL_ENTRY( 0x007c, NtQueryDefaultUILanguage, 4 ) \ - SYSCALL_ENTRY( 0x007d, NtQueryDirectoryFile, 44 ) \ - SYSCALL_ENTRY( 0x007e, NtQueryDirectoryObject, 28 ) \ - SYSCALL_ENTRY( 0x007f, NtQueryEaFile, 36 ) \ - SYSCALL_ENTRY( 0x0080, NtQueryEvent, 20 ) \ - SYSCALL_ENTRY( 0x0081, NtQueryFullAttributesFile, 8 ) \ - SYSCALL_ENTRY( 0x0082, NtQueryInformationAtom, 20 ) \ - SYSCALL_ENTRY( 0x0083, NtQueryInformationFile, 20 ) \ - SYSCALL_ENTRY( 0x0084, NtQueryInformationJobObject, 20 ) \ - SYSCALL_ENTRY( 0x0085, NtQueryInformationProcess, 20 ) \ - SYSCALL_ENTRY( 0x0086, NtQueryInformationThread, 20 ) \ - SYSCALL_ENTRY( 0x0087, NtQueryInformationToken, 20 ) \ - SYSCALL_ENTRY( 0x0088, NtQueryInstallUILanguage, 4 ) \ - SYSCALL_ENTRY( 0x0089, NtQueryIoCompletion, 20 ) \ - SYSCALL_ENTRY( 0x008a, NtQueryKey, 20 ) \ - SYSCALL_ENTRY( 0x008b, NtQueryLicenseValue, 20 ) \ - SYSCALL_ENTRY( 0x008c, NtQueryMultipleValueKey, 24 ) \ - SYSCALL_ENTRY( 0x008d, NtQueryMutant, 20 ) \ - SYSCALL_ENTRY( 0x008e, NtQueryObject, 20 ) \ - SYSCALL_ENTRY( 0x008f, NtQueryPerformanceCounter, 8 ) \ - SYSCALL_ENTRY( 0x0090, NtQuerySection, 20 ) \ - SYSCALL_ENTRY( 0x0091, NtQuerySecurityObject, 20 ) \ - SYSCALL_ENTRY( 0x0092, NtQuerySemaphore, 20 ) \ - SYSCALL_ENTRY( 0x0093, NtQuerySymbolicLinkObject, 12 ) \ - SYSCALL_ENTRY( 0x0094, NtQuerySystemEnvironmentValue, 16 ) \ - SYSCALL_ENTRY( 0x0095, NtQuerySystemEnvironmentValueEx, 20 ) \ - SYSCALL_ENTRY( 0x0096, NtQuerySystemInformation, 16 ) \ - SYSCALL_ENTRY( 0x0097, NtQuerySystemInformationEx, 24 ) \ - SYSCALL_ENTRY( 0x0098, NtQuerySystemTime, 4 ) \ - SYSCALL_ENTRY( 0x0099, NtQueryTimer, 20 ) \ - SYSCALL_ENTRY( 0x009a, NtQueryTimerResolution, 12 ) \ - SYSCALL_ENTRY( 0x009b, NtQueryValueKey, 24 ) \ - SYSCALL_ENTRY( 0x009c, NtQueryVirtualMemory, 24 ) \ - SYSCALL_ENTRY( 0x009d, NtQueryVolumeInformationFile, 20 ) \ - SYSCALL_ENTRY( 0x009e, NtQueueApcThread, 20 ) \ - SYSCALL_ENTRY( 0x009f, NtQueueApcThreadEx, 24 ) \ - SYSCALL_ENTRY( 0x00a0, NtRaiseException, 12 ) \ - SYSCALL_ENTRY( 0x00a1, NtRaiseHardError, 24 ) \ - SYSCALL_ENTRY( 0x00a2, NtReadFile, 36 ) \ - SYSCALL_ENTRY( 0x00a3, NtReadFileScatter, 36 ) \ - SYSCALL_ENTRY( 0x00a4, NtReadVirtualMemory, 20 ) \ - SYSCALL_ENTRY( 0x00a5, NtRegisterThreadTerminatePort, 4 ) \ - SYSCALL_ENTRY( 0x00a6, NtReleaseKeyedEvent, 16 ) \ - SYSCALL_ENTRY( 0x00a7, NtReleaseMutant, 8 ) \ - SYSCALL_ENTRY( 0x00a8, NtReleaseSemaphore, 12 ) \ - SYSCALL_ENTRY( 0x00a9, NtRemoveIoCompletion, 20 ) \ - SYSCALL_ENTRY( 0x00aa, NtRemoveIoCompletionEx, 24 ) \ - SYSCALL_ENTRY( 0x00ab, NtRemoveProcessDebug, 8 ) \ - SYSCALL_ENTRY( 0x00ac, NtRenameKey, 8 ) \ - SYSCALL_ENTRY( 0x00ad, NtReplaceKey, 12 ) \ - SYSCALL_ENTRY( 0x00ae, NtReplyWaitReceivePort, 16 ) \ - SYSCALL_ENTRY( 0x00af, NtRequestWaitReplyPort, 12 ) \ - SYSCALL_ENTRY( 0x00b0, NtResetEvent, 8 ) \ - SYSCALL_ENTRY( 0x00b1, NtResetWriteWatch, 12 ) \ - SYSCALL_ENTRY( 0x00b2, NtRestoreKey, 12 ) \ - SYSCALL_ENTRY( 0x00b3, NtResumeProcess, 4 ) \ - SYSCALL_ENTRY( 0x00b4, NtResumeThread, 8 ) \ - SYSCALL_ENTRY( 0x00b5, NtRollbackTransaction, 8 ) \ - SYSCALL_ENTRY( 0x00b6, NtSaveKey, 8 ) \ - SYSCALL_ENTRY( 0x00b7, NtSecureConnectPort, 36 ) \ - SYSCALL_ENTRY( 0x00b8, NtSetContextThread, 8 ) \ - SYSCALL_ENTRY( 0x00b9, NtSetDebugFilterState, 12 ) \ - SYSCALL_ENTRY( 0x00ba, NtSetDefaultLocale, 8 ) \ - SYSCALL_ENTRY( 0x00bb, NtSetDefaultUILanguage, 4 ) \ - SYSCALL_ENTRY( 0x00bc, NtSetEaFile, 16 ) \ - SYSCALL_ENTRY( 0x00bd, NtSetEvent, 8 ) \ - SYSCALL_ENTRY( 0x00be, NtSetInformationDebugObject, 20 ) \ - SYSCALL_ENTRY( 0x00bf, NtSetInformationFile, 20 ) \ - SYSCALL_ENTRY( 0x00c0, NtSetInformationJobObject, 16 ) \ - SYSCALL_ENTRY( 0x00c1, NtSetInformationKey, 16 ) \ - SYSCALL_ENTRY( 0x00c2, NtSetInformationObject, 16 ) \ - SYSCALL_ENTRY( 0x00c3, NtSetInformationProcess, 16 ) \ - SYSCALL_ENTRY( 0x00c4, NtSetInformationThread, 16 ) \ - SYSCALL_ENTRY( 0x00c5, NtSetInformationToken, 16 ) \ - SYSCALL_ENTRY( 0x00c6, NtSetInformationVirtualMemory, 24 ) \ - SYSCALL_ENTRY( 0x00c7, NtSetIntervalProfile, 8 ) \ - SYSCALL_ENTRY( 0x00c8, NtSetIoCompletion, 20 ) \ - SYSCALL_ENTRY( 0x00c9, NtSetLdtEntries, 24 ) \ - SYSCALL_ENTRY( 0x00ca, NtSetSecurityObject, 12 ) \ - SYSCALL_ENTRY( 0x00cb, NtSetSystemInformation, 12 ) \ - SYSCALL_ENTRY( 0x00cc, NtSetSystemTime, 8 ) \ - SYSCALL_ENTRY( 0x00cd, NtSetThreadExecutionState, 8 ) \ - SYSCALL_ENTRY( 0x00ce, NtSetTimer, 28 ) \ - SYSCALL_ENTRY( 0x00cf, NtSetTimerResolution, 12 ) \ - SYSCALL_ENTRY( 0x00d0, NtSetValueKey, 24 ) \ - SYSCALL_ENTRY( 0x00d1, NtSetVolumeInformationFile, 20 ) \ - SYSCALL_ENTRY( 0x00d2, NtShutdownSystem, 4 ) \ - SYSCALL_ENTRY( 0x00d3, NtSignalAndWaitForSingleObject, 16 ) \ - SYSCALL_ENTRY( 0x00d4, NtSuspendProcess, 4 ) \ - SYSCALL_ENTRY( 0x00d5, NtSuspendThread, 8 ) \ - SYSCALL_ENTRY( 0x00d6, NtSystemDebugControl, 24 ) \ - SYSCALL_ENTRY( 0x00d7, NtTerminateJobObject, 8 ) \ - SYSCALL_ENTRY( 0x00d8, NtTerminateProcess, 8 ) \ - SYSCALL_ENTRY( 0x00d9, NtTerminateThread, 8 ) \ - SYSCALL_ENTRY( 0x00da, NtTestAlert, 0 ) \ - SYSCALL_ENTRY( 0x00db, NtTraceControl, 24 ) \ - SYSCALL_ENTRY( 0x00dc, NtUnloadDriver, 4 ) \ - SYSCALL_ENTRY( 0x00dd, NtUnloadKey, 4 ) \ - SYSCALL_ENTRY( 0x00de, NtUnlockFile, 20 ) \ - SYSCALL_ENTRY( 0x00df, NtUnlockVirtualMemory, 16 ) \ - SYSCALL_ENTRY( 0x00e0, NtUnmapViewOfSection, 8 ) \ - SYSCALL_ENTRY( 0x00e1, NtUnmapViewOfSectionEx, 12 ) \ - SYSCALL_ENTRY( 0x00e2, NtWaitForAlertByThreadId, 8 ) \ - SYSCALL_ENTRY( 0x00e3, NtWaitForDebugEvent, 16 ) \ - SYSCALL_ENTRY( 0x00e4, NtWaitForKeyedEvent, 16 ) \ - SYSCALL_ENTRY( 0x00e5, NtWaitForMultipleObjects, 20 ) \ - SYSCALL_ENTRY( 0x00e6, NtWaitForSingleObject, 12 ) \ - SYSCALL_ENTRY( 0x00e7, NtWow64AllocateVirtualMemory64, 28 ) \ - SYSCALL_ENTRY( 0x00e8, NtWow64GetNativeSystemInformation, 16 ) \ - SYSCALL_ENTRY( 0x00e9, NtWow64IsProcessorFeaturePresent, 4 ) \ - SYSCALL_ENTRY( 0x00ea, NtWow64ReadVirtualMemory64, 28 ) \ - SYSCALL_ENTRY( 0x00eb, NtWow64WriteVirtualMemory64, 28 ) \ - SYSCALL_ENTRY( 0x00ec, NtWriteFile, 36 ) \ - SYSCALL_ENTRY( 0x00ed, NtWriteFileGather, 36 ) \ - SYSCALL_ENTRY( 0x00ee, NtWriteVirtualMemory, 20 ) \ - SYSCALL_ENTRY( 0x00ef, NtYieldExecution, 0 ) \ - SYSCALL_ENTRY( 0x00f0, wine_nt_to_unix_file_name, 16 ) \ - SYSCALL_ENTRY( 0x00f1, wine_unix_to_nt_file_name, 12 ) + SYSCALL_ENTRY( 0x004c, NtGetNextProcess, 20 ) \ + SYSCALL_ENTRY( 0x004d, NtGetNextThread, 24 ) \ + SYSCALL_ENTRY( 0x004e, NtGetNlsSectionPtr, 20 ) \ + SYSCALL_ENTRY( 0x004f, NtGetWriteWatch, 28 ) \ + SYSCALL_ENTRY( 0x0050, NtImpersonateAnonymousToken, 4 ) \ + SYSCALL_ENTRY( 0x0051, NtInitializeNlsFiles, 12 ) \ + SYSCALL_ENTRY( 0x0052, NtInitiatePowerAction, 16 ) \ + SYSCALL_ENTRY( 0x0053, NtIsProcessInJob, 8 ) \ + SYSCALL_ENTRY( 0x0054, NtListenPort, 8 ) \ + SYSCALL_ENTRY( 0x0055, NtLoadDriver, 4 ) \ + SYSCALL_ENTRY( 0x0056, NtLoadKey, 8 ) \ + SYSCALL_ENTRY( 0x0057, NtLoadKey2, 12 ) \ + SYSCALL_ENTRY( 0x0058, NtLoadKeyEx, 32 ) \ + SYSCALL_ENTRY( 0x0059, NtLockFile, 40 ) \ + SYSCALL_ENTRY( 0x005a, NtLockVirtualMemory, 16 ) \ + SYSCALL_ENTRY( 0x005b, NtMakePermanentObject, 4 ) \ + SYSCALL_ENTRY( 0x005c, NtMakeTemporaryObject, 4 ) \ + SYSCALL_ENTRY( 0x005d, NtMapViewOfSection, 40 ) \ + SYSCALL_ENTRY( 0x005e, NtMapViewOfSectionEx, 36 ) \ + SYSCALL_ENTRY( 0x005f, NtNotifyChangeDirectoryFile, 36 ) \ + SYSCALL_ENTRY( 0x0060, NtNotifyChangeKey, 40 ) \ + SYSCALL_ENTRY( 0x0061, NtNotifyChangeMultipleKeys, 48 ) \ + SYSCALL_ENTRY( 0x0062, NtOpenDirectoryObject, 12 ) \ + SYSCALL_ENTRY( 0x0063, NtOpenEvent, 12 ) \ + SYSCALL_ENTRY( 0x0064, NtOpenFile, 24 ) \ + SYSCALL_ENTRY( 0x0065, NtOpenIoCompletion, 12 ) \ + SYSCALL_ENTRY( 0x0066, NtOpenJobObject, 12 ) \ + SYSCALL_ENTRY( 0x0067, NtOpenKey, 12 ) \ + SYSCALL_ENTRY( 0x0068, NtOpenKeyEx, 16 ) \ + SYSCALL_ENTRY( 0x0069, NtOpenKeyTransacted, 16 ) \ + SYSCALL_ENTRY( 0x006a, NtOpenKeyTransactedEx, 20 ) \ + SYSCALL_ENTRY( 0x006b, NtOpenKeyedEvent, 12 ) \ + SYSCALL_ENTRY( 0x006c, NtOpenMutant, 12 ) \ + SYSCALL_ENTRY( 0x006d, NtOpenProcess, 16 ) \ + SYSCALL_ENTRY( 0x006e, NtOpenProcessToken, 12 ) \ + SYSCALL_ENTRY( 0x006f, NtOpenProcessTokenEx, 16 ) \ + SYSCALL_ENTRY( 0x0070, NtOpenSection, 12 ) \ + SYSCALL_ENTRY( 0x0071, NtOpenSemaphore, 12 ) \ + SYSCALL_ENTRY( 0x0072, NtOpenSymbolicLinkObject, 12 ) \ + SYSCALL_ENTRY( 0x0073, NtOpenThread, 16 ) \ + SYSCALL_ENTRY( 0x0074, NtOpenThreadToken, 16 ) \ + SYSCALL_ENTRY( 0x0075, NtOpenThreadTokenEx, 20 ) \ + SYSCALL_ENTRY( 0x0076, NtOpenTimer, 12 ) \ + SYSCALL_ENTRY( 0x0077, NtPowerInformation, 20 ) \ + SYSCALL_ENTRY( 0x0078, NtPrivilegeCheck, 12 ) \ + SYSCALL_ENTRY( 0x0079, NtProtectVirtualMemory, 20 ) \ + SYSCALL_ENTRY( 0x007a, NtPulseEvent, 8 ) \ + SYSCALL_ENTRY( 0x007b, NtQueryAttributesFile, 8 ) \ + SYSCALL_ENTRY( 0x007c, NtQueryDefaultLocale, 8 ) \ + SYSCALL_ENTRY( 0x007d, NtQueryDefaultUILanguage, 4 ) \ + SYSCALL_ENTRY( 0x007e, NtQueryDirectoryFile, 44 ) \ + SYSCALL_ENTRY( 0x007f, NtQueryDirectoryObject, 28 ) \ + SYSCALL_ENTRY( 0x0080, NtQueryEaFile, 36 ) \ + SYSCALL_ENTRY( 0x0081, NtQueryEvent, 20 ) \ + SYSCALL_ENTRY( 0x0082, NtQueryFullAttributesFile, 8 ) \ + SYSCALL_ENTRY( 0x0083, NtQueryInformationAtom, 20 ) \ + SYSCALL_ENTRY( 0x0084, NtQueryInformationFile, 20 ) \ + SYSCALL_ENTRY( 0x0085, NtQueryInformationJobObject, 20 ) \ + SYSCALL_ENTRY( 0x0086, NtQueryInformationProcess, 20 ) \ + SYSCALL_ENTRY( 0x0087, NtQueryInformationThread, 20 ) \ + SYSCALL_ENTRY( 0x0088, NtQueryInformationToken, 20 ) \ + SYSCALL_ENTRY( 0x0089, NtQueryInstallUILanguage, 4 ) \ + SYSCALL_ENTRY( 0x008a, NtQueryIoCompletion, 20 ) \ + SYSCALL_ENTRY( 0x008b, NtQueryKey, 20 ) \ + SYSCALL_ENTRY( 0x008c, NtQueryLicenseValue, 20 ) \ + SYSCALL_ENTRY( 0x008d, NtQueryMultipleValueKey, 24 ) \ + SYSCALL_ENTRY( 0x008e, NtQueryMutant, 20 ) \ + SYSCALL_ENTRY( 0x008f, NtQueryObject, 20 ) \ + SYSCALL_ENTRY( 0x0090, NtQueryPerformanceCounter, 8 ) \ + SYSCALL_ENTRY( 0x0091, NtQuerySection, 20 ) \ + SYSCALL_ENTRY( 0x0092, NtQuerySecurityObject, 20 ) \ + SYSCALL_ENTRY( 0x0093, NtQuerySemaphore, 20 ) \ + SYSCALL_ENTRY( 0x0094, NtQuerySymbolicLinkObject, 12 ) \ + SYSCALL_ENTRY( 0x0095, NtQuerySystemEnvironmentValue, 16 ) \ + SYSCALL_ENTRY( 0x0096, NtQuerySystemEnvironmentValueEx, 20 ) \ + SYSCALL_ENTRY( 0x0097, NtQuerySystemInformation, 16 ) \ + SYSCALL_ENTRY( 0x0098, NtQuerySystemInformationEx, 24 ) \ + SYSCALL_ENTRY( 0x0099, NtQuerySystemTime, 4 ) \ + SYSCALL_ENTRY( 0x009a, NtQueryTimer, 20 ) \ + SYSCALL_ENTRY( 0x009b, NtQueryTimerResolution, 12 ) \ + SYSCALL_ENTRY( 0x009c, NtQueryValueKey, 24 ) \ + SYSCALL_ENTRY( 0x009d, NtQueryVirtualMemory, 24 ) \ + SYSCALL_ENTRY( 0x009e, NtQueryVolumeInformationFile, 20 ) \ + SYSCALL_ENTRY( 0x009f, NtQueueApcThread, 20 ) \ + SYSCALL_ENTRY( 0x00a0, NtQueueApcThreadEx, 24 ) \ + SYSCALL_ENTRY( 0x00a1, NtRaiseException, 12 ) \ + SYSCALL_ENTRY( 0x00a2, NtRaiseHardError, 24 ) \ + SYSCALL_ENTRY( 0x00a3, NtReadFile, 36 ) \ + SYSCALL_ENTRY( 0x00a4, NtReadFileScatter, 36 ) \ + SYSCALL_ENTRY( 0x00a5, NtReadVirtualMemory, 20 ) \ + SYSCALL_ENTRY( 0x00a6, NtRegisterThreadTerminatePort, 4 ) \ + SYSCALL_ENTRY( 0x00a7, NtReleaseKeyedEvent, 16 ) \ + SYSCALL_ENTRY( 0x00a8, NtReleaseMutant, 8 ) \ + SYSCALL_ENTRY( 0x00a9, NtReleaseSemaphore, 12 ) \ + SYSCALL_ENTRY( 0x00aa, NtRemoveIoCompletion, 20 ) \ + SYSCALL_ENTRY( 0x00ab, NtRemoveIoCompletionEx, 24 ) \ + SYSCALL_ENTRY( 0x00ac, NtRemoveProcessDebug, 8 ) \ + SYSCALL_ENTRY( 0x00ad, NtRenameKey, 8 ) \ + SYSCALL_ENTRY( 0x00ae, NtReplaceKey, 12 ) \ + SYSCALL_ENTRY( 0x00af, NtReplyWaitReceivePort, 16 ) \ + SYSCALL_ENTRY( 0x00b0, NtRequestWaitReplyPort, 12 ) \ + SYSCALL_ENTRY( 0x00b1, NtResetEvent, 8 ) \ + SYSCALL_ENTRY( 0x00b2, NtResetWriteWatch, 12 ) \ + SYSCALL_ENTRY( 0x00b3, NtRestoreKey, 12 ) \ + SYSCALL_ENTRY( 0x00b4, NtResumeProcess, 4 ) \ + SYSCALL_ENTRY( 0x00b5, NtResumeThread, 8 ) \ + SYSCALL_ENTRY( 0x00b6, NtRollbackTransaction, 8 ) \ + SYSCALL_ENTRY( 0x00b7, NtSaveKey, 8 ) \ + SYSCALL_ENTRY( 0x00b8, NtSecureConnectPort, 36 ) \ + SYSCALL_ENTRY( 0x00b9, NtSetContextThread, 8 ) \ + SYSCALL_ENTRY( 0x00ba, NtSetDebugFilterState, 12 ) \ + SYSCALL_ENTRY( 0x00bb, NtSetDefaultLocale, 8 ) \ + SYSCALL_ENTRY( 0x00bc, NtSetDefaultUILanguage, 4 ) \ + SYSCALL_ENTRY( 0x00bd, NtSetEaFile, 16 ) \ + SYSCALL_ENTRY( 0x00be, NtSetEvent, 8 ) \ + SYSCALL_ENTRY( 0x00bf, NtSetInformationDebugObject, 20 ) \ + SYSCALL_ENTRY( 0x00c0, NtSetInformationFile, 20 ) \ + SYSCALL_ENTRY( 0x00c1, NtSetInformationJobObject, 16 ) \ + SYSCALL_ENTRY( 0x00c2, NtSetInformationKey, 16 ) \ + SYSCALL_ENTRY( 0x00c3, NtSetInformationObject, 16 ) \ + SYSCALL_ENTRY( 0x00c4, NtSetInformationProcess, 16 ) \ + SYSCALL_ENTRY( 0x00c5, NtSetInformationThread, 16 ) \ + SYSCALL_ENTRY( 0x00c6, NtSetInformationToken, 16 ) \ + SYSCALL_ENTRY( 0x00c7, NtSetInformationVirtualMemory, 24 ) \ + SYSCALL_ENTRY( 0x00c8, NtSetIntervalProfile, 8 ) \ + SYSCALL_ENTRY( 0x00c9, NtSetIoCompletion, 20 ) \ + SYSCALL_ENTRY( 0x00ca, NtSetLdtEntries, 24 ) \ + SYSCALL_ENTRY( 0x00cb, NtSetSecurityObject, 12 ) \ + SYSCALL_ENTRY( 0x00cc, NtSetSystemInformation, 12 ) \ + SYSCALL_ENTRY( 0x00cd, NtSetSystemTime, 8 ) \ + SYSCALL_ENTRY( 0x00ce, NtSetThreadExecutionState, 8 ) \ + SYSCALL_ENTRY( 0x00cf, NtSetTimer, 28 ) \ + SYSCALL_ENTRY( 0x00d0, NtSetTimerResolution, 12 ) \ + SYSCALL_ENTRY( 0x00d1, NtSetValueKey, 24 ) \ + SYSCALL_ENTRY( 0x00d2, NtSetVolumeInformationFile, 20 ) \ + SYSCALL_ENTRY( 0x00d3, NtShutdownSystem, 4 ) \ + SYSCALL_ENTRY( 0x00d4, NtSignalAndWaitForSingleObject, 16 ) \ + SYSCALL_ENTRY( 0x00d5, NtSuspendProcess, 4 ) \ + SYSCALL_ENTRY( 0x00d6, NtSuspendThread, 8 ) \ + SYSCALL_ENTRY( 0x00d7, NtSystemDebugControl, 24 ) \ + SYSCALL_ENTRY( 0x00d8, NtTerminateJobObject, 8 ) \ + SYSCALL_ENTRY( 0x00d9, NtTerminateProcess, 8 ) \ + SYSCALL_ENTRY( 0x00da, NtTerminateThread, 8 ) \ + SYSCALL_ENTRY( 0x00db, NtTestAlert, 0 ) \ + SYSCALL_ENTRY( 0x00dc, NtTraceControl, 24 ) \ + SYSCALL_ENTRY( 0x00dd, NtUnloadDriver, 4 ) \ + SYSCALL_ENTRY( 0x00de, NtUnloadKey, 4 ) \ + SYSCALL_ENTRY( 0x00df, NtUnlockFile, 20 ) \ + SYSCALL_ENTRY( 0x00e0, NtUnlockVirtualMemory, 16 ) \ + SYSCALL_ENTRY( 0x00e1, NtUnmapViewOfSection, 8 ) \ + SYSCALL_ENTRY( 0x00e2, NtUnmapViewOfSectionEx, 12 ) \ + SYSCALL_ENTRY( 0x00e3, NtWaitForAlertByThreadId, 8 ) \ + SYSCALL_ENTRY( 0x00e4, NtWaitForDebugEvent, 16 ) \ + SYSCALL_ENTRY( 0x00e5, NtWaitForKeyedEvent, 16 ) \ + SYSCALL_ENTRY( 0x00e6, NtWaitForMultipleObjects, 20 ) \ + SYSCALL_ENTRY( 0x00e7, NtWaitForSingleObject, 12 ) \ + SYSCALL_ENTRY( 0x00e8, NtWow64AllocateVirtualMemory64, 28 ) \ + SYSCALL_ENTRY( 0x00e9, NtWow64GetNativeSystemInformation, 16 ) \ + SYSCALL_ENTRY( 0x00ea, NtWow64IsProcessorFeaturePresent, 4 ) \ + SYSCALL_ENTRY( 0x00eb, NtWow64ReadVirtualMemory64, 28 ) \ + SYSCALL_ENTRY( 0x00ec, NtWow64WriteVirtualMemory64, 28 ) \ + SYSCALL_ENTRY( 0x00ed, NtWriteFile, 36 ) \ + SYSCALL_ENTRY( 0x00ee, NtWriteFileGather, 36 ) \ + SYSCALL_ENTRY( 0x00ef, NtWriteVirtualMemory, 20 ) \ + SYSCALL_ENTRY( 0x00f0, NtYieldExecution, 0 ) \ + SYSCALL_ENTRY( 0x00f1, wine_nt_to_unix_file_name, 16 ) \ + SYSCALL_ENTRY( 0x00f2, wine_unix_to_nt_file_name, 12 )
#define ALL_SYSCALLS64 \ SYSCALL_ENTRY( 0x0000, NtAcceptConnectPort, 48 ) \ @@ -321,164 +322,165 @@ 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, NtMakePermanentObject, 8 ) \ - SYSCALL_ENTRY( 0x005b, NtMakeTemporaryObject, 8 ) \ - SYSCALL_ENTRY( 0x005c, NtMapViewOfSection, 80 ) \ - SYSCALL_ENTRY( 0x005d, NtMapViewOfSectionEx, 72 ) \ - SYSCALL_ENTRY( 0x005e, NtNotifyChangeDirectoryFile, 72 ) \ - SYSCALL_ENTRY( 0x005f, NtNotifyChangeKey, 80 ) \ - SYSCALL_ENTRY( 0x0060, NtNotifyChangeMultipleKeys, 96 ) \ - SYSCALL_ENTRY( 0x0061, NtOpenDirectoryObject, 24 ) \ - SYSCALL_ENTRY( 0x0062, NtOpenEvent, 24 ) \ - SYSCALL_ENTRY( 0x0063, NtOpenFile, 48 ) \ - SYSCALL_ENTRY( 0x0064, NtOpenIoCompletion, 24 ) \ - SYSCALL_ENTRY( 0x0065, NtOpenJobObject, 24 ) \ - SYSCALL_ENTRY( 0x0066, NtOpenKey, 24 ) \ - SYSCALL_ENTRY( 0x0067, NtOpenKeyEx, 32 ) \ - SYSCALL_ENTRY( 0x0068, NtOpenKeyTransacted, 32 ) \ - SYSCALL_ENTRY( 0x0069, NtOpenKeyTransactedEx, 40 ) \ - SYSCALL_ENTRY( 0x006a, NtOpenKeyedEvent, 24 ) \ - SYSCALL_ENTRY( 0x006b, NtOpenMutant, 24 ) \ - SYSCALL_ENTRY( 0x006c, NtOpenProcess, 32 ) \ - SYSCALL_ENTRY( 0x006d, NtOpenProcessToken, 24 ) \ - SYSCALL_ENTRY( 0x006e, NtOpenProcessTokenEx, 32 ) \ - SYSCALL_ENTRY( 0x006f, NtOpenSection, 24 ) \ - SYSCALL_ENTRY( 0x0070, NtOpenSemaphore, 24 ) \ - SYSCALL_ENTRY( 0x0071, NtOpenSymbolicLinkObject, 24 ) \ - SYSCALL_ENTRY( 0x0072, NtOpenThread, 32 ) \ - SYSCALL_ENTRY( 0x0073, NtOpenThreadToken, 32 ) \ - SYSCALL_ENTRY( 0x0074, NtOpenThreadTokenEx, 40 ) \ - SYSCALL_ENTRY( 0x0075, NtOpenTimer, 24 ) \ - SYSCALL_ENTRY( 0x0076, NtPowerInformation, 40 ) \ - SYSCALL_ENTRY( 0x0077, NtPrivilegeCheck, 24 ) \ - SYSCALL_ENTRY( 0x0078, NtProtectVirtualMemory, 40 ) \ - SYSCALL_ENTRY( 0x0079, NtPulseEvent, 16 ) \ - SYSCALL_ENTRY( 0x007a, NtQueryAttributesFile, 16 ) \ - SYSCALL_ENTRY( 0x007b, NtQueryDefaultLocale, 16 ) \ - SYSCALL_ENTRY( 0x007c, NtQueryDefaultUILanguage, 8 ) \ - SYSCALL_ENTRY( 0x007d, NtQueryDirectoryFile, 88 ) \ - SYSCALL_ENTRY( 0x007e, NtQueryDirectoryObject, 56 ) \ - SYSCALL_ENTRY( 0x007f, NtQueryEaFile, 72 ) \ - SYSCALL_ENTRY( 0x0080, NtQueryEvent, 40 ) \ - SYSCALL_ENTRY( 0x0081, NtQueryFullAttributesFile, 16 ) \ - SYSCALL_ENTRY( 0x0082, NtQueryInformationAtom, 40 ) \ - SYSCALL_ENTRY( 0x0083, NtQueryInformationFile, 40 ) \ - SYSCALL_ENTRY( 0x0084, NtQueryInformationJobObject, 40 ) \ - SYSCALL_ENTRY( 0x0085, NtQueryInformationProcess, 40 ) \ - SYSCALL_ENTRY( 0x0086, NtQueryInformationThread, 40 ) \ - SYSCALL_ENTRY( 0x0087, NtQueryInformationToken, 40 ) \ - SYSCALL_ENTRY( 0x0088, NtQueryInstallUILanguage, 8 ) \ - SYSCALL_ENTRY( 0x0089, NtQueryIoCompletion, 40 ) \ - SYSCALL_ENTRY( 0x008a, NtQueryKey, 40 ) \ - SYSCALL_ENTRY( 0x008b, NtQueryLicenseValue, 40 ) \ - SYSCALL_ENTRY( 0x008c, NtQueryMultipleValueKey, 48 ) \ - SYSCALL_ENTRY( 0x008d, NtQueryMutant, 40 ) \ - SYSCALL_ENTRY( 0x008e, NtQueryObject, 40 ) \ - SYSCALL_ENTRY( 0x008f, NtQueryPerformanceCounter, 16 ) \ - SYSCALL_ENTRY( 0x0090, NtQuerySection, 40 ) \ - SYSCALL_ENTRY( 0x0091, NtQuerySecurityObject, 40 ) \ - SYSCALL_ENTRY( 0x0092, NtQuerySemaphore, 40 ) \ - SYSCALL_ENTRY( 0x0093, NtQuerySymbolicLinkObject, 24 ) \ - SYSCALL_ENTRY( 0x0094, NtQuerySystemEnvironmentValue, 32 ) \ - SYSCALL_ENTRY( 0x0095, NtQuerySystemEnvironmentValueEx, 40 ) \ - SYSCALL_ENTRY( 0x0096, NtQuerySystemInformation, 32 ) \ - SYSCALL_ENTRY( 0x0097, NtQuerySystemInformationEx, 48 ) \ - SYSCALL_ENTRY( 0x0098, NtQuerySystemTime, 8 ) \ - SYSCALL_ENTRY( 0x0099, NtQueryTimer, 40 ) \ - SYSCALL_ENTRY( 0x009a, NtQueryTimerResolution, 24 ) \ - SYSCALL_ENTRY( 0x009b, NtQueryValueKey, 48 ) \ - SYSCALL_ENTRY( 0x009c, NtQueryVirtualMemory, 48 ) \ - SYSCALL_ENTRY( 0x009d, NtQueryVolumeInformationFile, 40 ) \ - SYSCALL_ENTRY( 0x009e, NtQueueApcThread, 40 ) \ - SYSCALL_ENTRY( 0x009f, NtQueueApcThreadEx, 48 ) \ - SYSCALL_ENTRY( 0x00a0, NtRaiseException, 24 ) \ - SYSCALL_ENTRY( 0x00a1, NtRaiseHardError, 48 ) \ - SYSCALL_ENTRY( 0x00a2, NtReadFile, 72 ) \ - SYSCALL_ENTRY( 0x00a3, NtReadFileScatter, 72 ) \ - SYSCALL_ENTRY( 0x00a4, NtReadVirtualMemory, 40 ) \ - SYSCALL_ENTRY( 0x00a5, NtRegisterThreadTerminatePort, 8 ) \ - SYSCALL_ENTRY( 0x00a6, NtReleaseKeyedEvent, 32 ) \ - SYSCALL_ENTRY( 0x00a7, NtReleaseMutant, 16 ) \ - SYSCALL_ENTRY( 0x00a8, NtReleaseSemaphore, 24 ) \ - SYSCALL_ENTRY( 0x00a9, NtRemoveIoCompletion, 40 ) \ - SYSCALL_ENTRY( 0x00aa, NtRemoveIoCompletionEx, 48 ) \ - SYSCALL_ENTRY( 0x00ab, NtRemoveProcessDebug, 16 ) \ - SYSCALL_ENTRY( 0x00ac, NtRenameKey, 16 ) \ - SYSCALL_ENTRY( 0x00ad, NtReplaceKey, 24 ) \ - SYSCALL_ENTRY( 0x00ae, NtReplyWaitReceivePort, 32 ) \ - SYSCALL_ENTRY( 0x00af, NtRequestWaitReplyPort, 24 ) \ - SYSCALL_ENTRY( 0x00b0, NtResetEvent, 16 ) \ - SYSCALL_ENTRY( 0x00b1, NtResetWriteWatch, 24 ) \ - SYSCALL_ENTRY( 0x00b2, NtRestoreKey, 24 ) \ - SYSCALL_ENTRY( 0x00b3, NtResumeProcess, 8 ) \ - SYSCALL_ENTRY( 0x00b4, NtResumeThread, 16 ) \ - SYSCALL_ENTRY( 0x00b5, NtRollbackTransaction, 16 ) \ - SYSCALL_ENTRY( 0x00b6, NtSaveKey, 16 ) \ - SYSCALL_ENTRY( 0x00b7, NtSecureConnectPort, 72 ) \ - SYSCALL_ENTRY( 0x00b8, NtSetContextThread, 16 ) \ - SYSCALL_ENTRY( 0x00b9, NtSetDebugFilterState, 24 ) \ - SYSCALL_ENTRY( 0x00ba, NtSetDefaultLocale, 16 ) \ - SYSCALL_ENTRY( 0x00bb, NtSetDefaultUILanguage, 8 ) \ - SYSCALL_ENTRY( 0x00bc, NtSetEaFile, 32 ) \ - SYSCALL_ENTRY( 0x00bd, NtSetEvent, 16 ) \ - SYSCALL_ENTRY( 0x00be, NtSetInformationDebugObject, 40 ) \ - SYSCALL_ENTRY( 0x00bf, NtSetInformationFile, 40 ) \ - SYSCALL_ENTRY( 0x00c0, NtSetInformationJobObject, 32 ) \ - SYSCALL_ENTRY( 0x00c1, NtSetInformationKey, 32 ) \ - SYSCALL_ENTRY( 0x00c2, NtSetInformationObject, 32 ) \ - SYSCALL_ENTRY( 0x00c3, NtSetInformationProcess, 32 ) \ - SYSCALL_ENTRY( 0x00c4, NtSetInformationThread, 32 ) \ - SYSCALL_ENTRY( 0x00c5, NtSetInformationToken, 32 ) \ - SYSCALL_ENTRY( 0x00c6, NtSetInformationVirtualMemory, 48 ) \ - SYSCALL_ENTRY( 0x00c7, NtSetIntervalProfile, 16 ) \ - SYSCALL_ENTRY( 0x00c8, NtSetIoCompletion, 40 ) \ - SYSCALL_ENTRY( 0x00c9, NtSetLdtEntries, 32 ) \ - SYSCALL_ENTRY( 0x00ca, NtSetSecurityObject, 24 ) \ - SYSCALL_ENTRY( 0x00cb, NtSetSystemInformation, 24 ) \ - SYSCALL_ENTRY( 0x00cc, NtSetSystemTime, 16 ) \ - SYSCALL_ENTRY( 0x00cd, NtSetThreadExecutionState, 16 ) \ - SYSCALL_ENTRY( 0x00ce, NtSetTimer, 56 ) \ - SYSCALL_ENTRY( 0x00cf, NtSetTimerResolution, 24 ) \ - SYSCALL_ENTRY( 0x00d0, NtSetValueKey, 48 ) \ - SYSCALL_ENTRY( 0x00d1, NtSetVolumeInformationFile, 40 ) \ - SYSCALL_ENTRY( 0x00d2, NtShutdownSystem, 8 ) \ - SYSCALL_ENTRY( 0x00d3, NtSignalAndWaitForSingleObject, 32 ) \ - SYSCALL_ENTRY( 0x00d4, NtSuspendProcess, 8 ) \ - SYSCALL_ENTRY( 0x00d5, NtSuspendThread, 16 ) \ - SYSCALL_ENTRY( 0x00d6, NtSystemDebugControl, 48 ) \ - SYSCALL_ENTRY( 0x00d7, NtTerminateJobObject, 16 ) \ - SYSCALL_ENTRY( 0x00d8, NtTerminateProcess, 16 ) \ - SYSCALL_ENTRY( 0x00d9, NtTerminateThread, 16 ) \ - SYSCALL_ENTRY( 0x00da, NtTestAlert, 0 ) \ - SYSCALL_ENTRY( 0x00db, NtTraceControl, 48 ) \ - SYSCALL_ENTRY( 0x00dc, NtUnloadDriver, 8 ) \ - SYSCALL_ENTRY( 0x00dd, NtUnloadKey, 8 ) \ - SYSCALL_ENTRY( 0x00de, NtUnlockFile, 40 ) \ - SYSCALL_ENTRY( 0x00df, NtUnlockVirtualMemory, 32 ) \ - SYSCALL_ENTRY( 0x00e0, NtUnmapViewOfSection, 16 ) \ - SYSCALL_ENTRY( 0x00e1, NtUnmapViewOfSectionEx, 24 ) \ - SYSCALL_ENTRY( 0x00e2, NtWaitForAlertByThreadId, 16 ) \ - SYSCALL_ENTRY( 0x00e3, NtWaitForDebugEvent, 32 ) \ - SYSCALL_ENTRY( 0x00e4, NtWaitForKeyedEvent, 32 ) \ - SYSCALL_ENTRY( 0x00e5, NtWaitForMultipleObjects, 40 ) \ - SYSCALL_ENTRY( 0x00e6, NtWaitForSingleObject, 24 ) \ - SYSCALL_ENTRY( 0x00e7, NtWriteFile, 72 ) \ - SYSCALL_ENTRY( 0x00e8, NtWriteFileGather, 72 ) \ - SYSCALL_ENTRY( 0x00e9, NtWriteVirtualMemory, 40 ) \ - SYSCALL_ENTRY( 0x00ea, NtYieldExecution, 0 ) \ - SYSCALL_ENTRY( 0x00eb, wine_nt_to_unix_file_name, 32 ) \ - SYSCALL_ENTRY( 0x00ec, wine_unix_to_nt_file_name, 24 ) + SYSCALL_ENTRY( 0x004c, NtGetNextProcess, 40 ) \ + SYSCALL_ENTRY( 0x004d, NtGetNextThread, 48 ) \ + SYSCALL_ENTRY( 0x004e, NtGetNlsSectionPtr, 40 ) \ + SYSCALL_ENTRY( 0x004f, NtGetWriteWatch, 56 ) \ + SYSCALL_ENTRY( 0x0050, NtImpersonateAnonymousToken, 8 ) \ + SYSCALL_ENTRY( 0x0051, NtInitializeNlsFiles, 24 ) \ + SYSCALL_ENTRY( 0x0052, NtInitiatePowerAction, 32 ) \ + SYSCALL_ENTRY( 0x0053, NtIsProcessInJob, 16 ) \ + SYSCALL_ENTRY( 0x0054, NtListenPort, 16 ) \ + SYSCALL_ENTRY( 0x0055, NtLoadDriver, 8 ) \ + SYSCALL_ENTRY( 0x0056, NtLoadKey, 16 ) \ + SYSCALL_ENTRY( 0x0057, NtLoadKey2, 24 ) \ + SYSCALL_ENTRY( 0x0058, NtLoadKeyEx, 64 ) \ + SYSCALL_ENTRY( 0x0059, NtLockFile, 80 ) \ + SYSCALL_ENTRY( 0x005a, NtLockVirtualMemory, 32 ) \ + SYSCALL_ENTRY( 0x005b, NtMakePermanentObject, 8 ) \ + SYSCALL_ENTRY( 0x005c, NtMakeTemporaryObject, 8 ) \ + SYSCALL_ENTRY( 0x005d, NtMapViewOfSection, 80 ) \ + SYSCALL_ENTRY( 0x005e, NtMapViewOfSectionEx, 72 ) \ + SYSCALL_ENTRY( 0x005f, NtNotifyChangeDirectoryFile, 72 ) \ + SYSCALL_ENTRY( 0x0060, NtNotifyChangeKey, 80 ) \ + SYSCALL_ENTRY( 0x0061, NtNotifyChangeMultipleKeys, 96 ) \ + SYSCALL_ENTRY( 0x0062, NtOpenDirectoryObject, 24 ) \ + SYSCALL_ENTRY( 0x0063, NtOpenEvent, 24 ) \ + SYSCALL_ENTRY( 0x0064, NtOpenFile, 48 ) \ + SYSCALL_ENTRY( 0x0065, NtOpenIoCompletion, 24 ) \ + SYSCALL_ENTRY( 0x0066, NtOpenJobObject, 24 ) \ + SYSCALL_ENTRY( 0x0067, NtOpenKey, 24 ) \ + SYSCALL_ENTRY( 0x0068, NtOpenKeyEx, 32 ) \ + SYSCALL_ENTRY( 0x0069, NtOpenKeyTransacted, 32 ) \ + SYSCALL_ENTRY( 0x006a, NtOpenKeyTransactedEx, 40 ) \ + SYSCALL_ENTRY( 0x006b, NtOpenKeyedEvent, 24 ) \ + SYSCALL_ENTRY( 0x006c, NtOpenMutant, 24 ) \ + SYSCALL_ENTRY( 0x006d, NtOpenProcess, 32 ) \ + SYSCALL_ENTRY( 0x006e, NtOpenProcessToken, 24 ) \ + SYSCALL_ENTRY( 0x006f, NtOpenProcessTokenEx, 32 ) \ + SYSCALL_ENTRY( 0x0070, NtOpenSection, 24 ) \ + SYSCALL_ENTRY( 0x0071, NtOpenSemaphore, 24 ) \ + SYSCALL_ENTRY( 0x0072, NtOpenSymbolicLinkObject, 24 ) \ + SYSCALL_ENTRY( 0x0073, NtOpenThread, 32 ) \ + SYSCALL_ENTRY( 0x0074, NtOpenThreadToken, 32 ) \ + SYSCALL_ENTRY( 0x0075, NtOpenThreadTokenEx, 40 ) \ + SYSCALL_ENTRY( 0x0076, NtOpenTimer, 24 ) \ + SYSCALL_ENTRY( 0x0077, NtPowerInformation, 40 ) \ + SYSCALL_ENTRY( 0x0078, NtPrivilegeCheck, 24 ) \ + SYSCALL_ENTRY( 0x0079, NtProtectVirtualMemory, 40 ) \ + SYSCALL_ENTRY( 0x007a, NtPulseEvent, 16 ) \ + SYSCALL_ENTRY( 0x007b, NtQueryAttributesFile, 16 ) \ + SYSCALL_ENTRY( 0x007c, NtQueryDefaultLocale, 16 ) \ + SYSCALL_ENTRY( 0x007d, NtQueryDefaultUILanguage, 8 ) \ + SYSCALL_ENTRY( 0x007e, NtQueryDirectoryFile, 88 ) \ + SYSCALL_ENTRY( 0x007f, NtQueryDirectoryObject, 56 ) \ + SYSCALL_ENTRY( 0x0080, NtQueryEaFile, 72 ) \ + SYSCALL_ENTRY( 0x0081, NtQueryEvent, 40 ) \ + SYSCALL_ENTRY( 0x0082, NtQueryFullAttributesFile, 16 ) \ + SYSCALL_ENTRY( 0x0083, NtQueryInformationAtom, 40 ) \ + SYSCALL_ENTRY( 0x0084, NtQueryInformationFile, 40 ) \ + SYSCALL_ENTRY( 0x0085, NtQueryInformationJobObject, 40 ) \ + SYSCALL_ENTRY( 0x0086, NtQueryInformationProcess, 40 ) \ + SYSCALL_ENTRY( 0x0087, NtQueryInformationThread, 40 ) \ + SYSCALL_ENTRY( 0x0088, NtQueryInformationToken, 40 ) \ + SYSCALL_ENTRY( 0x0089, NtQueryInstallUILanguage, 8 ) \ + SYSCALL_ENTRY( 0x008a, NtQueryIoCompletion, 40 ) \ + SYSCALL_ENTRY( 0x008b, NtQueryKey, 40 ) \ + SYSCALL_ENTRY( 0x008c, NtQueryLicenseValue, 40 ) \ + SYSCALL_ENTRY( 0x008d, NtQueryMultipleValueKey, 48 ) \ + SYSCALL_ENTRY( 0x008e, NtQueryMutant, 40 ) \ + SYSCALL_ENTRY( 0x008f, NtQueryObject, 40 ) \ + SYSCALL_ENTRY( 0x0090, NtQueryPerformanceCounter, 16 ) \ + SYSCALL_ENTRY( 0x0091, NtQuerySection, 40 ) \ + SYSCALL_ENTRY( 0x0092, NtQuerySecurityObject, 40 ) \ + SYSCALL_ENTRY( 0x0093, NtQuerySemaphore, 40 ) \ + SYSCALL_ENTRY( 0x0094, NtQuerySymbolicLinkObject, 24 ) \ + SYSCALL_ENTRY( 0x0095, NtQuerySystemEnvironmentValue, 32 ) \ + SYSCALL_ENTRY( 0x0096, NtQuerySystemEnvironmentValueEx, 40 ) \ + SYSCALL_ENTRY( 0x0097, NtQuerySystemInformation, 32 ) \ + SYSCALL_ENTRY( 0x0098, NtQuerySystemInformationEx, 48 ) \ + SYSCALL_ENTRY( 0x0099, NtQuerySystemTime, 8 ) \ + SYSCALL_ENTRY( 0x009a, NtQueryTimer, 40 ) \ + SYSCALL_ENTRY( 0x009b, NtQueryTimerResolution, 24 ) \ + SYSCALL_ENTRY( 0x009c, NtQueryValueKey, 48 ) \ + SYSCALL_ENTRY( 0x009d, NtQueryVirtualMemory, 48 ) \ + SYSCALL_ENTRY( 0x009e, NtQueryVolumeInformationFile, 40 ) \ + SYSCALL_ENTRY( 0x009f, NtQueueApcThread, 40 ) \ + SYSCALL_ENTRY( 0x00a0, NtQueueApcThreadEx, 48 ) \ + SYSCALL_ENTRY( 0x00a1, NtRaiseException, 24 ) \ + SYSCALL_ENTRY( 0x00a2, NtRaiseHardError, 48 ) \ + SYSCALL_ENTRY( 0x00a3, NtReadFile, 72 ) \ + SYSCALL_ENTRY( 0x00a4, NtReadFileScatter, 72 ) \ + SYSCALL_ENTRY( 0x00a5, NtReadVirtualMemory, 40 ) \ + SYSCALL_ENTRY( 0x00a6, NtRegisterThreadTerminatePort, 8 ) \ + SYSCALL_ENTRY( 0x00a7, NtReleaseKeyedEvent, 32 ) \ + SYSCALL_ENTRY( 0x00a8, NtReleaseMutant, 16 ) \ + SYSCALL_ENTRY( 0x00a9, NtReleaseSemaphore, 24 ) \ + SYSCALL_ENTRY( 0x00aa, NtRemoveIoCompletion, 40 ) \ + SYSCALL_ENTRY( 0x00ab, NtRemoveIoCompletionEx, 48 ) \ + SYSCALL_ENTRY( 0x00ac, NtRemoveProcessDebug, 16 ) \ + SYSCALL_ENTRY( 0x00ad, NtRenameKey, 16 ) \ + SYSCALL_ENTRY( 0x00ae, NtReplaceKey, 24 ) \ + SYSCALL_ENTRY( 0x00af, NtReplyWaitReceivePort, 32 ) \ + SYSCALL_ENTRY( 0x00b0, NtRequestWaitReplyPort, 24 ) \ + SYSCALL_ENTRY( 0x00b1, NtResetEvent, 16 ) \ + SYSCALL_ENTRY( 0x00b2, NtResetWriteWatch, 24 ) \ + SYSCALL_ENTRY( 0x00b3, NtRestoreKey, 24 ) \ + SYSCALL_ENTRY( 0x00b4, NtResumeProcess, 8 ) \ + SYSCALL_ENTRY( 0x00b5, NtResumeThread, 16 ) \ + SYSCALL_ENTRY( 0x00b6, NtRollbackTransaction, 16 ) \ + SYSCALL_ENTRY( 0x00b7, NtSaveKey, 16 ) \ + SYSCALL_ENTRY( 0x00b8, NtSecureConnectPort, 72 ) \ + SYSCALL_ENTRY( 0x00b9, NtSetContextThread, 16 ) \ + SYSCALL_ENTRY( 0x00ba, NtSetDebugFilterState, 24 ) \ + SYSCALL_ENTRY( 0x00bb, NtSetDefaultLocale, 16 ) \ + SYSCALL_ENTRY( 0x00bc, NtSetDefaultUILanguage, 8 ) \ + SYSCALL_ENTRY( 0x00bd, NtSetEaFile, 32 ) \ + SYSCALL_ENTRY( 0x00be, NtSetEvent, 16 ) \ + SYSCALL_ENTRY( 0x00bf, NtSetInformationDebugObject, 40 ) \ + SYSCALL_ENTRY( 0x00c0, NtSetInformationFile, 40 ) \ + SYSCALL_ENTRY( 0x00c1, NtSetInformationJobObject, 32 ) \ + SYSCALL_ENTRY( 0x00c2, NtSetInformationKey, 32 ) \ + SYSCALL_ENTRY( 0x00c3, NtSetInformationObject, 32 ) \ + SYSCALL_ENTRY( 0x00c4, NtSetInformationProcess, 32 ) \ + SYSCALL_ENTRY( 0x00c5, NtSetInformationThread, 32 ) \ + SYSCALL_ENTRY( 0x00c6, NtSetInformationToken, 32 ) \ + SYSCALL_ENTRY( 0x00c7, NtSetInformationVirtualMemory, 48 ) \ + SYSCALL_ENTRY( 0x00c8, NtSetIntervalProfile, 16 ) \ + SYSCALL_ENTRY( 0x00c9, NtSetIoCompletion, 40 ) \ + SYSCALL_ENTRY( 0x00ca, NtSetLdtEntries, 32 ) \ + SYSCALL_ENTRY( 0x00cb, NtSetSecurityObject, 24 ) \ + SYSCALL_ENTRY( 0x00cc, NtSetSystemInformation, 24 ) \ + SYSCALL_ENTRY( 0x00cd, NtSetSystemTime, 16 ) \ + SYSCALL_ENTRY( 0x00ce, NtSetThreadExecutionState, 16 ) \ + SYSCALL_ENTRY( 0x00cf, NtSetTimer, 56 ) \ + SYSCALL_ENTRY( 0x00d0, NtSetTimerResolution, 24 ) \ + SYSCALL_ENTRY( 0x00d1, NtSetValueKey, 48 ) \ + SYSCALL_ENTRY( 0x00d2, NtSetVolumeInformationFile, 40 ) \ + SYSCALL_ENTRY( 0x00d3, NtShutdownSystem, 8 ) \ + SYSCALL_ENTRY( 0x00d4, NtSignalAndWaitForSingleObject, 32 ) \ + SYSCALL_ENTRY( 0x00d5, NtSuspendProcess, 8 ) \ + SYSCALL_ENTRY( 0x00d6, NtSuspendThread, 16 ) \ + SYSCALL_ENTRY( 0x00d7, NtSystemDebugControl, 48 ) \ + SYSCALL_ENTRY( 0x00d8, NtTerminateJobObject, 16 ) \ + SYSCALL_ENTRY( 0x00d9, NtTerminateProcess, 16 ) \ + SYSCALL_ENTRY( 0x00da, NtTerminateThread, 16 ) \ + SYSCALL_ENTRY( 0x00db, NtTestAlert, 0 ) \ + SYSCALL_ENTRY( 0x00dc, NtTraceControl, 48 ) \ + SYSCALL_ENTRY( 0x00dd, NtUnloadDriver, 8 ) \ + SYSCALL_ENTRY( 0x00de, NtUnloadKey, 8 ) \ + SYSCALL_ENTRY( 0x00df, NtUnlockFile, 40 ) \ + SYSCALL_ENTRY( 0x00e0, NtUnlockVirtualMemory, 32 ) \ + SYSCALL_ENTRY( 0x00e1, NtUnmapViewOfSection, 16 ) \ + SYSCALL_ENTRY( 0x00e2, NtUnmapViewOfSectionEx, 24 ) \ + SYSCALL_ENTRY( 0x00e3, NtWaitForAlertByThreadId, 16 ) \ + SYSCALL_ENTRY( 0x00e4, NtWaitForDebugEvent, 32 ) \ + SYSCALL_ENTRY( 0x00e5, NtWaitForKeyedEvent, 32 ) \ + SYSCALL_ENTRY( 0x00e6, NtWaitForMultipleObjects, 40 ) \ + SYSCALL_ENTRY( 0x00e7, NtWaitForSingleObject, 24 ) \ + SYSCALL_ENTRY( 0x00e8, NtWriteFile, 72 ) \ + SYSCALL_ENTRY( 0x00e9, NtWriteFileGather, 72 ) \ + SYSCALL_ENTRY( 0x00ea, NtWriteVirtualMemory, 40 ) \ + SYSCALL_ENTRY( 0x00eb, NtYieldExecution, 0 ) \ + SYSCALL_ENTRY( 0x00ec, wine_nt_to_unix_file_name, 32 ) \ + SYSCALL_ENTRY( 0x00ed, wine_unix_to_nt_file_name, 24 ) diff --git a/dlls/ntdll/unix/process.c b/dlls/ntdll/unix/process.c index cc2d820e723..25afa23be34 100644 --- a/dlls/ntdll/unix/process.c +++ b/dlls/ntdll/unix/process.c @@ -1820,6 +1820,18 @@ NTSTATUS WINAPI NtResumeProcess( HANDLE handle ) }
+/********************************************************************** + * NtGetNextProcess (NTDLL.@) + */ +NTSTATUS WINAPI NtGetNextProcess( HANDLE process, ACCESS_MASK access, ULONG attributes, + ULONG flags, HANDLE *handle ) +{ + FIXME( "process %p, access %#x, attributes %#x, flags %#x, handle %p. stub!\n", + process, (int)access, (int)attributes, (int)flags, handle ); + return STATUS_NOT_IMPLEMENTED; +} + + /********************************************************************** * NtDebugActiveProcess (NTDLL.@) */ diff --git a/dlls/wow64/process.c b/dlls/wow64/process.c index 4a769c042c5..cedb7ac8244 100644 --- a/dlls/wow64/process.c +++ b/dlls/wow64/process.c @@ -435,6 +435,27 @@ NTSTATUS WINAPI wow64_NtFlushProcessWriteBuffers( UINT *args ) }
+/********************************************************************** + * wow64_NtGetNextProcess + */ +NTSTATUS WINAPI wow64_NtGetNextProcess( UINT *args ) +{ + HANDLE process = get_handle( &args ); + ACCESS_MASK access = get_ulong( &args ); + ULONG attributes = get_ulong( &args ); + ULONG flags = get_ulong( &args ); + ULONG *handle_ptr = get_ptr( &args ); + + HANDLE handle = 0; + NTSTATUS status; + + *handle_ptr = 0; + status = NtGetNextProcess( process, access, attributes, flags, &handle ); + put_handle( handle_ptr, handle ); + return status; +} + + /********************************************************************** * wow64_NtGetNextThread */ diff --git a/include/winternl.h b/include/winternl.h index 22cdceeaedb..67dd85c3b2e 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -4467,6 +4467,7 @@ NTSYSAPI NTSTATUS WINAPI NtFreeVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG); NTSYSAPI NTSTATUS WINAPI NtFsControlFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,PVOID,ULONG,PVOID,ULONG); NTSYSAPI NTSTATUS WINAPI NtGetContextThread(HANDLE,CONTEXT*); NTSYSAPI ULONG WINAPI NtGetCurrentProcessorNumber(void); +NTSYSAPI NTSTATUS WINAPI NtGetNextProcess(HANDLE,ACCESS_MASK,ULONG,ULONG,HANDLE*); NTSYSAPI NTSTATUS WINAPI NtGetNextThread(HANDLE,HANDLE,ACCESS_MASK,ULONG,ULONG,HANDLE*); NTSYSAPI NTSTATUS WINAPI NtGetNlsSectionPtr(ULONG,ULONG,void*,void**,SIZE_T*); NTSYSAPI NTSTATUS WINAPI NtGetPlugPlayEvent(ULONG,ULONG,PVOID,ULONG);