MmUnmapLockedPages(): +Support for MmBuildMdlForNonPagedPool() MDLs
authorshort <>
Thu, 27 Mar 2003 11:33:07 +0000 (11:33 +0000)
committershort <>
Thu, 27 Mar 2003 11:33:07 +0000 (11:33 +0000)
src/libcaptive/mm/mdl.c

index 96bad98..5e9f1f4 100644 (file)
@@ -105,11 +105,17 @@ VOID MmUnmapLockedPages(PVOID BaseAddress,PMDL Mdl)
 {
        g_return_if_fail(BaseAddress!=NULL);
        g_return_if_fail(Mdl!=NULL);
-       g_return_if_fail(Mdl->MdlFlags&MDL_MAPPED_TO_SYSTEM_VA);
        g_return_if_fail(BaseAddress==Mdl->MappedSystemVa);
 
+       /* No mapping is done for pages from MmBuildMdlForNonPagedPool(). */
+       if (Mdl->MdlFlags&MDL_SOURCE_IS_NONPAGED_POOL) {
+               g_return_if_fail(!(Mdl->MdlFlags&MDL_MAPPED_TO_SYSTEM_VA));
+               }
+       else {
+               g_return_if_fail(Mdl->MdlFlags&MDL_MAPPED_TO_SYSTEM_VA);
+               Mdl->MdlFlags&=~MDL_MAPPED_TO_SYSTEM_VA;
+               }
        Mdl->MappedSystemVa=NULL;
-       Mdl->MdlFlags&=~MDL_MAPPED_TO_SYSTEM_VA;
 }
 
 /**