{
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);
+ 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;
}
/**