-- v2: ntdll: Add NtFlushBuffersFileEx() semi-stub.
From: Dmitry Timoshkov dmitry@baikal.ru
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/ntdll/ntdll.spec | 2 + dlls/ntdll/ntsyscalls.h | 694 ++++++++++++++++++------------------ dlls/ntdll/signal_arm64ec.c | 1 + dlls/ntdll/unix/file.c | 14 + dlls/wow64/file.c | 20 ++ include/winternl.h | 1 + 6 files changed, 386 insertions(+), 346 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 3bb20691208..620d96a5992 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -223,6 +223,7 @@ @ stdcall -syscall NtFilterToken(long long ptr ptr ptr ptr) @ stdcall -syscall NtFindAtom(ptr long ptr) @ stdcall -syscall NtFlushBuffersFile(long ptr) +@ stdcall -syscall NtFlushBuffersFileEx(long long ptr long ptr) @ stdcall -syscall NtFlushInstructionCache(long ptr long) @ stdcall -syscall NtFlushKey(long) @ stdcall -syscall NtFlushProcessWriteBuffers() @@ -1288,6 +1289,7 @@ @ stdcall -private -syscall ZwFilterToken(long long ptr ptr ptr ptr) NtFilterToken @ stdcall -private -syscall ZwFindAtom(ptr long ptr) NtFindAtom @ stdcall -private -syscall ZwFlushBuffersFile(long ptr) NtFlushBuffersFile +@ stdcall -private -syscall ZwFlushBuffersFileEx(long long ptr long ptr) NtFlushBuffersFileEx @ stdcall -private -syscall ZwFlushInstructionCache(long ptr long) NtFlushInstructionCache @ stdcall -private -syscall ZwFlushKey(long) NtFlushKey @ stdcall -private -syscall ZwFlushProcessWriteBuffers() NtFlushProcessWriteBuffers diff --git a/dlls/ntdll/ntsyscalls.h b/dlls/ntdll/ntsyscalls.h index 785f0760d18..ce6e855a083 100644 --- a/dlls/ntdll/ntsyscalls.h +++ b/dlls/ntdll/ntsyscalls.h @@ -71,182 +71,183 @@ SYSCALL_ENTRY( 0x0043, NtFilterToken, 24 ) \ SYSCALL_ENTRY( 0x0044, NtFindAtom, 12 ) \ SYSCALL_ENTRY( 0x0045, NtFlushBuffersFile, 8 ) \ - SYSCALL_ENTRY( 0x0046, NtFlushInstructionCache, 12 ) \ - SYSCALL_ENTRY( 0x0047, NtFlushKey, 4 ) \ - SYSCALL_ENTRY( 0x0048, NtFlushProcessWriteBuffers, 0 ) \ - SYSCALL_ENTRY( 0x0049, NtFlushVirtualMemory, 16 ) \ - SYSCALL_ENTRY( 0x004a, NtFreeVirtualMemory, 16 ) \ - SYSCALL_ENTRY( 0x004b, NtFsControlFile, 40 ) \ - SYSCALL_ENTRY( 0x004c, NtGetContextThread, 8 ) \ - SYSCALL_ENTRY( 0x004d, NtGetCurrentProcessorNumber, 0 ) \ - SYSCALL_ENTRY( 0x004e, NtGetNextThread, 24 ) \ - SYSCALL_ENTRY( 0x004f, NtGetNlsSectionPtr, 20 ) \ - SYSCALL_ENTRY( 0x0050, NtGetWriteWatch, 28 ) \ - SYSCALL_ENTRY( 0x0051, NtImpersonateAnonymousToken, 4 ) \ - SYSCALL_ENTRY( 0x0052, NtInitializeNlsFiles, 12 ) \ - SYSCALL_ENTRY( 0x0053, NtInitiatePowerAction, 16 ) \ - SYSCALL_ENTRY( 0x0054, NtIsProcessInJob, 8 ) \ - SYSCALL_ENTRY( 0x0055, NtListenPort, 8 ) \ - SYSCALL_ENTRY( 0x0056, NtLoadDriver, 4 ) \ - SYSCALL_ENTRY( 0x0057, NtLoadKey, 8 ) \ - SYSCALL_ENTRY( 0x0058, NtLoadKey2, 12 ) \ - SYSCALL_ENTRY( 0x0059, NtLoadKeyEx, 32 ) \ - SYSCALL_ENTRY( 0x005a, NtLockFile, 40 ) \ - SYSCALL_ENTRY( 0x005b, NtLockVirtualMemory, 16 ) \ - SYSCALL_ENTRY( 0x005c, NtMakePermanentObject, 4 ) \ - SYSCALL_ENTRY( 0x005d, NtMakeTemporaryObject, 4 ) \ - SYSCALL_ENTRY( 0x005e, NtMapViewOfSection, 40 ) \ - SYSCALL_ENTRY( 0x005f, NtMapViewOfSectionEx, 36 ) \ - SYSCALL_ENTRY( 0x0060, NtNotifyChangeDirectoryFile, 36 ) \ - SYSCALL_ENTRY( 0x0061, NtNotifyChangeKey, 40 ) \ - SYSCALL_ENTRY( 0x0062, NtNotifyChangeMultipleKeys, 48 ) \ - SYSCALL_ENTRY( 0x0063, NtOpenDirectoryObject, 12 ) \ - SYSCALL_ENTRY( 0x0064, NtOpenEvent, 12 ) \ - SYSCALL_ENTRY( 0x0065, NtOpenFile, 24 ) \ - SYSCALL_ENTRY( 0x0066, NtOpenIoCompletion, 12 ) \ - SYSCALL_ENTRY( 0x0067, NtOpenJobObject, 12 ) \ - SYSCALL_ENTRY( 0x0068, NtOpenKey, 12 ) \ - SYSCALL_ENTRY( 0x0069, NtOpenKeyEx, 16 ) \ - SYSCALL_ENTRY( 0x006a, NtOpenKeyTransacted, 16 ) \ - SYSCALL_ENTRY( 0x006b, NtOpenKeyTransactedEx, 20 ) \ - SYSCALL_ENTRY( 0x006c, NtOpenKeyedEvent, 12 ) \ - SYSCALL_ENTRY( 0x006d, NtOpenMutant, 12 ) \ - SYSCALL_ENTRY( 0x006e, NtOpenProcess, 16 ) \ - SYSCALL_ENTRY( 0x006f, NtOpenProcessToken, 12 ) \ - SYSCALL_ENTRY( 0x0070, NtOpenProcessTokenEx, 16 ) \ - SYSCALL_ENTRY( 0x0071, NtOpenSection, 12 ) \ - SYSCALL_ENTRY( 0x0072, NtOpenSemaphore, 12 ) \ - SYSCALL_ENTRY( 0x0073, NtOpenSymbolicLinkObject, 12 ) \ - SYSCALL_ENTRY( 0x0074, NtOpenThread, 16 ) \ - SYSCALL_ENTRY( 0x0075, NtOpenThreadToken, 16 ) \ - SYSCALL_ENTRY( 0x0076, NtOpenThreadTokenEx, 20 ) \ - SYSCALL_ENTRY( 0x0077, NtOpenTimer, 12 ) \ - SYSCALL_ENTRY( 0x0078, NtPowerInformation, 20 ) \ - SYSCALL_ENTRY( 0x0079, NtPrivilegeCheck, 12 ) \ - SYSCALL_ENTRY( 0x007a, NtProtectVirtualMemory, 20 ) \ - SYSCALL_ENTRY( 0x007b, NtPulseEvent, 8 ) \ - SYSCALL_ENTRY( 0x007c, NtQueryAttributesFile, 8 ) \ - SYSCALL_ENTRY( 0x007d, NtQueryDefaultLocale, 8 ) \ - SYSCALL_ENTRY( 0x007e, NtQueryDefaultUILanguage, 4 ) \ - SYSCALL_ENTRY( 0x007f, NtQueryDirectoryFile, 44 ) \ - SYSCALL_ENTRY( 0x0080, NtQueryDirectoryObject, 28 ) \ - SYSCALL_ENTRY( 0x0081, NtQueryEaFile, 36 ) \ - SYSCALL_ENTRY( 0x0082, NtQueryEvent, 20 ) \ - SYSCALL_ENTRY( 0x0083, NtQueryFullAttributesFile, 8 ) \ - SYSCALL_ENTRY( 0x0084, NtQueryInformationAtom, 20 ) \ - SYSCALL_ENTRY( 0x0085, NtQueryInformationFile, 20 ) \ - SYSCALL_ENTRY( 0x0086, NtQueryInformationJobObject, 20 ) \ - SYSCALL_ENTRY( 0x0087, NtQueryInformationProcess, 20 ) \ - SYSCALL_ENTRY( 0x0088, NtQueryInformationThread, 20 ) \ - SYSCALL_ENTRY( 0x0089, NtQueryInformationToken, 20 ) \ - SYSCALL_ENTRY( 0x008a, NtQueryInstallUILanguage, 4 ) \ - SYSCALL_ENTRY( 0x008b, NtQueryIoCompletion, 20 ) \ - SYSCALL_ENTRY( 0x008c, NtQueryKey, 20 ) \ - SYSCALL_ENTRY( 0x008d, NtQueryLicenseValue, 20 ) \ - SYSCALL_ENTRY( 0x008e, NtQueryMultipleValueKey, 24 ) \ - SYSCALL_ENTRY( 0x008f, NtQueryMutant, 20 ) \ - SYSCALL_ENTRY( 0x0090, NtQueryObject, 20 ) \ - SYSCALL_ENTRY( 0x0091, NtQueryPerformanceCounter, 8 ) \ - SYSCALL_ENTRY( 0x0092, NtQuerySection, 20 ) \ - SYSCALL_ENTRY( 0x0093, NtQuerySecurityObject, 20 ) \ - SYSCALL_ENTRY( 0x0094, NtQuerySemaphore, 20 ) \ - SYSCALL_ENTRY( 0x0095, NtQuerySymbolicLinkObject, 12 ) \ - SYSCALL_ENTRY( 0x0096, NtQuerySystemEnvironmentValue, 16 ) \ - SYSCALL_ENTRY( 0x0097, NtQuerySystemEnvironmentValueEx, 20 ) \ - SYSCALL_ENTRY( 0x0098, NtQuerySystemInformation, 16 ) \ - SYSCALL_ENTRY( 0x0099, NtQuerySystemInformationEx, 24 ) \ - SYSCALL_ENTRY( 0x009a, NtQuerySystemTime, 4 ) \ - SYSCALL_ENTRY( 0x009b, NtQueryTimer, 20 ) \ - SYSCALL_ENTRY( 0x009c, NtQueryTimerResolution, 12 ) \ - SYSCALL_ENTRY( 0x009d, NtQueryValueKey, 24 ) \ - SYSCALL_ENTRY( 0x009e, NtQueryVirtualMemory, 24 ) \ - SYSCALL_ENTRY( 0x009f, NtQueryVolumeInformationFile, 20 ) \ - SYSCALL_ENTRY( 0x00a0, NtQueueApcThread, 20 ) \ - SYSCALL_ENTRY( 0x00a1, NtQueueApcThreadEx, 24 ) \ - SYSCALL_ENTRY( 0x00a2, NtRaiseException, 12 ) \ - SYSCALL_ENTRY( 0x00a3, NtRaiseHardError, 24 ) \ - SYSCALL_ENTRY( 0x00a4, NtReadFile, 36 ) \ - SYSCALL_ENTRY( 0x00a5, NtReadFileScatter, 36 ) \ - SYSCALL_ENTRY( 0x00a6, NtReadVirtualMemory, 20 ) \ - SYSCALL_ENTRY( 0x00a7, NtRegisterThreadTerminatePort, 4 ) \ - SYSCALL_ENTRY( 0x00a8, NtReleaseKeyedEvent, 16 ) \ - SYSCALL_ENTRY( 0x00a9, NtReleaseMutant, 8 ) \ - SYSCALL_ENTRY( 0x00aa, NtReleaseSemaphore, 12 ) \ - SYSCALL_ENTRY( 0x00ab, NtRemoveIoCompletion, 20 ) \ - SYSCALL_ENTRY( 0x00ac, NtRemoveIoCompletionEx, 24 ) \ - SYSCALL_ENTRY( 0x00ad, NtRemoveProcessDebug, 8 ) \ - SYSCALL_ENTRY( 0x00ae, NtRenameKey, 8 ) \ - SYSCALL_ENTRY( 0x00af, NtReplaceKey, 12 ) \ - SYSCALL_ENTRY( 0x00b0, NtReplyWaitReceivePort, 16 ) \ - SYSCALL_ENTRY( 0x00b1, NtRequestWaitReplyPort, 12 ) \ - SYSCALL_ENTRY( 0x00b2, NtResetEvent, 8 ) \ - SYSCALL_ENTRY( 0x00b3, NtResetWriteWatch, 12 ) \ - SYSCALL_ENTRY( 0x00b4, NtRestoreKey, 12 ) \ - SYSCALL_ENTRY( 0x00b5, NtResumeProcess, 4 ) \ - SYSCALL_ENTRY( 0x00b6, NtResumeThread, 8 ) \ - SYSCALL_ENTRY( 0x00b7, NtRollbackTransaction, 8 ) \ - SYSCALL_ENTRY( 0x00b8, NtSaveKey, 8 ) \ - SYSCALL_ENTRY( 0x00b9, NtSecureConnectPort, 36 ) \ - SYSCALL_ENTRY( 0x00ba, NtSetContextThread, 8 ) \ - SYSCALL_ENTRY( 0x00bb, NtSetDebugFilterState, 12 ) \ - SYSCALL_ENTRY( 0x00bc, NtSetDefaultLocale, 8 ) \ - SYSCALL_ENTRY( 0x00bd, NtSetDefaultUILanguage, 4 ) \ - SYSCALL_ENTRY( 0x00be, NtSetEaFile, 16 ) \ - SYSCALL_ENTRY( 0x00bf, NtSetEvent, 8 ) \ - SYSCALL_ENTRY( 0x00c0, NtSetInformationDebugObject, 20 ) \ - SYSCALL_ENTRY( 0x00c1, NtSetInformationFile, 20 ) \ - SYSCALL_ENTRY( 0x00c2, NtSetInformationJobObject, 16 ) \ - SYSCALL_ENTRY( 0x00c3, NtSetInformationKey, 16 ) \ - SYSCALL_ENTRY( 0x00c4, NtSetInformationObject, 16 ) \ - SYSCALL_ENTRY( 0x00c5, NtSetInformationProcess, 16 ) \ - SYSCALL_ENTRY( 0x00c6, NtSetInformationThread, 16 ) \ - SYSCALL_ENTRY( 0x00c7, NtSetInformationToken, 16 ) \ - SYSCALL_ENTRY( 0x00c8, NtSetInformationVirtualMemory, 24 ) \ - SYSCALL_ENTRY( 0x00c9, NtSetIntervalProfile, 8 ) \ - SYSCALL_ENTRY( 0x00ca, NtSetIoCompletion, 20 ) \ - SYSCALL_ENTRY( 0x00cb, NtSetIoCompletionEx, 24 ) \ - SYSCALL_ENTRY( 0x00cc, NtSetLdtEntries, 24 ) \ - SYSCALL_ENTRY( 0x00cd, NtSetSecurityObject, 12 ) \ - SYSCALL_ENTRY( 0x00ce, NtSetSystemInformation, 12 ) \ - SYSCALL_ENTRY( 0x00cf, NtSetSystemTime, 8 ) \ - SYSCALL_ENTRY( 0x00d0, NtSetThreadExecutionState, 8 ) \ - SYSCALL_ENTRY( 0x00d1, NtSetTimer, 28 ) \ - SYSCALL_ENTRY( 0x00d2, NtSetTimerResolution, 12 ) \ - SYSCALL_ENTRY( 0x00d3, NtSetValueKey, 24 ) \ - SYSCALL_ENTRY( 0x00d4, NtSetVolumeInformationFile, 20 ) \ - SYSCALL_ENTRY( 0x00d5, NtShutdownSystem, 4 ) \ - SYSCALL_ENTRY( 0x00d6, NtSignalAndWaitForSingleObject, 16 ) \ - SYSCALL_ENTRY( 0x00d7, NtSuspendProcess, 4 ) \ - SYSCALL_ENTRY( 0x00d8, NtSuspendThread, 8 ) \ - SYSCALL_ENTRY( 0x00d9, NtSystemDebugControl, 24 ) \ - SYSCALL_ENTRY( 0x00da, NtTerminateJobObject, 8 ) \ - SYSCALL_ENTRY( 0x00db, NtTerminateProcess, 8 ) \ - SYSCALL_ENTRY( 0x00dc, NtTerminateThread, 8 ) \ - SYSCALL_ENTRY( 0x00dd, NtTestAlert, 0 ) \ - SYSCALL_ENTRY( 0x00de, NtTraceControl, 24 ) \ - SYSCALL_ENTRY( 0x00df, NtUnloadDriver, 4 ) \ - SYSCALL_ENTRY( 0x00e0, NtUnloadKey, 4 ) \ - SYSCALL_ENTRY( 0x00e1, NtUnlockFile, 20 ) \ - SYSCALL_ENTRY( 0x00e2, NtUnlockVirtualMemory, 16 ) \ - SYSCALL_ENTRY( 0x00e3, NtUnmapViewOfSection, 8 ) \ - SYSCALL_ENTRY( 0x00e4, NtUnmapViewOfSectionEx, 12 ) \ - SYSCALL_ENTRY( 0x00e5, NtWaitForAlertByThreadId, 8 ) \ - SYSCALL_ENTRY( 0x00e6, NtWaitForDebugEvent, 16 ) \ - SYSCALL_ENTRY( 0x00e7, NtWaitForKeyedEvent, 16 ) \ - SYSCALL_ENTRY( 0x00e8, NtWaitForMultipleObjects, 20 ) \ - SYSCALL_ENTRY( 0x00e9, NtWaitForSingleObject, 12 ) \ - SYSCALL_ENTRY( 0x00ea, NtWow64AllocateVirtualMemory64, 28 ) \ - SYSCALL_ENTRY( 0x00eb, NtWow64GetNativeSystemInformation, 16 ) \ - SYSCALL_ENTRY( 0x00ec, NtWow64IsProcessorFeaturePresent, 4 ) \ - SYSCALL_ENTRY( 0x00ed, NtWow64QueryInformationProcess64, 20 ) \ - SYSCALL_ENTRY( 0x00ee, NtWow64ReadVirtualMemory64, 28 ) \ - SYSCALL_ENTRY( 0x00ef, NtWow64WriteVirtualMemory64, 28 ) \ - SYSCALL_ENTRY( 0x00f0, NtWriteFile, 36 ) \ - SYSCALL_ENTRY( 0x00f1, NtWriteFileGather, 36 ) \ - SYSCALL_ENTRY( 0x00f2, NtWriteVirtualMemory, 20 ) \ - SYSCALL_ENTRY( 0x00f3, NtYieldExecution, 0 ) \ - SYSCALL_ENTRY( 0x00f4, wine_nt_to_unix_file_name, 16 ) \ - SYSCALL_ENTRY( 0x00f5, wine_unix_to_nt_file_name, 12 ) + SYSCALL_ENTRY( 0x0046, NtFlushBuffersFileEx, 20 ) \ + SYSCALL_ENTRY( 0x0047, NtFlushInstructionCache, 12 ) \ + SYSCALL_ENTRY( 0x0048, NtFlushKey, 4 ) \ + SYSCALL_ENTRY( 0x0049, NtFlushProcessWriteBuffers, 0 ) \ + SYSCALL_ENTRY( 0x004a, NtFlushVirtualMemory, 16 ) \ + SYSCALL_ENTRY( 0x004b, NtFreeVirtualMemory, 16 ) \ + SYSCALL_ENTRY( 0x004c, NtFsControlFile, 40 ) \ + SYSCALL_ENTRY( 0x004d, NtGetContextThread, 8 ) \ + SYSCALL_ENTRY( 0x004e, NtGetCurrentProcessorNumber, 0 ) \ + SYSCALL_ENTRY( 0x004f, NtGetNextThread, 24 ) \ + SYSCALL_ENTRY( 0x0050, NtGetNlsSectionPtr, 20 ) \ + SYSCALL_ENTRY( 0x0051, NtGetWriteWatch, 28 ) \ + SYSCALL_ENTRY( 0x0052, NtImpersonateAnonymousToken, 4 ) \ + SYSCALL_ENTRY( 0x0053, NtInitializeNlsFiles, 12 ) \ + SYSCALL_ENTRY( 0x0054, NtInitiatePowerAction, 16 ) \ + SYSCALL_ENTRY( 0x0055, NtIsProcessInJob, 8 ) \ + SYSCALL_ENTRY( 0x0056, NtListenPort, 8 ) \ + SYSCALL_ENTRY( 0x0057, NtLoadDriver, 4 ) \ + SYSCALL_ENTRY( 0x0058, NtLoadKey, 8 ) \ + SYSCALL_ENTRY( 0x0059, NtLoadKey2, 12 ) \ + SYSCALL_ENTRY( 0x005a, NtLoadKeyEx, 32 ) \ + SYSCALL_ENTRY( 0x005b, NtLockFile, 40 ) \ + SYSCALL_ENTRY( 0x005c, NtLockVirtualMemory, 16 ) \ + SYSCALL_ENTRY( 0x005d, NtMakePermanentObject, 4 ) \ + SYSCALL_ENTRY( 0x005e, NtMakeTemporaryObject, 4 ) \ + SYSCALL_ENTRY( 0x005f, NtMapViewOfSection, 40 ) \ + SYSCALL_ENTRY( 0x0060, NtMapViewOfSectionEx, 36 ) \ + SYSCALL_ENTRY( 0x0061, NtNotifyChangeDirectoryFile, 36 ) \ + SYSCALL_ENTRY( 0x0062, NtNotifyChangeKey, 40 ) \ + SYSCALL_ENTRY( 0x0063, NtNotifyChangeMultipleKeys, 48 ) \ + SYSCALL_ENTRY( 0x0064, NtOpenDirectoryObject, 12 ) \ + SYSCALL_ENTRY( 0x0065, NtOpenEvent, 12 ) \ + SYSCALL_ENTRY( 0x0066, NtOpenFile, 24 ) \ + SYSCALL_ENTRY( 0x0067, NtOpenIoCompletion, 12 ) \ + SYSCALL_ENTRY( 0x0068, NtOpenJobObject, 12 ) \ + SYSCALL_ENTRY( 0x0069, NtOpenKey, 12 ) \ + SYSCALL_ENTRY( 0x006a, NtOpenKeyEx, 16 ) \ + SYSCALL_ENTRY( 0x006b, NtOpenKeyTransacted, 16 ) \ + SYSCALL_ENTRY( 0x006c, NtOpenKeyTransactedEx, 20 ) \ + SYSCALL_ENTRY( 0x006d, NtOpenKeyedEvent, 12 ) \ + SYSCALL_ENTRY( 0x006e, NtOpenMutant, 12 ) \ + SYSCALL_ENTRY( 0x006f, NtOpenProcess, 16 ) \ + SYSCALL_ENTRY( 0x0070, NtOpenProcessToken, 12 ) \ + SYSCALL_ENTRY( 0x0071, NtOpenProcessTokenEx, 16 ) \ + SYSCALL_ENTRY( 0x0072, NtOpenSection, 12 ) \ + SYSCALL_ENTRY( 0x0073, NtOpenSemaphore, 12 ) \ + SYSCALL_ENTRY( 0x0074, NtOpenSymbolicLinkObject, 12 ) \ + SYSCALL_ENTRY( 0x0075, NtOpenThread, 16 ) \ + SYSCALL_ENTRY( 0x0076, NtOpenThreadToken, 16 ) \ + SYSCALL_ENTRY( 0x0077, NtOpenThreadTokenEx, 20 ) \ + SYSCALL_ENTRY( 0x0078, NtOpenTimer, 12 ) \ + SYSCALL_ENTRY( 0x0079, NtPowerInformation, 20 ) \ + SYSCALL_ENTRY( 0x007a, NtPrivilegeCheck, 12 ) \ + SYSCALL_ENTRY( 0x007b, NtProtectVirtualMemory, 20 ) \ + SYSCALL_ENTRY( 0x007c, NtPulseEvent, 8 ) \ + SYSCALL_ENTRY( 0x007d, NtQueryAttributesFile, 8 ) \ + SYSCALL_ENTRY( 0x007e, NtQueryDefaultLocale, 8 ) \ + SYSCALL_ENTRY( 0x007f, NtQueryDefaultUILanguage, 4 ) \ + SYSCALL_ENTRY( 0x0080, NtQueryDirectoryFile, 44 ) \ + SYSCALL_ENTRY( 0x0081, NtQueryDirectoryObject, 28 ) \ + SYSCALL_ENTRY( 0x0082, NtQueryEaFile, 36 ) \ + SYSCALL_ENTRY( 0x0083, NtQueryEvent, 20 ) \ + SYSCALL_ENTRY( 0x0084, NtQueryFullAttributesFile, 8 ) \ + SYSCALL_ENTRY( 0x0085, NtQueryInformationAtom, 20 ) \ + SYSCALL_ENTRY( 0x0086, NtQueryInformationFile, 20 ) \ + SYSCALL_ENTRY( 0x0087, NtQueryInformationJobObject, 20 ) \ + SYSCALL_ENTRY( 0x0088, NtQueryInformationProcess, 20 ) \ + SYSCALL_ENTRY( 0x0089, NtQueryInformationThread, 20 ) \ + SYSCALL_ENTRY( 0x008a, NtQueryInformationToken, 20 ) \ + SYSCALL_ENTRY( 0x008b, NtQueryInstallUILanguage, 4 ) \ + SYSCALL_ENTRY( 0x008c, NtQueryIoCompletion, 20 ) \ + SYSCALL_ENTRY( 0x008d, NtQueryKey, 20 ) \ + SYSCALL_ENTRY( 0x008e, NtQueryLicenseValue, 20 ) \ + SYSCALL_ENTRY( 0x008f, NtQueryMultipleValueKey, 24 ) \ + SYSCALL_ENTRY( 0x0090, NtQueryMutant, 20 ) \ + SYSCALL_ENTRY( 0x0091, NtQueryObject, 20 ) \ + SYSCALL_ENTRY( 0x0092, NtQueryPerformanceCounter, 8 ) \ + SYSCALL_ENTRY( 0x0093, NtQuerySection, 20 ) \ + SYSCALL_ENTRY( 0x0094, NtQuerySecurityObject, 20 ) \ + SYSCALL_ENTRY( 0x0095, NtQuerySemaphore, 20 ) \ + SYSCALL_ENTRY( 0x0096, NtQuerySymbolicLinkObject, 12 ) \ + SYSCALL_ENTRY( 0x0097, NtQuerySystemEnvironmentValue, 16 ) \ + SYSCALL_ENTRY( 0x0098, NtQuerySystemEnvironmentValueEx, 20 ) \ + SYSCALL_ENTRY( 0x0099, NtQuerySystemInformation, 16 ) \ + SYSCALL_ENTRY( 0x009a, NtQuerySystemInformationEx, 24 ) \ + SYSCALL_ENTRY( 0x009b, NtQuerySystemTime, 4 ) \ + SYSCALL_ENTRY( 0x009c, NtQueryTimer, 20 ) \ + SYSCALL_ENTRY( 0x009d, NtQueryTimerResolution, 12 ) \ + SYSCALL_ENTRY( 0x009e, NtQueryValueKey, 24 ) \ + SYSCALL_ENTRY( 0x009f, NtQueryVirtualMemory, 24 ) \ + SYSCALL_ENTRY( 0x00a0, NtQueryVolumeInformationFile, 20 ) \ + SYSCALL_ENTRY( 0x00a1, NtQueueApcThread, 20 ) \ + SYSCALL_ENTRY( 0x00a2, NtQueueApcThreadEx, 24 ) \ + SYSCALL_ENTRY( 0x00a3, NtRaiseException, 12 ) \ + SYSCALL_ENTRY( 0x00a4, NtRaiseHardError, 24 ) \ + SYSCALL_ENTRY( 0x00a5, NtReadFile, 36 ) \ + SYSCALL_ENTRY( 0x00a6, NtReadFileScatter, 36 ) \ + SYSCALL_ENTRY( 0x00a7, NtReadVirtualMemory, 20 ) \ + SYSCALL_ENTRY( 0x00a8, NtRegisterThreadTerminatePort, 4 ) \ + SYSCALL_ENTRY( 0x00a9, NtReleaseKeyedEvent, 16 ) \ + SYSCALL_ENTRY( 0x00aa, NtReleaseMutant, 8 ) \ + SYSCALL_ENTRY( 0x00ab, NtReleaseSemaphore, 12 ) \ + SYSCALL_ENTRY( 0x00ac, NtRemoveIoCompletion, 20 ) \ + SYSCALL_ENTRY( 0x00ad, NtRemoveIoCompletionEx, 24 ) \ + SYSCALL_ENTRY( 0x00ae, NtRemoveProcessDebug, 8 ) \ + SYSCALL_ENTRY( 0x00af, NtRenameKey, 8 ) \ + SYSCALL_ENTRY( 0x00b0, NtReplaceKey, 12 ) \ + SYSCALL_ENTRY( 0x00b1, NtReplyWaitReceivePort, 16 ) \ + SYSCALL_ENTRY( 0x00b2, NtRequestWaitReplyPort, 12 ) \ + SYSCALL_ENTRY( 0x00b3, NtResetEvent, 8 ) \ + SYSCALL_ENTRY( 0x00b4, NtResetWriteWatch, 12 ) \ + SYSCALL_ENTRY( 0x00b5, NtRestoreKey, 12 ) \ + SYSCALL_ENTRY( 0x00b6, NtResumeProcess, 4 ) \ + SYSCALL_ENTRY( 0x00b7, NtResumeThread, 8 ) \ + SYSCALL_ENTRY( 0x00b8, NtRollbackTransaction, 8 ) \ + SYSCALL_ENTRY( 0x00b9, NtSaveKey, 8 ) \ + SYSCALL_ENTRY( 0x00ba, NtSecureConnectPort, 36 ) \ + SYSCALL_ENTRY( 0x00bb, NtSetContextThread, 8 ) \ + SYSCALL_ENTRY( 0x00bc, NtSetDebugFilterState, 12 ) \ + SYSCALL_ENTRY( 0x00bd, NtSetDefaultLocale, 8 ) \ + SYSCALL_ENTRY( 0x00be, NtSetDefaultUILanguage, 4 ) \ + SYSCALL_ENTRY( 0x00bf, NtSetEaFile, 16 ) \ + SYSCALL_ENTRY( 0x00c0, NtSetEvent, 8 ) \ + SYSCALL_ENTRY( 0x00c1, NtSetInformationDebugObject, 20 ) \ + SYSCALL_ENTRY( 0x00c2, NtSetInformationFile, 20 ) \ + SYSCALL_ENTRY( 0x00c3, NtSetInformationJobObject, 16 ) \ + SYSCALL_ENTRY( 0x00c4, NtSetInformationKey, 16 ) \ + SYSCALL_ENTRY( 0x00c5, NtSetInformationObject, 16 ) \ + SYSCALL_ENTRY( 0x00c6, NtSetInformationProcess, 16 ) \ + SYSCALL_ENTRY( 0x00c7, NtSetInformationThread, 16 ) \ + SYSCALL_ENTRY( 0x00c8, NtSetInformationToken, 16 ) \ + SYSCALL_ENTRY( 0x00c9, NtSetInformationVirtualMemory, 24 ) \ + SYSCALL_ENTRY( 0x00ca, NtSetIntervalProfile, 8 ) \ + SYSCALL_ENTRY( 0x00cb, NtSetIoCompletion, 20 ) \ + SYSCALL_ENTRY( 0x00cc, NtSetIoCompletionEx, 24 ) \ + SYSCALL_ENTRY( 0x00cd, NtSetLdtEntries, 24 ) \ + SYSCALL_ENTRY( 0x00ce, NtSetSecurityObject, 12 ) \ + SYSCALL_ENTRY( 0x00cf, NtSetSystemInformation, 12 ) \ + SYSCALL_ENTRY( 0x00d0, NtSetSystemTime, 8 ) \ + SYSCALL_ENTRY( 0x00d1, NtSetThreadExecutionState, 8 ) \ + SYSCALL_ENTRY( 0x00d2, NtSetTimer, 28 ) \ + SYSCALL_ENTRY( 0x00d3, NtSetTimerResolution, 12 ) \ + SYSCALL_ENTRY( 0x00d4, NtSetValueKey, 24 ) \ + SYSCALL_ENTRY( 0x00d5, NtSetVolumeInformationFile, 20 ) \ + SYSCALL_ENTRY( 0x00d6, NtShutdownSystem, 4 ) \ + SYSCALL_ENTRY( 0x00d7, NtSignalAndWaitForSingleObject, 16 ) \ + SYSCALL_ENTRY( 0x00d8, NtSuspendProcess, 4 ) \ + SYSCALL_ENTRY( 0x00d9, NtSuspendThread, 8 ) \ + SYSCALL_ENTRY( 0x00da, NtSystemDebugControl, 24 ) \ + SYSCALL_ENTRY( 0x00db, NtTerminateJobObject, 8 ) \ + SYSCALL_ENTRY( 0x00dc, NtTerminateProcess, 8 ) \ + SYSCALL_ENTRY( 0x00dd, NtTerminateThread, 8 ) \ + SYSCALL_ENTRY( 0x00de, NtTestAlert, 0 ) \ + SYSCALL_ENTRY( 0x00df, NtTraceControl, 24 ) \ + SYSCALL_ENTRY( 0x00e0, NtUnloadDriver, 4 ) \ + SYSCALL_ENTRY( 0x00e1, NtUnloadKey, 4 ) \ + SYSCALL_ENTRY( 0x00e2, NtUnlockFile, 20 ) \ + SYSCALL_ENTRY( 0x00e3, NtUnlockVirtualMemory, 16 ) \ + SYSCALL_ENTRY( 0x00e4, NtUnmapViewOfSection, 8 ) \ + SYSCALL_ENTRY( 0x00e5, NtUnmapViewOfSectionEx, 12 ) \ + SYSCALL_ENTRY( 0x00e6, NtWaitForAlertByThreadId, 8 ) \ + SYSCALL_ENTRY( 0x00e7, NtWaitForDebugEvent, 16 ) \ + SYSCALL_ENTRY( 0x00e8, NtWaitForKeyedEvent, 16 ) \ + SYSCALL_ENTRY( 0x00e9, NtWaitForMultipleObjects, 20 ) \ + SYSCALL_ENTRY( 0x00ea, NtWaitForSingleObject, 12 ) \ + SYSCALL_ENTRY( 0x00eb, NtWow64AllocateVirtualMemory64, 28 ) \ + SYSCALL_ENTRY( 0x00ec, NtWow64GetNativeSystemInformation, 16 ) \ + SYSCALL_ENTRY( 0x00ed, NtWow64IsProcessorFeaturePresent, 4 ) \ + SYSCALL_ENTRY( 0x00ee, NtWow64QueryInformationProcess64, 20 ) \ + SYSCALL_ENTRY( 0x00ef, NtWow64ReadVirtualMemory64, 28 ) \ + SYSCALL_ENTRY( 0x00f0, NtWow64WriteVirtualMemory64, 28 ) \ + SYSCALL_ENTRY( 0x00f1, NtWriteFile, 36 ) \ + SYSCALL_ENTRY( 0x00f2, NtWriteFileGather, 36 ) \ + SYSCALL_ENTRY( 0x00f3, NtWriteVirtualMemory, 20 ) \ + SYSCALL_ENTRY( 0x00f4, NtYieldExecution, 0 ) \ + SYSCALL_ENTRY( 0x00f5, wine_nt_to_unix_file_name, 16 ) \ + SYSCALL_ENTRY( 0x00f6, wine_unix_to_nt_file_name, 12 )
#define ALL_SYSCALLS64 \ SYSCALL_ENTRY( 0x0000, NtAcceptConnectPort, 48 ) \ @@ -319,173 +320,174 @@ SYSCALL_ENTRY( 0x0043, NtFilterToken, 48 ) \ SYSCALL_ENTRY( 0x0044, NtFindAtom, 24 ) \ SYSCALL_ENTRY( 0x0045, NtFlushBuffersFile, 16 ) \ - SYSCALL_ENTRY( 0x0046, NtFlushInstructionCache, 24 ) \ - SYSCALL_ENTRY( 0x0047, NtFlushKey, 8 ) \ - SYSCALL_ENTRY( 0x0048, NtFlushProcessWriteBuffers, 0 ) \ - SYSCALL_ENTRY( 0x0049, NtFlushVirtualMemory, 32 ) \ - SYSCALL_ENTRY( 0x004a, NtFreeVirtualMemory, 32 ) \ - SYSCALL_ENTRY( 0x004b, NtFsControlFile, 80 ) \ - SYSCALL_ENTRY( 0x004c, NtGetContextThread, 16 ) \ - SYSCALL_ENTRY( 0x004d, NtGetCurrentProcessorNumber, 0 ) \ - SYSCALL_ENTRY( 0x004e, NtGetNextThread, 48 ) \ - SYSCALL_ENTRY( 0x004f, NtGetNlsSectionPtr, 40 ) \ - SYSCALL_ENTRY( 0x0050, NtGetWriteWatch, 56 ) \ - SYSCALL_ENTRY( 0x0051, NtImpersonateAnonymousToken, 8 ) \ - SYSCALL_ENTRY( 0x0052, NtInitializeNlsFiles, 24 ) \ - SYSCALL_ENTRY( 0x0053, NtInitiatePowerAction, 32 ) \ - SYSCALL_ENTRY( 0x0054, NtIsProcessInJob, 16 ) \ - SYSCALL_ENTRY( 0x0055, NtListenPort, 16 ) \ - SYSCALL_ENTRY( 0x0056, NtLoadDriver, 8 ) \ - SYSCALL_ENTRY( 0x0057, NtLoadKey, 16 ) \ - SYSCALL_ENTRY( 0x0058, NtLoadKey2, 24 ) \ - SYSCALL_ENTRY( 0x0059, NtLoadKeyEx, 64 ) \ - SYSCALL_ENTRY( 0x005a, NtLockFile, 80 ) \ - SYSCALL_ENTRY( 0x005b, NtLockVirtualMemory, 32 ) \ - SYSCALL_ENTRY( 0x005c, NtMakePermanentObject, 8 ) \ - SYSCALL_ENTRY( 0x005d, NtMakeTemporaryObject, 8 ) \ - SYSCALL_ENTRY( 0x005e, NtMapViewOfSection, 80 ) \ - SYSCALL_ENTRY( 0x005f, NtMapViewOfSectionEx, 72 ) \ - SYSCALL_ENTRY( 0x0060, NtNotifyChangeDirectoryFile, 72 ) \ - SYSCALL_ENTRY( 0x0061, NtNotifyChangeKey, 80 ) \ - SYSCALL_ENTRY( 0x0062, NtNotifyChangeMultipleKeys, 96 ) \ - SYSCALL_ENTRY( 0x0063, NtOpenDirectoryObject, 24 ) \ - SYSCALL_ENTRY( 0x0064, NtOpenEvent, 24 ) \ - SYSCALL_ENTRY( 0x0065, NtOpenFile, 48 ) \ - SYSCALL_ENTRY( 0x0066, NtOpenIoCompletion, 24 ) \ - SYSCALL_ENTRY( 0x0067, NtOpenJobObject, 24 ) \ - SYSCALL_ENTRY( 0x0068, NtOpenKey, 24 ) \ - SYSCALL_ENTRY( 0x0069, NtOpenKeyEx, 32 ) \ - SYSCALL_ENTRY( 0x006a, NtOpenKeyTransacted, 32 ) \ - SYSCALL_ENTRY( 0x006b, NtOpenKeyTransactedEx, 40 ) \ - SYSCALL_ENTRY( 0x006c, NtOpenKeyedEvent, 24 ) \ - SYSCALL_ENTRY( 0x006d, NtOpenMutant, 24 ) \ - SYSCALL_ENTRY( 0x006e, NtOpenProcess, 32 ) \ - SYSCALL_ENTRY( 0x006f, NtOpenProcessToken, 24 ) \ - SYSCALL_ENTRY( 0x0070, NtOpenProcessTokenEx, 32 ) \ - SYSCALL_ENTRY( 0x0071, NtOpenSection, 24 ) \ - SYSCALL_ENTRY( 0x0072, NtOpenSemaphore, 24 ) \ - SYSCALL_ENTRY( 0x0073, NtOpenSymbolicLinkObject, 24 ) \ - SYSCALL_ENTRY( 0x0074, NtOpenThread, 32 ) \ - SYSCALL_ENTRY( 0x0075, NtOpenThreadToken, 32 ) \ - SYSCALL_ENTRY( 0x0076, NtOpenThreadTokenEx, 40 ) \ - SYSCALL_ENTRY( 0x0077, NtOpenTimer, 24 ) \ - SYSCALL_ENTRY( 0x0078, NtPowerInformation, 40 ) \ - SYSCALL_ENTRY( 0x0079, NtPrivilegeCheck, 24 ) \ - SYSCALL_ENTRY( 0x007a, NtProtectVirtualMemory, 40 ) \ - SYSCALL_ENTRY( 0x007b, NtPulseEvent, 16 ) \ - SYSCALL_ENTRY( 0x007c, NtQueryAttributesFile, 16 ) \ - SYSCALL_ENTRY( 0x007d, NtQueryDefaultLocale, 16 ) \ - SYSCALL_ENTRY( 0x007e, NtQueryDefaultUILanguage, 8 ) \ - SYSCALL_ENTRY( 0x007f, NtQueryDirectoryFile, 88 ) \ - SYSCALL_ENTRY( 0x0080, NtQueryDirectoryObject, 56 ) \ - SYSCALL_ENTRY( 0x0081, NtQueryEaFile, 72 ) \ - SYSCALL_ENTRY( 0x0082, NtQueryEvent, 40 ) \ - SYSCALL_ENTRY( 0x0083, NtQueryFullAttributesFile, 16 ) \ - SYSCALL_ENTRY( 0x0084, NtQueryInformationAtom, 40 ) \ - SYSCALL_ENTRY( 0x0085, NtQueryInformationFile, 40 ) \ - SYSCALL_ENTRY( 0x0086, NtQueryInformationJobObject, 40 ) \ - SYSCALL_ENTRY( 0x0087, NtQueryInformationProcess, 40 ) \ - SYSCALL_ENTRY( 0x0088, NtQueryInformationThread, 40 ) \ - SYSCALL_ENTRY( 0x0089, NtQueryInformationToken, 40 ) \ - SYSCALL_ENTRY( 0x008a, NtQueryInstallUILanguage, 8 ) \ - SYSCALL_ENTRY( 0x008b, NtQueryIoCompletion, 40 ) \ - SYSCALL_ENTRY( 0x008c, NtQueryKey, 40 ) \ - SYSCALL_ENTRY( 0x008d, NtQueryLicenseValue, 40 ) \ - SYSCALL_ENTRY( 0x008e, NtQueryMultipleValueKey, 48 ) \ - SYSCALL_ENTRY( 0x008f, NtQueryMutant, 40 ) \ - SYSCALL_ENTRY( 0x0090, NtQueryObject, 40 ) \ - SYSCALL_ENTRY( 0x0091, NtQueryPerformanceCounter, 16 ) \ - SYSCALL_ENTRY( 0x0092, NtQuerySection, 40 ) \ - SYSCALL_ENTRY( 0x0093, NtQuerySecurityObject, 40 ) \ - SYSCALL_ENTRY( 0x0094, NtQuerySemaphore, 40 ) \ - SYSCALL_ENTRY( 0x0095, NtQuerySymbolicLinkObject, 24 ) \ - SYSCALL_ENTRY( 0x0096, NtQuerySystemEnvironmentValue, 32 ) \ - SYSCALL_ENTRY( 0x0097, NtQuerySystemEnvironmentValueEx, 40 ) \ - SYSCALL_ENTRY( 0x0098, NtQuerySystemInformation, 32 ) \ - SYSCALL_ENTRY( 0x0099, NtQuerySystemInformationEx, 48 ) \ - SYSCALL_ENTRY( 0x009a, NtQuerySystemTime, 8 ) \ - SYSCALL_ENTRY( 0x009b, NtQueryTimer, 40 ) \ - SYSCALL_ENTRY( 0x009c, NtQueryTimerResolution, 24 ) \ - SYSCALL_ENTRY( 0x009d, NtQueryValueKey, 48 ) \ - SYSCALL_ENTRY( 0x009e, NtQueryVirtualMemory, 48 ) \ - SYSCALL_ENTRY( 0x009f, NtQueryVolumeInformationFile, 40 ) \ - SYSCALL_ENTRY( 0x00a0, NtQueueApcThread, 40 ) \ - SYSCALL_ENTRY( 0x00a1, NtQueueApcThreadEx, 48 ) \ - SYSCALL_ENTRY( 0x00a2, NtRaiseException, 24 ) \ - SYSCALL_ENTRY( 0x00a3, NtRaiseHardError, 48 ) \ - SYSCALL_ENTRY( 0x00a4, NtReadFile, 72 ) \ - SYSCALL_ENTRY( 0x00a5, NtReadFileScatter, 72 ) \ - SYSCALL_ENTRY( 0x00a6, NtReadVirtualMemory, 40 ) \ - SYSCALL_ENTRY( 0x00a7, NtRegisterThreadTerminatePort, 8 ) \ - SYSCALL_ENTRY( 0x00a8, NtReleaseKeyedEvent, 32 ) \ - SYSCALL_ENTRY( 0x00a9, NtReleaseMutant, 16 ) \ - SYSCALL_ENTRY( 0x00aa, NtReleaseSemaphore, 24 ) \ - SYSCALL_ENTRY( 0x00ab, NtRemoveIoCompletion, 40 ) \ - SYSCALL_ENTRY( 0x00ac, NtRemoveIoCompletionEx, 48 ) \ - SYSCALL_ENTRY( 0x00ad, NtRemoveProcessDebug, 16 ) \ - SYSCALL_ENTRY( 0x00ae, NtRenameKey, 16 ) \ - SYSCALL_ENTRY( 0x00af, NtReplaceKey, 24 ) \ - SYSCALL_ENTRY( 0x00b0, NtReplyWaitReceivePort, 32 ) \ - SYSCALL_ENTRY( 0x00b1, NtRequestWaitReplyPort, 24 ) \ - SYSCALL_ENTRY( 0x00b2, NtResetEvent, 16 ) \ - SYSCALL_ENTRY( 0x00b3, NtResetWriteWatch, 24 ) \ - SYSCALL_ENTRY( 0x00b4, NtRestoreKey, 24 ) \ - SYSCALL_ENTRY( 0x00b5, NtResumeProcess, 8 ) \ - SYSCALL_ENTRY( 0x00b6, NtResumeThread, 16 ) \ - SYSCALL_ENTRY( 0x00b7, NtRollbackTransaction, 16 ) \ - SYSCALL_ENTRY( 0x00b8, NtSaveKey, 16 ) \ - SYSCALL_ENTRY( 0x00b9, NtSecureConnectPort, 72 ) \ - SYSCALL_ENTRY( 0x00ba, NtSetContextThread, 16 ) \ - SYSCALL_ENTRY( 0x00bb, NtSetDebugFilterState, 24 ) \ - SYSCALL_ENTRY( 0x00bc, NtSetDefaultLocale, 16 ) \ - SYSCALL_ENTRY( 0x00bd, NtSetDefaultUILanguage, 8 ) \ - SYSCALL_ENTRY( 0x00be, NtSetEaFile, 32 ) \ - SYSCALL_ENTRY( 0x00bf, NtSetEvent, 16 ) \ - SYSCALL_ENTRY( 0x00c0, NtSetInformationDebugObject, 40 ) \ - SYSCALL_ENTRY( 0x00c1, NtSetInformationFile, 40 ) \ - SYSCALL_ENTRY( 0x00c2, NtSetInformationJobObject, 32 ) \ - SYSCALL_ENTRY( 0x00c3, NtSetInformationKey, 32 ) \ - SYSCALL_ENTRY( 0x00c4, NtSetInformationObject, 32 ) \ - SYSCALL_ENTRY( 0x00c5, NtSetInformationProcess, 32 ) \ - SYSCALL_ENTRY( 0x00c6, NtSetInformationThread, 32 ) \ - SYSCALL_ENTRY( 0x00c7, NtSetInformationToken, 32 ) \ - SYSCALL_ENTRY( 0x00c8, NtSetInformationVirtualMemory, 48 ) \ - SYSCALL_ENTRY( 0x00c9, NtSetIntervalProfile, 16 ) \ - SYSCALL_ENTRY( 0x00ca, NtSetIoCompletion, 40 ) \ - SYSCALL_ENTRY( 0x00cb, NtSetIoCompletionEx, 48 ) \ - SYSCALL_ENTRY( 0x00cc, NtSetLdtEntries, 32 ) \ - SYSCALL_ENTRY( 0x00cd, NtSetSecurityObject, 24 ) \ - SYSCALL_ENTRY( 0x00ce, NtSetSystemInformation, 24 ) \ - SYSCALL_ENTRY( 0x00cf, NtSetSystemTime, 16 ) \ - SYSCALL_ENTRY( 0x00d0, NtSetThreadExecutionState, 16 ) \ - SYSCALL_ENTRY( 0x00d1, NtSetTimer, 56 ) \ - SYSCALL_ENTRY( 0x00d2, NtSetTimerResolution, 24 ) \ - SYSCALL_ENTRY( 0x00d3, NtSetValueKey, 48 ) \ - SYSCALL_ENTRY( 0x00d4, NtSetVolumeInformationFile, 40 ) \ - SYSCALL_ENTRY( 0x00d5, NtShutdownSystem, 8 ) \ - SYSCALL_ENTRY( 0x00d6, NtSignalAndWaitForSingleObject, 32 ) \ - SYSCALL_ENTRY( 0x00d7, NtSuspendProcess, 8 ) \ - SYSCALL_ENTRY( 0x00d8, NtSuspendThread, 16 ) \ - SYSCALL_ENTRY( 0x00d9, NtSystemDebugControl, 48 ) \ - SYSCALL_ENTRY( 0x00da, NtTerminateJobObject, 16 ) \ - SYSCALL_ENTRY( 0x00db, NtTerminateProcess, 16 ) \ - SYSCALL_ENTRY( 0x00dc, NtTerminateThread, 16 ) \ - SYSCALL_ENTRY( 0x00dd, NtTestAlert, 0 ) \ - SYSCALL_ENTRY( 0x00de, NtTraceControl, 48 ) \ - SYSCALL_ENTRY( 0x00df, NtUnloadDriver, 8 ) \ - SYSCALL_ENTRY( 0x00e0, NtUnloadKey, 8 ) \ - SYSCALL_ENTRY( 0x00e1, NtUnlockFile, 40 ) \ - SYSCALL_ENTRY( 0x00e2, NtUnlockVirtualMemory, 32 ) \ - SYSCALL_ENTRY( 0x00e3, NtUnmapViewOfSection, 16 ) \ - SYSCALL_ENTRY( 0x00e4, NtUnmapViewOfSectionEx, 24 ) \ - SYSCALL_ENTRY( 0x00e5, NtWaitForAlertByThreadId, 16 ) \ - SYSCALL_ENTRY( 0x00e6, NtWaitForDebugEvent, 32 ) \ - SYSCALL_ENTRY( 0x00e7, NtWaitForKeyedEvent, 32 ) \ - SYSCALL_ENTRY( 0x00e8, NtWaitForMultipleObjects, 40 ) \ - SYSCALL_ENTRY( 0x00e9, NtWaitForSingleObject, 24 ) \ - SYSCALL_ENTRY( 0x00ea, NtWriteFile, 72 ) \ - SYSCALL_ENTRY( 0x00eb, NtWriteFileGather, 72 ) \ - SYSCALL_ENTRY( 0x00ec, NtWriteVirtualMemory, 40 ) \ - SYSCALL_ENTRY( 0x00ed, NtYieldExecution, 0 ) \ - SYSCALL_ENTRY( 0x00ee, wine_nt_to_unix_file_name, 32 ) \ - SYSCALL_ENTRY( 0x00ef, wine_unix_to_nt_file_name, 24 ) + SYSCALL_ENTRY( 0x0046, NtFlushBuffersFileEx, 40 ) \ + SYSCALL_ENTRY( 0x0047, NtFlushInstructionCache, 24 ) \ + SYSCALL_ENTRY( 0x0048, NtFlushKey, 8 ) \ + SYSCALL_ENTRY( 0x0049, NtFlushProcessWriteBuffers, 0 ) \ + SYSCALL_ENTRY( 0x004a, NtFlushVirtualMemory, 32 ) \ + SYSCALL_ENTRY( 0x004b, NtFreeVirtualMemory, 32 ) \ + SYSCALL_ENTRY( 0x004c, NtFsControlFile, 80 ) \ + SYSCALL_ENTRY( 0x004d, NtGetContextThread, 16 ) \ + SYSCALL_ENTRY( 0x004e, NtGetCurrentProcessorNumber, 0 ) \ + SYSCALL_ENTRY( 0x004f, NtGetNextThread, 48 ) \ + SYSCALL_ENTRY( 0x0050, NtGetNlsSectionPtr, 40 ) \ + SYSCALL_ENTRY( 0x0051, NtGetWriteWatch, 56 ) \ + SYSCALL_ENTRY( 0x0052, NtImpersonateAnonymousToken, 8 ) \ + SYSCALL_ENTRY( 0x0053, NtInitializeNlsFiles, 24 ) \ + SYSCALL_ENTRY( 0x0054, NtInitiatePowerAction, 32 ) \ + SYSCALL_ENTRY( 0x0055, NtIsProcessInJob, 16 ) \ + SYSCALL_ENTRY( 0x0056, NtListenPort, 16 ) \ + SYSCALL_ENTRY( 0x0057, NtLoadDriver, 8 ) \ + SYSCALL_ENTRY( 0x0058, NtLoadKey, 16 ) \ + SYSCALL_ENTRY( 0x0059, NtLoadKey2, 24 ) \ + SYSCALL_ENTRY( 0x005a, NtLoadKeyEx, 64 ) \ + SYSCALL_ENTRY( 0x005b, NtLockFile, 80 ) \ + SYSCALL_ENTRY( 0x005c, NtLockVirtualMemory, 32 ) \ + SYSCALL_ENTRY( 0x005d, NtMakePermanentObject, 8 ) \ + SYSCALL_ENTRY( 0x005e, NtMakeTemporaryObject, 8 ) \ + SYSCALL_ENTRY( 0x005f, NtMapViewOfSection, 80 ) \ + SYSCALL_ENTRY( 0x0060, NtMapViewOfSectionEx, 72 ) \ + SYSCALL_ENTRY( 0x0061, NtNotifyChangeDirectoryFile, 72 ) \ + SYSCALL_ENTRY( 0x0062, NtNotifyChangeKey, 80 ) \ + SYSCALL_ENTRY( 0x0063, NtNotifyChangeMultipleKeys, 96 ) \ + SYSCALL_ENTRY( 0x0064, NtOpenDirectoryObject, 24 ) \ + SYSCALL_ENTRY( 0x0065, NtOpenEvent, 24 ) \ + SYSCALL_ENTRY( 0x0066, NtOpenFile, 48 ) \ + SYSCALL_ENTRY( 0x0067, NtOpenIoCompletion, 24 ) \ + SYSCALL_ENTRY( 0x0068, NtOpenJobObject, 24 ) \ + SYSCALL_ENTRY( 0x0069, NtOpenKey, 24 ) \ + SYSCALL_ENTRY( 0x006a, NtOpenKeyEx, 32 ) \ + SYSCALL_ENTRY( 0x006b, NtOpenKeyTransacted, 32 ) \ + SYSCALL_ENTRY( 0x006c, NtOpenKeyTransactedEx, 40 ) \ + SYSCALL_ENTRY( 0x006d, NtOpenKeyedEvent, 24 ) \ + SYSCALL_ENTRY( 0x006e, NtOpenMutant, 24 ) \ + SYSCALL_ENTRY( 0x006f, NtOpenProcess, 32 ) \ + SYSCALL_ENTRY( 0x0070, NtOpenProcessToken, 24 ) \ + SYSCALL_ENTRY( 0x0071, NtOpenProcessTokenEx, 32 ) \ + SYSCALL_ENTRY( 0x0072, NtOpenSection, 24 ) \ + SYSCALL_ENTRY( 0x0073, NtOpenSemaphore, 24 ) \ + SYSCALL_ENTRY( 0x0074, NtOpenSymbolicLinkObject, 24 ) \ + SYSCALL_ENTRY( 0x0075, NtOpenThread, 32 ) \ + SYSCALL_ENTRY( 0x0076, NtOpenThreadToken, 32 ) \ + SYSCALL_ENTRY( 0x0077, NtOpenThreadTokenEx, 40 ) \ + SYSCALL_ENTRY( 0x0078, NtOpenTimer, 24 ) \ + SYSCALL_ENTRY( 0x0079, NtPowerInformation, 40 ) \ + SYSCALL_ENTRY( 0x007a, NtPrivilegeCheck, 24 ) \ + SYSCALL_ENTRY( 0x007b, NtProtectVirtualMemory, 40 ) \ + SYSCALL_ENTRY( 0x007c, NtPulseEvent, 16 ) \ + SYSCALL_ENTRY( 0x007d, NtQueryAttributesFile, 16 ) \ + SYSCALL_ENTRY( 0x007e, NtQueryDefaultLocale, 16 ) \ + SYSCALL_ENTRY( 0x007f, NtQueryDefaultUILanguage, 8 ) \ + SYSCALL_ENTRY( 0x0080, NtQueryDirectoryFile, 88 ) \ + SYSCALL_ENTRY( 0x0081, NtQueryDirectoryObject, 56 ) \ + SYSCALL_ENTRY( 0x0082, NtQueryEaFile, 72 ) \ + SYSCALL_ENTRY( 0x0083, NtQueryEvent, 40 ) \ + SYSCALL_ENTRY( 0x0084, NtQueryFullAttributesFile, 16 ) \ + SYSCALL_ENTRY( 0x0085, NtQueryInformationAtom, 40 ) \ + SYSCALL_ENTRY( 0x0086, NtQueryInformationFile, 40 ) \ + SYSCALL_ENTRY( 0x0087, NtQueryInformationJobObject, 40 ) \ + SYSCALL_ENTRY( 0x0088, NtQueryInformationProcess, 40 ) \ + SYSCALL_ENTRY( 0x0089, NtQueryInformationThread, 40 ) \ + SYSCALL_ENTRY( 0x008a, NtQueryInformationToken, 40 ) \ + SYSCALL_ENTRY( 0x008b, NtQueryInstallUILanguage, 8 ) \ + SYSCALL_ENTRY( 0x008c, NtQueryIoCompletion, 40 ) \ + SYSCALL_ENTRY( 0x008d, NtQueryKey, 40 ) \ + SYSCALL_ENTRY( 0x008e, NtQueryLicenseValue, 40 ) \ + SYSCALL_ENTRY( 0x008f, NtQueryMultipleValueKey, 48 ) \ + SYSCALL_ENTRY( 0x0090, NtQueryMutant, 40 ) \ + SYSCALL_ENTRY( 0x0091, NtQueryObject, 40 ) \ + SYSCALL_ENTRY( 0x0092, NtQueryPerformanceCounter, 16 ) \ + SYSCALL_ENTRY( 0x0093, NtQuerySection, 40 ) \ + SYSCALL_ENTRY( 0x0094, NtQuerySecurityObject, 40 ) \ + SYSCALL_ENTRY( 0x0095, NtQuerySemaphore, 40 ) \ + SYSCALL_ENTRY( 0x0096, NtQuerySymbolicLinkObject, 24 ) \ + SYSCALL_ENTRY( 0x0097, NtQuerySystemEnvironmentValue, 32 ) \ + SYSCALL_ENTRY( 0x0098, NtQuerySystemEnvironmentValueEx, 40 ) \ + SYSCALL_ENTRY( 0x0099, NtQuerySystemInformation, 32 ) \ + SYSCALL_ENTRY( 0x009a, NtQuerySystemInformationEx, 48 ) \ + SYSCALL_ENTRY( 0x009b, NtQuerySystemTime, 8 ) \ + SYSCALL_ENTRY( 0x009c, NtQueryTimer, 40 ) \ + SYSCALL_ENTRY( 0x009d, NtQueryTimerResolution, 24 ) \ + SYSCALL_ENTRY( 0x009e, NtQueryValueKey, 48 ) \ + SYSCALL_ENTRY( 0x009f, NtQueryVirtualMemory, 48 ) \ + SYSCALL_ENTRY( 0x00a0, NtQueryVolumeInformationFile, 40 ) \ + SYSCALL_ENTRY( 0x00a1, NtQueueApcThread, 40 ) \ + SYSCALL_ENTRY( 0x00a2, NtQueueApcThreadEx, 48 ) \ + SYSCALL_ENTRY( 0x00a3, NtRaiseException, 24 ) \ + SYSCALL_ENTRY( 0x00a4, NtRaiseHardError, 48 ) \ + SYSCALL_ENTRY( 0x00a5, NtReadFile, 72 ) \ + SYSCALL_ENTRY( 0x00a6, NtReadFileScatter, 72 ) \ + SYSCALL_ENTRY( 0x00a7, NtReadVirtualMemory, 40 ) \ + SYSCALL_ENTRY( 0x00a8, NtRegisterThreadTerminatePort, 8 ) \ + SYSCALL_ENTRY( 0x00a9, NtReleaseKeyedEvent, 32 ) \ + SYSCALL_ENTRY( 0x00aa, NtReleaseMutant, 16 ) \ + SYSCALL_ENTRY( 0x00ab, NtReleaseSemaphore, 24 ) \ + SYSCALL_ENTRY( 0x00ac, NtRemoveIoCompletion, 40 ) \ + SYSCALL_ENTRY( 0x00ad, NtRemoveIoCompletionEx, 48 ) \ + SYSCALL_ENTRY( 0x00ae, NtRemoveProcessDebug, 16 ) \ + SYSCALL_ENTRY( 0x00af, NtRenameKey, 16 ) \ + SYSCALL_ENTRY( 0x00b0, NtReplaceKey, 24 ) \ + SYSCALL_ENTRY( 0x00b1, NtReplyWaitReceivePort, 32 ) \ + SYSCALL_ENTRY( 0x00b2, NtRequestWaitReplyPort, 24 ) \ + SYSCALL_ENTRY( 0x00b3, NtResetEvent, 16 ) \ + SYSCALL_ENTRY( 0x00b4, NtResetWriteWatch, 24 ) \ + SYSCALL_ENTRY( 0x00b5, NtRestoreKey, 24 ) \ + SYSCALL_ENTRY( 0x00b6, NtResumeProcess, 8 ) \ + SYSCALL_ENTRY( 0x00b7, NtResumeThread, 16 ) \ + SYSCALL_ENTRY( 0x00b8, NtRollbackTransaction, 16 ) \ + SYSCALL_ENTRY( 0x00b9, NtSaveKey, 16 ) \ + SYSCALL_ENTRY( 0x00ba, NtSecureConnectPort, 72 ) \ + SYSCALL_ENTRY( 0x00bb, NtSetContextThread, 16 ) \ + SYSCALL_ENTRY( 0x00bc, NtSetDebugFilterState, 24 ) \ + SYSCALL_ENTRY( 0x00bd, NtSetDefaultLocale, 16 ) \ + SYSCALL_ENTRY( 0x00be, NtSetDefaultUILanguage, 8 ) \ + SYSCALL_ENTRY( 0x00bf, NtSetEaFile, 32 ) \ + SYSCALL_ENTRY( 0x00c0, NtSetEvent, 16 ) \ + SYSCALL_ENTRY( 0x00c1, NtSetInformationDebugObject, 40 ) \ + SYSCALL_ENTRY( 0x00c2, NtSetInformationFile, 40 ) \ + SYSCALL_ENTRY( 0x00c3, NtSetInformationJobObject, 32 ) \ + SYSCALL_ENTRY( 0x00c4, NtSetInformationKey, 32 ) \ + SYSCALL_ENTRY( 0x00c5, NtSetInformationObject, 32 ) \ + SYSCALL_ENTRY( 0x00c6, NtSetInformationProcess, 32 ) \ + SYSCALL_ENTRY( 0x00c7, NtSetInformationThread, 32 ) \ + SYSCALL_ENTRY( 0x00c8, NtSetInformationToken, 32 ) \ + SYSCALL_ENTRY( 0x00c9, NtSetInformationVirtualMemory, 48 ) \ + SYSCALL_ENTRY( 0x00ca, NtSetIntervalProfile, 16 ) \ + SYSCALL_ENTRY( 0x00cb, NtSetIoCompletion, 40 ) \ + SYSCALL_ENTRY( 0x00cc, NtSetIoCompletionEx, 48 ) \ + SYSCALL_ENTRY( 0x00cd, NtSetLdtEntries, 32 ) \ + SYSCALL_ENTRY( 0x00ce, NtSetSecurityObject, 24 ) \ + SYSCALL_ENTRY( 0x00cf, NtSetSystemInformation, 24 ) \ + SYSCALL_ENTRY( 0x00d0, NtSetSystemTime, 16 ) \ + SYSCALL_ENTRY( 0x00d1, NtSetThreadExecutionState, 16 ) \ + SYSCALL_ENTRY( 0x00d2, NtSetTimer, 56 ) \ + SYSCALL_ENTRY( 0x00d3, NtSetTimerResolution, 24 ) \ + SYSCALL_ENTRY( 0x00d4, NtSetValueKey, 48 ) \ + SYSCALL_ENTRY( 0x00d5, NtSetVolumeInformationFile, 40 ) \ + SYSCALL_ENTRY( 0x00d6, NtShutdownSystem, 8 ) \ + SYSCALL_ENTRY( 0x00d7, NtSignalAndWaitForSingleObject, 32 ) \ + SYSCALL_ENTRY( 0x00d8, NtSuspendProcess, 8 ) \ + SYSCALL_ENTRY( 0x00d9, NtSuspendThread, 16 ) \ + SYSCALL_ENTRY( 0x00da, NtSystemDebugControl, 48 ) \ + SYSCALL_ENTRY( 0x00db, NtTerminateJobObject, 16 ) \ + SYSCALL_ENTRY( 0x00dc, NtTerminateProcess, 16 ) \ + SYSCALL_ENTRY( 0x00dd, NtTerminateThread, 16 ) \ + SYSCALL_ENTRY( 0x00de, NtTestAlert, 0 ) \ + SYSCALL_ENTRY( 0x00df, NtTraceControl, 48 ) \ + SYSCALL_ENTRY( 0x00e0, NtUnloadDriver, 8 ) \ + SYSCALL_ENTRY( 0x00e1, NtUnloadKey, 8 ) \ + SYSCALL_ENTRY( 0x00e2, NtUnlockFile, 40 ) \ + SYSCALL_ENTRY( 0x00e3, NtUnlockVirtualMemory, 32 ) \ + SYSCALL_ENTRY( 0x00e4, NtUnmapViewOfSection, 16 ) \ + SYSCALL_ENTRY( 0x00e5, NtUnmapViewOfSectionEx, 24 ) \ + SYSCALL_ENTRY( 0x00e6, NtWaitForAlertByThreadId, 16 ) \ + SYSCALL_ENTRY( 0x00e7, NtWaitForDebugEvent, 32 ) \ + SYSCALL_ENTRY( 0x00e8, NtWaitForKeyedEvent, 32 ) \ + SYSCALL_ENTRY( 0x00e9, NtWaitForMultipleObjects, 40 ) \ + SYSCALL_ENTRY( 0x00ea, NtWaitForSingleObject, 24 ) \ + SYSCALL_ENTRY( 0x00eb, NtWriteFile, 72 ) \ + SYSCALL_ENTRY( 0x00ec, NtWriteFileGather, 72 ) \ + SYSCALL_ENTRY( 0x00ed, NtWriteVirtualMemory, 40 ) \ + SYSCALL_ENTRY( 0x00ee, NtYieldExecution, 0 ) \ + SYSCALL_ENTRY( 0x00ef, wine_nt_to_unix_file_name, 32 ) \ + SYSCALL_ENTRY( 0x00f0, wine_unix_to_nt_file_name, 24 ) diff --git a/dlls/ntdll/signal_arm64ec.c b/dlls/ntdll/signal_arm64ec.c index a2811c91af5..deb5c676413 100644 --- a/dlls/ntdll/signal_arm64ec.c +++ b/dlls/ntdll/signal_arm64ec.c @@ -311,6 +311,7 @@ DEFINE_SYSCALL(NtEnumerateValueKey, (HANDLE handle, ULONG index, KEY_VALUE_INFOR DEFINE_SYSCALL(NtFilterToken, (HANDLE token, ULONG flags, TOKEN_GROUPS *disable_sids, TOKEN_PRIVILEGES *privileges, TOKEN_GROUPS *restrict_sids, HANDLE *new_token)) DEFINE_SYSCALL(NtFindAtom, (const WCHAR *name, ULONG length, RTL_ATOM *atom)) DEFINE_SYSCALL(NtFlushBuffersFile, (HANDLE handle, IO_STATUS_BLOCK *io)) +DEFINE_SYSCALL(NtFlushBuffersFileEx, (HANDLE handle, ULONG flags, void *params, ULONG size, IO_STATUS_BLOCK *io)) DEFINE_WRAPPED_SYSCALL(NtFlushInstructionCache, (HANDLE handle, const void *addr, SIZE_T size)) DEFINE_SYSCALL(NtFlushKey, (HANDLE key)) DEFINE_SYSCALL(NtFlushProcessWriteBuffers, (void)) diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c index 9da53339ff0..13dc36b42ff 100644 --- a/dlls/ntdll/unix/file.c +++ b/dlls/ntdll/unix/file.c @@ -6269,12 +6269,26 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap * NtFlushBuffersFile (NTDLL.@) */ NTSTATUS WINAPI NtFlushBuffersFile( HANDLE handle, IO_STATUS_BLOCK *io ) +{ + return NtFlushBuffersFileEx( handle, 0, NULL, 0, io ); +} + + +/****************************************************************************** + * NtFlushBuffersFileEx (NTDLL.@) + */ +NTSTATUS WINAPI NtFlushBuffersFileEx( HANDLE handle, ULONG flags, void *params, ULONG size, IO_STATUS_BLOCK *io ) { NTSTATUS ret; HANDLE wait_handle; enum server_fd_type type; int fd, needs_close;
+ TRACE( "(%p,0x%08x,%p,0x%08x,%p)\n", handle, (int)flags, params, (int)size, io ); + + if (flags) FIXME( "flags 0x%08x ignored\n", (int)flags ); + if (params || size) FIXME( "params %p/0x%08x ignored\n", params, (int)size ); + if (!io || !virtual_check_buffer_for_write( io, sizeof(*io) )) return STATUS_ACCESS_VIOLATION;
ret = server_get_unix_fd( handle, FILE_WRITE_DATA, &fd, &needs_close, &type, NULL ); diff --git a/dlls/wow64/file.c b/dlls/wow64/file.c index bdc9f4f2b2c..0afd02a2a7c 100644 --- a/dlls/wow64/file.c +++ b/dlls/wow64/file.c @@ -413,6 +413,26 @@ NTSTATUS WINAPI wow64_NtFlushBuffersFile( UINT *args ) }
+/********************************************************************** + * wow64_NtFlushBuffersFileEx + */ +NTSTATUS WINAPI wow64_NtFlushBuffersFileEx( UINT *args ) +{ + HANDLE handle = get_handle( &args ); + ULONG flags = get_ulong( &args ); + void *params = get_ptr( &args ); + ULONG size = get_ulong( &args ); + IO_STATUS_BLOCK32 *io32 = get_ptr( &args ); + + IO_STATUS_BLOCK io; + NTSTATUS status; + + status = NtFlushBuffersFileEx( handle, flags, params, size, iosb_32to64( &io, io32 ) ); + put_iosb( io32, &io ); + return status; +} + + /********************************************************************** * wow64_NtFsControlFile */ diff --git a/include/winternl.h b/include/winternl.h index 585349905f5..a1e6cca2251 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -4540,6 +4540,7 @@ NTSYSAPI NTSTATUS WINAPI NtExtendSection(HANDLE,PLARGE_INTEGER); NTSYSAPI NTSTATUS WINAPI NtFilterToken(HANDLE,ULONG,TOKEN_GROUPS*,TOKEN_PRIVILEGES*,TOKEN_GROUPS*,HANDLE*); NTSYSAPI NTSTATUS WINAPI NtFindAtom(const WCHAR*,ULONG,RTL_ATOM*); NTSYSAPI NTSTATUS WINAPI NtFlushBuffersFile(HANDLE,IO_STATUS_BLOCK*); +NTSYSAPI NTSTATUS WINAPI NtFlushBuffersFileEx(HANDLE,ULONG,void*,ULONG,IO_STATUS_BLOCK*); NTSYSAPI NTSTATUS WINAPI NtFlushInstructionCache(HANDLE,LPCVOID,SIZE_T); NTSYSAPI NTSTATUS WINAPI NtFlushKey(HANDLE); NTSYSAPI NTSTATUS WINAPI NtFlushProcessWriteBuffers(void);
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=150084
Your paranoid android.
=== debian11b (64 bit WoW report) ===
user32: win.c:4070: Test failed: Expected active window 0000000004B4016E, got 0000000000000000. win.c:4071: Test failed: Expected focus window 0000000004B4016E, got 0000000000000000.
I believe autogenerated diffs (`ntsyscalls.h`) should be excluded from the patch, but I'm supposing it's not a big deal. Otherwise, looks good.
This merge request was approved by Jinoh Kang.
On Fri Nov 29 12:08:49 2024 +0000, Dmitry Timoshkov wrote:
changed this line in [version 2 of the diff](/wine/wine/-/merge_requests/6923/diffs?diff_id=146185&start_sha=3da239d3e9694410e4f3b4f299c4b8352ffd9ab5#51bc191c8a1fc172f9ad299dd009ef2d24dfa043_6290_6290)
Confirmed, thanks.
For background, I believe the general rule is that every possible combination of arguments (regardless of whether they are semantically invalid or not) should fall into exactly one of the two cases:
1. It matches Windows behavior as demonstrated by conformance tests. 2. It emits, or ensures that it has emitted at least once, a FIXME (or WARN depending on the circumstances).
The combination `params == NULL && size != 0` fell into neither, leading to this thread.
Last time when I sent a similar patch missing an autogenerated part broke the CI tests, so I decided to include them.
On Fri Nov 29 14:47:54 2024 +0000, Dmitry Timoshkov wrote:
Last time when I sent a similar patch missing an autogenerated part broke the CI tests, so I decided to include them.
Right, I had it too. So I fixed the CI soon after in !5278. No longer a problem since then I think.