Skip to content

Commit 54b9b41

Browse files
[NTDLL][WINE][NTOS:MM] MmFlushVirtualMemory(): Pretend success (reactos#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 b445005 (0.4.15-dev-2306). CORE-19589
1 parent 6e269f9 commit 54b9b41

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

dll/ntdll/def/ntdll.spec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@
330330
@ stdcall NtFlushInstructionCache(long ptr long)
331331
@ stdcall NtFlushKey(long)
332332
@ stdcall -stub -version=0x600+ NtFlushProcessWriteBuffers()
333-
@ stdcall NtFlushVirtualMemory(long ptr ptr long)
333+
@ stdcall NtFlushVirtualMemory(ptr ptr ptr ptr)
334334
@ stdcall NtFlushWriteBuffer()
335335
@ stdcall NtFreeUserPhysicalPages(ptr ptr ptr)
336336
@ stdcall NtFreeVirtualMemory(long ptr ptr long)
@@ -1493,7 +1493,7 @@
14931493
@ stdcall ZwFlushInstructionCache(long ptr long)
14941494
@ stdcall ZwFlushKey(long)
14951495
@ stdcall -stub -version=0x600+ ZwFlushProcessWriteBuffers()
1496-
@ stdcall ZwFlushVirtualMemory(long ptr ptr long)
1496+
@ stdcall ZwFlushVirtualMemory(ptr ptr ptr ptr)
14971497
@ stdcall ZwFlushWriteBuffer()
14981498
@ stdcall ZwFreeUserPhysicalPages(ptr ptr ptr)
14991499
@ stdcall ZwFreeVirtualMemory(long ptr ptr long)

ntoskrnl/mm/ARM3/virtual.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1348,7 +1348,12 @@ MmFlushVirtualMemory(IN PEPROCESS Process,
13481348

13491349
UNIMPLEMENTED;
13501350

1351-
return STATUS_NOT_IMPLEMENTED;
1351+
// Report actual state.
1352+
IoStatusBlock->Status = STATUS_NOT_IMPLEMENTED;
1353+
IoStatusBlock->Information = 0;
1354+
1355+
// Pretend success.
1356+
return STATUS_SUCCESS; // STATUS_NOT_IMPLEMENTED
13521357
}
13531358

13541359
ULONG

sdk/include/wine/winternl.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4645,7 +4645,11 @@ NTSYSAPI NTSTATUS WINAPI NtFlushBuffersFileEx(HANDLE,ULONG,void*,ULONG,IO_STATU
46454645
NTSYSAPI NTSTATUS WINAPI NtFlushInstructionCache(HANDLE,LPCVOID,SIZE_T);
46464646
NTSYSAPI NTSTATUS WINAPI NtFlushKey(HANDLE);
46474647
NTSYSAPI NTSTATUS WINAPI NtFlushProcessWriteBuffers(void);
4648+
#ifndef __REACTOS__
46484649
NTSYSAPI NTSTATUS WINAPI NtFlushVirtualMemory(HANDLE,LPCVOID*,SIZE_T*,ULONG);
4650+
#else
4651+
NTSYSAPI NTSTATUS WINAPI NtFlushVirtualMemory(HANDLE,LPCVOID*,SIZE_T*,IO_STATUS_BLOCK*);
4652+
#endif
46494653
NTSYSAPI NTSTATUS WINAPI NtFlushWriteBuffer(VOID);
46504654
NTSYSAPI NTSTATUS WINAPI NtFreeVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG);
46514655
NTSYSAPI NTSTATUS WINAPI NtFsControlFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,PVOID,ULONG,PVOID,ULONG);

0 commit comments

Comments
 (0)