[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