norsd
驱动牛犊
驱动牛犊
  • 注册日期2003-03-27
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1615回复:2

MmGetSystemAddressForMdl 与 MmGetSystemAddressForMdlSafe 的区别及其他

楼主#
更多 发布于:2003-10-21 17:07
请问两者在功能上有什么区别?
我看了两者的宏实现(因为这两个函数其实是两个宏来实现的)

#define MmGetSystemAddressForMdl(MDL)                                  \\
     (((MDL)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA |                    \\
                        MDL_SOURCE_IS_NONPAGED_POOL)) ?                \\
                             ((MDL)->MappedSystemVa) :                 \\
                             (MmMapLockedPages((MDL),KernelMode)))



#define MmGetSystemAddressForMdlSafe(MDL, PRIORITY)                    \\
     (((MDL)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA |                    \\
                        MDL_SOURCE_IS_NONPAGED_POOL)) ?                \\
                             ((MDL)->MappedSystemVa) :                 \\
                             (MmMapLockedPagesSpecifyCache((MDL),      \\
                                                           KernelMode, \\
                                                           MmCached,   \\
                                                           NULL,       \\
                                                           FALSE,      \\
                                                           (PRIORITY))))


P.S.这两个“函数”其实是两个宏大家应该都知道吧 :D
xiaoyan_yang121
驱动牛犊
驱动牛犊
  • 注册日期2002-06-25
  • 最后登录2005-06-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-21 17:35
看看MSDN不就一目了然了吗,里面讲的够详细的了,刚刚用到过!
norsd
驱动牛犊
驱动牛犊
  • 注册日期2003-03-27
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-21 18:06
看看MSDN不就一目了然了吗,里面讲的够详细的了,刚刚用到过!
 


什么都想到了,竟然忘了去看MSDN!
不好意思 :P

[编辑 -  10/21/03 by  norsd]
游客

返回顶部