[Wine-patches] [eterhack] [0015/0021] ntoskrnl.exe: Add stub for MmMapLockedPagesSpecifyCache.
Alexander Morozov
=?iso-8859-1?q?amorozov_=CE=C1_etersoft=2Eru?=
Ср Янв 28 21:10:12 MSK 2009
---
dlls/ntoskrnl.exe/ntoskrnl.c | 15 +++++++++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
include/ddk/wdm.h | 21 +++++++++++++++++++++
3 files changed, 37 insertions(+), 1 deletions(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 0a59b3d..a7e924e 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -2062,6 +2062,21 @@ PVOID WINAPI MmMapLockedPages(PMDL MemoryDescriptorList,
}
/***********************************************************************
+ * MmMapLockedPagesSpecifyCache (NTOSKRNL.EXE.@)
+ */
+PVOID WINAPI MmMapLockedPagesSpecifyCache(PMDL MemoryDescriptorList,
+ KPROCESSOR_MODE AccessMode,
+ MEMORY_CACHING_TYPE CacheType,
+ PVOID BaseAddress,
+ ULONG BugCheckOnFailure,
+ MM_PAGE_PRIORITY Priority)
+{
+ FIXME("stub: %p %d %u %p %u %u\n", MemoryDescriptorList, AccessMode,
+ CacheType, BaseAddress, BugCheckOnFailure, Priority);
+ return NULL;
+}
+
+/***********************************************************************
* MmPageEntireDriver (NTOSKRNL.EXE.@)
*/
PVOID WINAPI MmPageEntireDriver(PVOID AddrInSection)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 2a852b2..5f61669 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -690,7 +690,7 @@
@ stub MmLockPagableSectionByHandle
@ stub MmMapIoSpace
@ stdcall MmMapLockedPages(ptr long)
-@ stub MmMapLockedPagesSpecifyCache
+@ stdcall MmMapLockedPagesSpecifyCache(ptr long long ptr long long)
@ stub MmMapLockedPagesWithReservedMapping
@ stub MmMapMemoryDumpMdl
@ stub MmMapUserAddressesToPage
diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
index 30fabfc..331ef5c 100644
--- a/include/ddk/wdm.h
+++ b/include/ddk/wdm.h
@@ -160,6 +160,20 @@ typedef struct _VPB {
WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH / sizeof(WCHAR)];
} VPB, *PVPB;
+typedef enum _MEMORY_CACHING_TYPE_ORIG {
+ MmFrameBufferCached = 2
+} MEMORY_CACHING_TYPE_ORIG;
+
+typedef enum _MEMORY_CACHING_TYPE {
+ MmNonCached = FALSE,
+ MmCached = TRUE,
+ MmWriteCombined = MmFrameBufferCached,
+ MmHardwareCoherentCached,
+ MmCachingTypeDoNotUse1,
+ MmCachingTypeDoNotUse2,
+ MmMaximumCacheType
+} MEMORY_CACHING_TYPE;
+
typedef enum _POOL_TYPE {
NonPagedPool,
PagedPool,
@@ -1014,6 +1028,12 @@ typedef enum _LOCK_OPERATION {
IoModifyAccess
} LOCK_OPERATION;
+typedef enum _MM_PAGE_PRIORITY {
+ LowPagePriority,
+ NormalPagePriority = 16,
+ HighPagePriority = 32
+} MM_PAGE_PRIORITY;
+
typedef struct _DEVICE_RELATIONS {
ULONG Count;
PDEVICE_OBJECT Objects[1];
@@ -1100,6 +1120,7 @@ void WINAPI KeStallExecutionProcessor(ULONG);
PVOID WINAPI MmAllocateNonCachedMemory(SIZE_T);
void WINAPI MmFreeNonCachedMemory(PVOID,SIZE_T);
+PVOID WINAPI MmMapLockedPagesSpecifyCache(PMDL,KPROCESSOR_MODE,MEMORY_CACHING_TYPE,PVOID,ULONG,MM_PAGE_PRIORITY);
NTSTATUS WINAPI ObReferenceObjectByHandle(HANDLE,ACCESS_MASK,POBJECT_TYPE,KPROCESSOR_MODE,PVOID*,POBJECT_HANDLE_INFORMATION);
NTSTATUS WINAPI ObReferenceObjectByPointer(VOID*,ACCESS_MASK,POBJECT_TYPE,KPROCESSOR_MODE);
--
1.6.0.2.GIT
Подробная информация о списке рассылки Wine-patches