Added patch to add stub for ntoskrnl.Mm{Map,Unmap}LockedPages.

This commit is contained in:
Sebastian Lackner 2015-02-21 11:55:16 +01:00
parent 65895dcd33
commit 591c89dcaa
5 changed files with 80 additions and 1 deletions

View File

@ -38,13 +38,14 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
===================================
**Bugfixes and features included in the next upcoming release [13]:**
**Bugfixes and features included in the next upcoming release [14]:**
* Add semi-stub for GetFileVersionInfoExA/W ([Wine Bug #38098](https://bugs.winehq.org/show_bug.cgi?id=38098))
* Add semi-stub for GetFileVersionInfoSizeExA/W ([Wine Bug #38090](https://bugs.winehq.org/show_bug.cgi?id=38090))
* Add stub for ntoskrnl.ExAcquireResourceExclusiveLite
* Add stub for ntoskrnl.ExDeleteResourceLite
* Add stub for ntoskrnl.ExReleaseResourceForThread
* Add stub for ntoskrnl.Mm{Map,Unmap}LockedPages
* Avoid race-conditions in NtReadFile() operations with write watches.
* Avoid race-conditions with write watches in WS2_async_accept.
* Basic handling of write watches triggered while we're on the signal stack.

1
debian/changelog vendored
View File

@ -17,6 +17,7 @@ wine-staging (1.7.37) UNRELEASED; urgency=low
* Added patch to implement semi-stub for GetFileVersionInfoSizeExA/W.
* Added patch to implement semi-stub for GetFileVersionInfoExA/W.
* Added patch to ignore unsupported alpha channels in TIFF decoder.
* Added patch to add stub for ntoskrnl.Mm{Map,Unmap}LockedPages.
* Removed patches for UTF7 support (accepted upstream).
* Removed patches for SIO_ADDRESS_LIST_CHANGE ioctl (accepted upstream).
* Removed patch for IApplicationAssociationRegistration::QueryCurrentDefault (accepted upstream).

View File

@ -0,0 +1,74 @@
From 2312e4f90d7f17f6e631ee7f1839d30ffa70241e Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Sun, 1 Feb 2015 12:53:09 +0100
Subject: ntoskrnl.exe: Implement MmMapLockedPages and MmUnmapLockedPages.
---
dlls/ntoskrnl.exe/ntoskrnl.c | 21 +++++++++++++++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 4 ++--
2 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 715f302..10957e8 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -1673,6 +1673,16 @@ VOID WINAPI MmLockPagableSectionByHandle(PVOID ImageSectionHandle)
FIXME("stub %p\n", ImageSectionHandle);
}
+ /***********************************************************************
+ * MmMapLockedPages (NTOSKRNL.EXE.@)
+ */
+PVOID WINAPI MmMapLockedPages(PMDL MemoryDescriptorList, KPROCESSOR_MODE AccessMode)
+{
+ TRACE("%p %d\n", MemoryDescriptorList, AccessMode);
+ return MemoryDescriptorList->MappedSystemVa;
+}
+
+
/***********************************************************************
* MmMapLockedPagesSpecifyCache (NTOSKRNL.EXE.@)
*/
@@ -1737,6 +1747,17 @@ VOID WINAPI MmUnmapIoSpace( PVOID BaseAddress, SIZE_T NumberOfBytes )
FIXME( "stub: %p, %lu\n", BaseAddress, NumberOfBytes );
}
+
+/***********************************************************************
+ * MmUnmapLockedPages (NTOSKRNL.EXE.@)
+ */
+void WINAPI MmUnmapLockedPages(PVOID BaseAddress, PMDLX MemoryDescriptorList)
+{
+ TRACE("%p %p\n", BaseAddress, MemoryDescriptorList);
+ /* Nothing to do */
+}
+
+
/***********************************************************************
* ObfReferenceObject (NTOSKRNL.EXE.@)
*/
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 238c953..4a112ef 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -689,7 +689,7 @@
@ stub MmLockPagableImageSection
@ stdcall MmLockPagableSectionByHandle(ptr)
@ stdcall MmMapIoSpace(long long long long)
-@ stub MmMapLockedPages
+@ stdcall MmMapLockedPages(ptr long)
@ stdcall MmMapLockedPagesSpecifyCache(ptr long long ptr long long)
@ stub MmMapLockedPagesWithReservedMapping
@ stub MmMapMemoryDumpMdl
@@ -719,7 +719,7 @@
@ stdcall MmUnlockPagableImageSection(ptr)
@ stdcall MmUnlockPages(ptr)
@ stdcall MmUnmapIoSpace(ptr long)
-@ stub MmUnmapLockedPages
+@ stdcall MmUnmapLockedPages(ptr ptr)
@ stub MmUnmapReservedMapping
@ stub MmUnmapVideoDisplay
@ stub MmUnmapViewInSessionSpace
--
2.3.0

View File

@ -7,3 +7,4 @@ Fixes: Fix wrong defition of ntoskrnl.IoReleaseCancelSpinLock function.
Fixes: Add stub for ntoskrnl.ExAcquireResourceExclusiveLite
Fixes: Add stub for ntoskrnl.ExReleaseResourceForThread
Fixes: Add stub for ntoskrnl.ExDeleteResourceLite
Fixes: Add stub for ntoskrnl.Mm{Map,Unmap}LockedPages

View File

@ -2374,6 +2374,7 @@ if test "$enable_ntoskrnl_Stubs" -eq 1; then
patch_apply ntoskrnl-Stubs/0011-ntoskrnl.exe-Add-stub-for-ExAcquireResourceExclusive.patch
patch_apply ntoskrnl-Stubs/0012-ntoskrnl.exe-Add-stub-for-ExReleaseResourceForThread.patch
patch_apply ntoskrnl-Stubs/0013-ntoskrnl.exe-Add-stub-for-ExDeleteResourceLite.patch
patch_apply ntoskrnl-Stubs/0014-ntoskrnl.exe-Implement-MmMapLockedPages-and-MmUnmapL.patch
(
echo '+ { "Sebastian Lackner", "include: Remove several duplicate definitions from ntdef.h.", 1 },';
echo '+ { "Austin English", "ntoskrnl.exe: add KeWaitForMultipleObjects stub.", 1 },';
@ -2388,6 +2389,7 @@ if test "$enable_ntoskrnl_Stubs" -eq 1; then
echo '+ { "Christian Costa", "ntoskrnl.exe: Add stub for ExAcquireResourceExclusiveLite.", 1 },';
echo '+ { "Christian Costa", "ntoskrnl.exe: Add stub for ExReleaseResourceForThreadLite.", 1 },';
echo '+ { "Christian Costa", "ntoskrnl.exe: Add stub for ExDeleteResourceLite.", 1 },';
echo '+ { "Christian Costa", "ntoskrnl.exe: Implement MmMapLockedPages and MmUnmapLockedPages.", 1 },';
) >> "$patchlist"
fi