[NTDLL][WINE][NTOS:MM] MmFlushVirtualMemory(): Pretend success (#8290)

* [NTDLL][WINE] Fix *FlushVirtualMemory() parameter types
* [NTOS:MM] MmFlushVirtualMemory(): Pretend success

Yet, set IoStatusBlock's actual data.
Based on Jira hack patch by KRosUser.
Addendum to b445005c70 (0.4.15-dev-2306).
CORE-19589
This commit is contained in:
Serge Gautherie
2025-10-06 16:28:39 -05:00
committed by GitHub
parent 6e269f9a05
commit 54b9b41e84
3 changed files with 12 additions and 3 deletions
+2 -2
View File
@@ -330,7 +330,7 @@
@ stdcall NtFlushInstructionCache(long ptr long)
@ stdcall NtFlushKey(long)
@ stdcall -stub -version=0x600+ NtFlushProcessWriteBuffers()
@ stdcall NtFlushVirtualMemory(long ptr ptr long)
@ stdcall NtFlushVirtualMemory(ptr ptr ptr ptr)
@ stdcall NtFlushWriteBuffer()
@ stdcall NtFreeUserPhysicalPages(ptr ptr ptr)
@ stdcall NtFreeVirtualMemory(long ptr ptr long)
@@ -1493,7 +1493,7 @@
@ stdcall ZwFlushInstructionCache(long ptr long)
@ stdcall ZwFlushKey(long)
@ stdcall -stub -version=0x600+ ZwFlushProcessWriteBuffers()
@ stdcall ZwFlushVirtualMemory(long ptr ptr long)
@ stdcall ZwFlushVirtualMemory(ptr ptr ptr ptr)
@ stdcall ZwFlushWriteBuffer()
@ stdcall ZwFreeUserPhysicalPages(ptr ptr ptr)
@ stdcall ZwFreeVirtualMemory(long ptr ptr long)
+6 -1
View File
@@ -1348,7 +1348,12 @@ MmFlushVirtualMemory(IN PEPROCESS Process,
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
// Report actual state.
IoStatusBlock->Status = STATUS_NOT_IMPLEMENTED;
IoStatusBlock->Information = 0;
// Pretend success.
return STATUS_SUCCESS; // STATUS_NOT_IMPLEMENTED
}
ULONG
+4
View File
@@ -4645,7 +4645,11 @@ NTSYSAPI NTSTATUS WINAPI NtFlushBuffersFileEx(HANDLE,ULONG,void*,ULONG,IO_STATU
NTSYSAPI NTSTATUS WINAPI NtFlushInstructionCache(HANDLE,LPCVOID,SIZE_T);
NTSYSAPI NTSTATUS WINAPI NtFlushKey(HANDLE);
NTSYSAPI NTSTATUS WINAPI NtFlushProcessWriteBuffers(void);
#ifndef __REACTOS__
NTSYSAPI NTSTATUS WINAPI NtFlushVirtualMemory(HANDLE,LPCVOID*,SIZE_T*,ULONG);
#else
NTSYSAPI NTSTATUS WINAPI NtFlushVirtualMemory(HANDLE,LPCVOID*,SIZE_T*,IO_STATUS_BLOCK*);
#endif
NTSYSAPI NTSTATUS WINAPI NtFlushWriteBuffer(VOID);
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);