diff --git "a/ntoskrnl/mm/ARM3/mdlsup.c" "b/ntoskrnl/mm/ARM3/mdlsup.c" index 1bd22c1e78a..7ac00f78725 100644 --- "a/ntoskrnl/mm/ARM3/mdlsup.c" +++ "b/ntoskrnl/mm/ARM3/mdlsup.c" @@ -697,10 +697,13 @@ MmMapLockedPagesSpecifyCache(IN PMDL Mdl, // // Sanity checks // - ASSERT((Mdl->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | - MDL_SOURCE_IS_NONPAGED_POOL | - MDL_PARTIAL_HAS_BEEN_MAPPED)) == 0); - ASSERT((Mdl->MdlFlags & (MDL_PAGES_LOCKED | MDL_PARTIAL)) != 0); + if ((Mdl->MdlFlags) != (MDL_MAPPED_TO_SYSTEM_VA | MDL_SOURCE_IS_NONPAGED_POOL)) + { + ASSERT((Mdl->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | + MDL_SOURCE_IS_NONPAGED_POOL | + MDL_PARTIAL_HAS_BEEN_MAPPED)) == 0); + ASSERT((Mdl->MdlFlags & (MDL_PAGES_LOCKED | MDL_PARTIAL)) != 0); + } // // Get the correct cache type @@ -786,7 +789,10 @@ MmMapLockedPagesSpecifyCache(IN PMDL Mdl, // // Mark it as mapped // - ASSERT((Mdl->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA) == 0); + if ((Mdl->MdlFlags) != (MDL_MAPPED_TO_SYSTEM_VA | MDL_SOURCE_IS_NONPAGED_POOL)) + { + ASSERT((Mdl->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA) == 0); + } Mdl->MappedSystemVa = Base; Mdl->MdlFlags |= MDL_MAPPED_TO_SYSTEM_VA; @@ -821,6 +827,18 @@ MmMapLockedPages(IN PMDL Mdl, // // Call the extended version // + //typedef enum _KPROCESSOR_MODE { + // KernelMode, + // UserMode, + // MaximumMode + //} KPROCESSOR_MODE; + + if (Mdl->MdlFlags == (MDL_MAPPED_TO_SYSTEM_VA | MDL_SOURCE_IS_NONPAGED_POOL)) + { + DPRINT1("AccessMode is %d (0-Kernel, 1-User, 2-Max)\n", AccessMode); + DPRINT1("Mdl->MdlFlags is 0x%x\n", Mdl->MdlFlags); + } + return MmMapLockedPagesSpecifyCache(Mdl, AccessMode, MmCached,