From 5eafe53e5449a5a2602d947a3f1d0864a2f6e476 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aida=20Jonikien=C4=97?= Date: Tue, 5 Mar 2024 10:06:23 +0200 Subject: [PATCH] ntdll: Fix params_mask type in NtRaiseHardError(). Real-world app testing reveals that parameter isn't used as a pointer (so change it to an integer). --- dlls/ntdll/ntdll.spec | 4 ++-- dlls/ntdll/signal_arm64ec.c | 2 +- dlls/ntdll/unix/system.c | 4 ++-- include/winternl.h | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index f82146c6d39..9147cdca3cd 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -340,7 +340,7 @@ @ stdcall -syscall NtQueueApcThread(long ptr long long long) @ stdcall -syscall NtQueueApcThreadEx(long long ptr long long long) @ stdcall -syscall NtRaiseException(ptr ptr long) -@ stdcall -syscall NtRaiseHardError(long long ptr ptr long ptr) +@ stdcall -syscall NtRaiseHardError(long long long ptr long ptr) @ stdcall -syscall NtReadFile(long long ptr ptr ptr ptr long ptr ptr) @ stdcall -syscall NtReadFileScatter(long long ptr ptr ptr ptr long ptr ptr) # @ stub NtReadRequestData @@ -1389,7 +1389,7 @@ @ stdcall -private -syscall ZwQueueApcThread(long ptr long long long) NtQueueApcThread @ stdcall -private -syscall ZwQueueApcThreadEx(long long ptr long long long) NtQueueApcThreadEx @ stdcall -private -syscall ZwRaiseException(ptr ptr long) NtRaiseException -@ stdcall -private -syscall ZwRaiseHardError(long long ptr ptr long ptr) NtRaiseHardError +@ stdcall -private -syscall ZwRaiseHardError(long long long ptr long ptr) NtRaiseHardError @ stdcall -private -syscall ZwReadFile(long long ptr ptr ptr ptr long ptr ptr) NtReadFile @ stdcall -private -syscall ZwReadFileScatter(long long ptr ptr ptr ptr long ptr ptr) NtReadFileScatter # @ stub ZwReadRequestData diff --git a/dlls/ntdll/signal_arm64ec.c b/dlls/ntdll/signal_arm64ec.c index 44b026fc044..393d5f7e697 100644 --- a/dlls/ntdll/signal_arm64ec.c +++ b/dlls/ntdll/signal_arm64ec.c @@ -270,7 +270,7 @@ DEFINE_SYSCALL(NtQueryVolumeInformationFile, (HANDLE handle, IO_STATUS_BLOCK *io DEFINE_SYSCALL(NtQueueApcThread, (HANDLE handle, PNTAPCFUNC func, ULONG_PTR arg1, ULONG_PTR arg2, ULONG_PTR arg3)) DEFINE_SYSCALL(NtQueueApcThreadEx, (HANDLE handle, HANDLE reserve_handle, PNTAPCFUNC func, ULONG_PTR arg1, ULONG_PTR arg2, ULONG_PTR arg3)) DEFINE_WRAPPED_SYSCALL(NtRaiseException, (EXCEPTION_RECORD *rec, ARM64_NT_CONTEXT *context, BOOL first_chance)) -DEFINE_SYSCALL(NtRaiseHardError, (NTSTATUS status, ULONG count, UNICODE_STRING *params_mask, void **params, HARDERROR_RESPONSE_OPTION option, HARDERROR_RESPONSE *response)) +DEFINE_SYSCALL(NtRaiseHardError, (NTSTATUS status, ULONG count, ULONG params_mask, void **params, HARDERROR_RESPONSE_OPTION option, HARDERROR_RESPONSE *response)) DEFINE_SYSCALL(NtReadFile, (HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc_user, IO_STATUS_BLOCK *io, void *buffer, ULONG length, LARGE_INTEGER *offset, ULONG *key)) DEFINE_SYSCALL(NtReadFileScatter, (HANDLE file, HANDLE event, PIO_APC_ROUTINE apc, void *apc_user, IO_STATUS_BLOCK *io, FILE_SEGMENT_ELEMENT *segments, ULONG length, LARGE_INTEGER *offset, ULONG *key)) DEFINE_SYSCALL(NtReadVirtualMemory, (HANDLE process, const void *addr, void *buffer, SIZE_T size, SIZE_T *bytes_read)) diff --git a/dlls/ntdll/unix/system.c b/dlls/ntdll/unix/system.c index eb5e60af7b9..efb6e7f4579 100644 --- a/dlls/ntdll/unix/system.c +++ b/dlls/ntdll/unix/system.c @@ -4073,10 +4073,10 @@ NTSTATUS WINAPI NtDisplayString( UNICODE_STRING *string ) * NtRaiseHardError (NTDLL.@) */ NTSTATUS WINAPI NtRaiseHardError( NTSTATUS status, ULONG count, - UNICODE_STRING *params_mask, void **params, + ULONG params_mask, void **params, HARDERROR_RESPONSE_OPTION option, HARDERROR_RESPONSE *response ) { - FIXME( "%08x stub\n", (int)status ); + FIXME( "%#08x %u %#x %p %u %p: stub\n", (int)status, (int)count, (int)params_mask, params, option, response ); return STATUS_NOT_IMPLEMENTED; } diff --git a/include/winternl.h b/include/winternl.h index 22cdceeaedb..8406d4b8d46 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -4564,7 +4564,7 @@ NTSYSAPI NTSTATUS WINAPI NtQueryLicenseValue(const UNICODE_STRING *,ULONG *,PVO NTSYSAPI NTSTATUS WINAPI NtQueryVirtualMemory(HANDLE,LPCVOID,MEMORY_INFORMATION_CLASS,PVOID,SIZE_T,SIZE_T*); NTSYSAPI NTSTATUS WINAPI NtQueryVolumeInformationFile(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FS_INFORMATION_CLASS); NTSYSAPI NTSTATUS WINAPI NtRaiseException(PEXCEPTION_RECORD,PCONTEXT,BOOL); -NTSYSAPI NTSTATUS WINAPI NtRaiseHardError(NTSTATUS,ULONG,PUNICODE_STRING,PVOID*,HARDERROR_RESPONSE_OPTION,PHARDERROR_RESPONSE); +NTSYSAPI NTSTATUS WINAPI NtRaiseHardError(NTSTATUS,ULONG,ULONG,PVOID*,HARDERROR_RESPONSE_OPTION,PHARDERROR_RESPONSE); NTSYSAPI NTSTATUS WINAPI NtReadFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,PVOID,ULONG,PLARGE_INTEGER,PULONG); NTSYSAPI NTSTATUS WINAPI NtReadFileScatter(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,FILE_SEGMENT_ELEMENT*,ULONG,PLARGE_INTEGER,PULONG); NTSYSAPI NTSTATUS WINAPI NtReadRequestData(HANDLE,PLPC_MESSAGE,ULONG,PVOID,ULONG,PULONG);