- Move more stuff to wdm.h
authorAmine Khaldi <amine.khaldi@reactos.org>
Fri, 5 Mar 2010 17:41:41 +0000 (17:41 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Fri, 5 Mar 2010 17:41:41 +0000 (17:41 +0000)
- Improve more Mm* definitions

svn path=/branches/header-work/; revision=45875

include/ddk/wdm.h
include/ddk/winddk.h

index caff531..e62fb53 100644 (file)
@@ -1854,6 +1854,40 @@ typedef enum _MM_SYSTEM_SIZE {
 #define ROUND_TO_PAGES(Size) \
   (((ULONG_PTR) (Size) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1))
 
+/*
+ * ULONG
+ * MmGetMdlByteCount(
+ *   IN PMDL  Mdl)
+ */
+#define MmGetMdlByteCount(_Mdl) \
+  ((_Mdl)->ByteCount)
+
+/*
+ * ULONG
+ * MmGetMdlByteOffset(
+ *   IN PMDL  Mdl)
+ */
+#define MmGetMdlByteOffset(_Mdl) \
+  ((_Mdl)->ByteOffset)
+
+/*
+ * PPFN_NUMBER
+ * MmGetMdlPfnArray(
+ *   IN PMDL  Mdl)
+ */
+#define MmGetMdlPfnArray(_Mdl) \
+  ((PPFN_NUMBER) ((_Mdl) + 1))
+
+/*
+ * PVOID
+ * MmGetMdlVirtualAddress(
+ *   IN PMDL  Mdl)
+ */
+#define MmGetMdlVirtualAddress(_Mdl) \
+  ((PVOID) ((PCHAR) ((_Mdl)->StartVa) + (_Mdl)->ByteOffset))
+
+#define MmGetProcedureAddress(Address) (Address)
+
 /* PVOID MmGetSystemAddressForMdl(
  *     IN PMDL Mdl);
  */
@@ -1875,7 +1909,75 @@ typedef enum _MM_SYSTEM_SIZE {
     (PVOID) MmMapLockedPagesSpecifyCache((_Mdl), \
       KernelMode, MmCached, NULL, FALSE, (_Priority)))
 
+/*
+ * VOID
+ * MmInitializeMdl(
+ *   IN PMDL  MemoryDescriptorList,
+ *   IN PVOID  BaseVa,
+ *   IN SIZE_T  Length)
+ */
+#define MmInitializeMdl(_MemoryDescriptorList, \
+                        _BaseVa, \
+                        _Length) \
+{ \
+  (_MemoryDescriptorList)->Next = (PMDL) NULL; \
+  (_MemoryDescriptorList)->Size = (CSHORT) (sizeof(MDL) + \
+    (sizeof(PFN_NUMBER) * ADDRESS_AND_SIZE_TO_SPAN_PAGES(_BaseVa, _Length))); \
+  (_MemoryDescriptorList)->MdlFlags = 0; \
+  (_MemoryDescriptorList)->StartVa = (PVOID) PAGE_ALIGN(_BaseVa); \
+  (_MemoryDescriptorList)->ByteOffset = BYTE_OFFSET(_BaseVa); \
+  (_MemoryDescriptorList)->ByteCount = (ULONG) _Length; \
+}
+
+/*
+ * VOID
+ * MmPrepareMdlForReuse(
+ *   IN PMDL  Mdl)
+ */
+#define MmPrepareMdlForReuse(_Mdl) \
+{ \
+  if (((_Mdl)->MdlFlags & MDL_PARTIAL_HAS_BEEN_MAPPED) != 0) { \
+    ASSERT(((_Mdl)->MdlFlags & MDL_PARTIAL) != 0); \
+    MmUnmapLockedPages((_Mdl)->MappedSystemVa, (_Mdl)); \
+  } else if (((_Mdl)->MdlFlags & MDL_PARTIAL) == 0) { \
+    ASSERT(((_Mdl)->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA) == 0); \
+  } \
+}
+
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
+
+NTKERNELAPI
+PVOID
+NTAPI
+MmAllocateContiguousMemory(
+  IN SIZE_T  NumberOfBytes,
+  IN PHYSICAL_ADDRESS  HighestAcceptableAddress);
+
+NTKERNELAPI
+PVOID
+NTAPI
+MmAllocateContiguousMemorySpecifyCache(
+  IN SIZE_T  NumberOfBytes,
+  IN PHYSICAL_ADDRESS  LowestAcceptableAddress,
+  IN PHYSICAL_ADDRESS  HighestAcceptableAddress,
+  IN PHYSICAL_ADDRESS  BoundaryAddressMultiple  OPTIONAL,
+  IN MEMORY_CACHING_TYPE  CacheType);
+
+NTKERNELAPI
+PMDL
+NTAPI
+MmAllocatePagesForMdl(
+  IN PHYSICAL_ADDRESS  LowAddress,
+  IN PHYSICAL_ADDRESS  HighAddress,
+  IN PHYSICAL_ADDRESS  SkipBytes,
+  IN SIZE_T  TotalBytes);
+
+NTKERNELAPI
+VOID
+NTAPI
+MmBuildMdlForNonPagedPool(
+  IN OUT PMDL  MemoryDescriptorList);
+
 NTKERNELAPI
 PMDL
 NTAPI
@@ -1884,6 +1986,206 @@ MmCreateMdl(
   IN PVOID  Base,
   IN SIZE_T  Length);
 
+NTKERNELAPI
+VOID
+NTAPI
+MmFreeContiguousMemory(
+  IN PVOID  BaseAddress);
+
+NTKERNELAPI
+VOID
+NTAPI
+MmFreeContiguousMemorySpecifyCache(
+  IN PVOID  BaseAddress,
+  IN SIZE_T  NumberOfBytes,
+  IN MEMORY_CACHING_TYPE  CacheType);
+
+NTKERNELAPI
+VOID
+NTAPI
+MmFreePagesFromMdl(
+  IN PMDL  MemoryDescriptorList);
+
+NTKERNELAPI
+PVOID
+NTAPI
+MmGetSystemRoutineAddress(
+  IN PUNICODE_STRING  SystemRoutineName);
+
+NTKERNELAPI
+LOGICAL
+NTAPI
+MmIsDriverVerifying(
+  IN PDRIVER_OBJECT  DriverObject);
+
+NTKERNELAPI
+PVOID
+NTAPI
+MmLockPagableDataSection(
+  IN PVOID  AddressWithinSection);
+
+NTKERNELAPI
+PVOID
+NTAPI
+MmMapIoSpace(
+  IN PHYSICAL_ADDRESS  PhysicalAddress,
+  IN SIZE_T  NumberOfBytes,
+  IN MEMORY_CACHING_TYPE  CacheEnable);
+
+NTKERNELAPI
+PVOID
+NTAPI
+MmMapLockedPages(
+  IN PMDL  MemoryDescriptorList,
+  IN KPROCESSOR_MODE  AccessMode);
+
+NTKERNELAPI
+PVOID
+NTAPI
+MmMapLockedPagesSpecifyCache(
+  IN PMDL  MemoryDescriptorList,
+  IN KPROCESSOR_MODE  AccessMode,
+  IN MEMORY_CACHING_TYPE  CacheType,
+  IN PVOID  BaseAddress OPTIONAL,
+  IN ULONG  BugCheckOnFailure,
+  IN MM_PAGE_PRIORITY  Priority);
+
+NTKERNELAPI
+PVOID
+NTAPI
+MmPageEntireDriver(
+  IN PVOID  AddressWithinSection);
+
+NTKERNELAPI
+VOID
+NTAPI
+MmProbeAndLockPages(
+  IN OUT PMDLX  MemoryDescriptorList,
+  IN KPROCESSOR_MODE  AccessMode,
+  IN LOCK_OPERATION  Operation);
+
+NTKERNELAPI
+MM_SYSTEMSIZE
+NTAPI
+MmQuerySystemSize(
+  VOID);
+
+NTKERNELAPI
+VOID
+NTAPI
+MmResetDriverPaging(
+  IN PVOID  AddressWithinSection);
+
+NTKERNELAPI
+SIZE_T
+NTAPI
+MmSizeOfMdl(
+  IN PVOID  Base,
+  IN SIZE_T  Length);
+
+NTKERNELAPI
+VOID
+NTAPI
+MmUnlockPagableImageSection(
+  IN PVOID  ImageSectionHandle);
+
+NTKERNELAPI
+VOID
+NTAPI
+MmUnlockPages(
+  IN OUT PMDLX  MemoryDescriptorList);
+
+NTKERNELAPI
+VOID
+NTAPI
+MmUnmapIoSpace(
+  IN PVOID  BaseAddress,
+  IN SIZE_T  NumberOfBytes);
+
+NTKERNELAPI
+VOID
+NTAPI
+MmUnmapLockedPages(
+  IN PVOID  BaseAddress,
+  IN PMDL  MemoryDescriptorList);
+
+#endif
+
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+MmAdvanceMdl(
+  IN OUT PMDL  Mdl,
+  IN ULONG  NumberOfBytes);
+
+NTKERNELAPI
+PVOID
+NTAPI
+MmAllocateMappingAddress(
+  IN SIZE_T  NumberOfBytes,
+  IN ULONG  PoolTag);
+
+NTKERNELAPI
+VOID
+NTAPI
+MmFreeMappingAddress(
+  IN PVOID  BaseAddress,
+  IN ULONG  PoolTag);
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+MmIsVerifierEnabled(
+  OUT PULONG  VerifierFlags);
+
+NTKERNELAPI
+PVOID
+NTAPI
+MmMapLockedPagesWithReservedMapping(
+  IN PVOID  MappingAddress,
+  IN ULONG  PoolTag,
+  IN PMDL  MemoryDescriptorList,
+  IN MEMORY_CACHING_TYPE  CacheType);
+
+NTKERNELAPI
+VOID
+NTAPI
+MmProbeAndLockProcessPages(
+  IN OUT PMDL  MemoryDescriptorList,
+  IN PEPROCESS  Process,
+  IN KPROCESSOR_MODE  AccessMode,
+  IN LOCK_OPERATION  Operation);
+
+NTKERNELAPI
+NTSTATUS
+NTAPI
+MmProtectMdlSystemAddress(
+  IN PMDLX  MemoryDescriptorList,
+  IN ULONG  NewProtect);
+
+NTKERNELAPI
+VOID
+NTAPI
+MmUnmapReservedMapping(
+  IN PVOID  BaseAddress,
+  IN ULONG  PoolTag,
+  IN PMDLX  MemoryDescriptorList);
+
+#endif
+
+#if (NTDDI_VERSION >= NTDDI_WS03SP1)
+NTKERNELAPI
+PMDL
+NTAPI
+MmAllocatePagesForMdlEx(
+  IN PHYSICAL_ADDRESS LowAddress,
+  IN PHYSICAL_ADDRESS HighAddress,
+  IN PHYSICAL_ADDRESS SkipBytes,
+  IN SIZE_T TotalBytes,
+  IN MEMORY_CACHING_TYPE CacheType,
+  IN ULONG Flags);
 #endif
 
 /******************************************************************************
index 79e75b4..e92d42c 100644 (file)
@@ -3035,71 +3035,12 @@ KeRaiseIrqlToSynchLevel(
 
 /** Memory manager routines **/
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmAdvanceMdl(
-  IN PMDL  Mdl,
-  IN ULONG  NumberOfBytes);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateContiguousMemory(
-  IN ULONG  NumberOfBytes,
-  IN PHYSICAL_ADDRESS  HighestAcceptableAddress);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateContiguousMemorySpecifyCache(
-  IN SIZE_T  NumberOfBytes,
-  IN PHYSICAL_ADDRESS  LowestAcceptableAddress,
-  IN PHYSICAL_ADDRESS  HighestAcceptableAddress,
-  IN PHYSICAL_ADDRESS  BoundaryAddressMultiple  OPTIONAL,
-  IN MEMORY_CACHING_TYPE  CacheType);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmAllocateMappingAddress(
-  IN SIZE_T  NumberOfBytes,
-  IN ULONG  PoolTag);
-
 NTKERNELAPI
 PVOID
 NTAPI
 MmAllocateNonCachedMemory(
   IN ULONG  NumberOfBytes);
 
-NTKERNELAPI
-PMDL
-NTAPI
-MmAllocatePagesForMdl(
-  IN PHYSICAL_ADDRESS  LowAddress,
-  IN PHYSICAL_ADDRESS  HighAddress,
-  IN PHYSICAL_ADDRESS  SkipBytes,
-  IN SIZE_T  TotalBytes);
-
-#if (NTDDI_VERSION >= NTDDI_WS03SP1)
-NTKERNELAPI
-PMDL
-NTAPI
-MmAllocatePagesForMdlEx(
-  IN PHYSICAL_ADDRESS LowAddress,
-  IN PHYSICAL_ADDRESS HighAddress,
-  IN PHYSICAL_ADDRESS SkipBytes,
-  IN SIZE_T TotalBytes,
-  IN MEMORY_CACHING_TYPE CacheType,
-  IN ULONG Flags);
-#endif
-
-NTKERNELAPI
-VOID
-NTAPI
-MmBuildMdlForNonPagedPool(
-  IN OUT PMDL  MemoryDescriptorList);
-
 typedef enum _MMFLUSH_TYPE {
   MmFlushForDelete,
   MmFlushForWrite
@@ -3112,27 +3053,6 @@ MmFlushImageSection(
   IN PSECTION_OBJECT_POINTERS  SectionObjectPointer,
   IN MMFLUSH_TYPE  FlushType);
 
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeContiguousMemory(
-  IN PVOID  BaseAddress);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeContiguousMemorySpecifyCache(
-  IN PVOID  BaseAddress,
-  IN SIZE_T  NumberOfBytes,
-  IN MEMORY_CACHING_TYPE  CacheType);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmFreeMappingAddress(
-  IN PVOID  BaseAddress,
-  IN ULONG  PoolTag);
-
 NTKERNELAPI
 VOID
 NTAPI
@@ -3140,44 +3060,6 @@ MmFreeNonCachedMemory(
   IN PVOID  BaseAddress,
   IN SIZE_T  NumberOfBytes);
 
-NTKERNELAPI
-VOID
-NTAPI
-MmFreePagesFromMdl(
-  IN PMDL  MemoryDescriptorList);
-
-/*
- * ULONG
- * MmGetMdlByteCount(
- *   IN PMDL  Mdl)
- */
-#define MmGetMdlByteCount(_Mdl) \
-  ((_Mdl)->ByteCount)
-
-/*
- * ULONG
- * MmGetMdlByteOffset(
- *   IN PMDL  Mdl)
- */
-#define MmGetMdlByteOffset(_Mdl) \
-  ((_Mdl)->ByteOffset)
-
-/*
- * PPFN_NUMBER
- * MmGetMdlPfnArray(
- *   IN PMDL  Mdl)
- */
-#define MmGetMdlPfnArray(_Mdl) \
-  ((PPFN_NUMBER) ((_Mdl) + 1))
-
-/*
- * PVOID
- * MmGetMdlVirtualAddress(
- *   IN PMDL  Mdl)
- */
-#define MmGetMdlVirtualAddress(_Mdl) \
-  ((PVOID) ((PCHAR) ((_Mdl)->StartVa) + (_Mdl)->ByteOffset))
-
 NTKERNELAPI
 PHYSICAL_ADDRESS
 NTAPI
@@ -3196,26 +3078,6 @@ NTAPI
 MmGetVirtualForPhysical(
   IN PHYSICAL_ADDRESS  PhysicalAddress);
 
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapLockedPagesSpecifyCache(
-  IN PMDL  MemoryDescriptorList,
-  IN KPROCESSOR_MODE  AccessMode,
-  IN MEMORY_CACHING_TYPE  CacheType,
-  IN PVOID  BaseAddress,
-  IN ULONG  BugCheckOnFailure,
-  IN MM_PAGE_PRIORITY  Priority);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapLockedPagesWithReservedMapping(
-  IN PVOID  MappingAddress,
-  IN ULONG  PoolTag,
-  IN PMDL  MemoryDescriptorList,
-  IN MEMORY_CACHING_TYPE  CacheType);
-
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -3262,12 +3124,6 @@ MmMarkPhysicalMemoryAsGood(
   IN PPHYSICAL_ADDRESS  StartAddress,
   IN OUT PLARGE_INTEGER  NumberOfBytes);
 
-NTKERNELAPI
-PVOID
-NTAPI
-MmGetSystemRoutineAddress(
-  IN PUNICODE_STRING  SystemRoutineName);
-
 /*
  * ULONG
  * ADDRESS_AND_SIZE_TO_SPAN_PAGES(
@@ -3279,56 +3135,18 @@ MmGetSystemRoutineAddress(
   ((ULONG) ((((ULONG_PTR) (_Va) & (PAGE_SIZE - 1)) \
     + (_Size) + (PAGE_SIZE - 1)) >> PAGE_SHIFT))
 
-/*
- * VOID
- * MmInitializeMdl(
- *   IN PMDL  MemoryDescriptorList,
- *   IN PVOID  BaseVa,
- *   IN SIZE_T  Length)
- */
-#define MmInitializeMdl(_MemoryDescriptorList, \
-                        _BaseVa, \
-                        _Length) \
-{ \
-  (_MemoryDescriptorList)->Next = (PMDL) NULL; \
-  (_MemoryDescriptorList)->Size = (CSHORT) (sizeof(MDL) + \
-    (sizeof(PFN_NUMBER) * ADDRESS_AND_SIZE_TO_SPAN_PAGES(_BaseVa, _Length))); \
-  (_MemoryDescriptorList)->MdlFlags = 0; \
-  (_MemoryDescriptorList)->StartVa = (PVOID) PAGE_ALIGN(_BaseVa); \
-  (_MemoryDescriptorList)->ByteOffset = BYTE_OFFSET(_BaseVa); \
-  (_MemoryDescriptorList)->ByteCount = (ULONG) _Length; \
-}
-
 NTKERNELAPI
 BOOLEAN
 NTAPI
 MmIsAddressValid(
   IN PVOID  VirtualAddress);
 
-NTKERNELAPI
-LOGICAL
-NTAPI
-MmIsDriverVerifying(
-  IN PDRIVER_OBJECT  DriverObject);
-
 NTKERNELAPI
 BOOLEAN
 NTAPI
 MmIsThisAnNtAsSystem(
   VOID);
 
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmIsVerifierEnabled(
-  OUT PULONG  VerifierFlags);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmLockPagableDataSection(
-  IN PVOID  AddressWithinSection);
-
 NTKERNELAPI
 PVOID
 NTAPI
@@ -3348,21 +3166,6 @@ NTAPI
 MmLockPagableSectionByHandle(
   IN PVOID  ImageSectionHandle);
 
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapIoSpace(
-  IN PHYSICAL_ADDRESS  PhysicalAddress,
-  IN ULONG  NumberOfBytes,
-  IN MEMORY_CACHING_TYPE  CacheEnable);
-
-NTKERNELAPI
-PVOID
-NTAPI
-MmMapLockedPages(
-  IN PMDL  MemoryDescriptorList,
-  IN KPROCESSOR_MODE  AccessMode);
-
 NTKERNELAPI
 PVOID
 NTAPI
@@ -3377,35 +3180,6 @@ MmUnlockPageableImageSection(
     IN PVOID ImageSectionHandle
 );
 
-NTKERNELAPI
-PVOID
-NTAPI
-MmPageEntireDriver(
-  IN PVOID  AddressWithinSection);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmProbeAndLockProcessPages(
-  IN OUT PMDL  MemoryDescriptorList,
-  IN PEPROCESS  Process,
-  IN KPROCESSOR_MODE  AccessMode,
-  IN LOCK_OPERATION  Operation);
-
-NTKERNELAPI
-NTSTATUS
-NTAPI
-MmProtectMdlSystemAddress(
-  IN PMDL  MemoryDescriptorList,
-  IN ULONG  NewProtect);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnmapLockedPages(
-  IN PVOID  BaseAddress,
-  IN PMDL  MemoryDescriptorList);
-
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -3424,37 +3198,6 @@ NTAPI
 MmUnsecureVirtualMemory(
   IN HANDLE  SecureHandle);
 
-/*
- * VOID
- * MmPrepareMdlForReuse(
- *   IN PMDL  Mdl)
- */
-#define MmPrepareMdlForReuse(_Mdl) \
-{ \
-  if (((_Mdl)->MdlFlags & MDL_PARTIAL_HAS_BEEN_MAPPED) != 0) { \
-    ASSERT(((_Mdl)->MdlFlags & MDL_PARTIAL) != 0); \
-    MmUnmapLockedPages((_Mdl)->MappedSystemVa, (_Mdl)); \
-  } else if (((_Mdl)->MdlFlags & MDL_PARTIAL) == 0) { \
-    ASSERT(((_Mdl)->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA) == 0); \
-  } \
-}
-
-#define MmGetProcedureAddress(Address) (Address)
-
-NTKERNELAPI
-VOID
-NTAPI
-MmProbeAndLockPages(
-  IN OUT PMDL  MemoryDescriptorList,
-  IN KPROCESSOR_MODE  AccessMode,
-  IN LOCK_OPERATION  Operation);
-
-NTKERNELAPI
-MM_SYSTEMSIZE
-NTAPI
-MmQuerySystemSize(
-  VOID);
-
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -3462,12 +3205,6 @@ MmRemovePhysicalMemory(
   IN PPHYSICAL_ADDRESS  StartAddress,
   IN OUT PLARGE_INTEGER  NumberOfBytes);
 
-NTKERNELAPI
-VOID
-NTAPI
-MmResetDriverPaging(
-  IN PVOID  AddressWithinSection);
-
 NTKERNELAPI
 HANDLE
 NTAPI
@@ -3476,40 +3213,6 @@ MmSecureVirtualMemory(
   IN SIZE_T  Size,
   IN ULONG  ProbeMode);
 
-NTKERNELAPI
-SIZE_T
-NTAPI
-MmSizeOfMdl(
-  IN PVOID  Base,
-  IN SIZE_T  Length);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnlockPagableImageSection(
-  IN PVOID  ImageSectionHandle);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnlockPages(
-  IN PMDL  MemoryDescriptorList);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnmapIoSpace(
-  IN PVOID  BaseAddress,
-  IN SIZE_T  NumberOfBytes);
-
-NTKERNELAPI
-VOID
-NTAPI
-MmUnmapReservedMapping(
-  IN PVOID  BaseAddress,
-  IN ULONG  PoolTag,
-  IN PMDL  MemoryDescriptorList);
-
 NTKERNELAPI
 VOID
 NTAPI
@@ -3517,8 +3220,6 @@ MmUnmapVideoDisplay(
   IN PVOID  BaseAddress,
   IN SIZE_T  NumberOfBytes);
 
-
-
 /** Object manager routines **/
 
 NTKERNELAPI