MmIsAddressValid
WDK文档中给出的功能描述:
The MmIsAddressValid routine checks whether a page fault will occur for a read or write operation at a given virtual address.
根据描述来看这个函数的功能只是去检查读写操作会不会触发一个页错误,但是作为一个常用函数,我们常常用这个函数来检查地址合不合法。
ProbeForRead、ProbeForWrite
由以上的分析可以看出并没有所谓的验证地址是否可读写的功能,我们有时候会把它和ProbeForRead(),ProbeForWrite()这两个函数相混淆。这两个函数才是来验证地址是否可读写的函数,但是仅限于用户地址空间的地址。从WDK中可以看到如下的描述:The ProbeForWrite routine checks that a user-mode buffer actually resides in the user-mode portion of the address space, is writable, and is correctly aligned.
本文详细解析了MmIsAddressValid函数的作用,澄清其主要用于检查读写操作是否会触发页错误,并非验证地址可读写。同时,介绍了ProbeForRead和ProbeForWrite函数,它们专门用于验证用户地址空间内的地址是否可读写。
1624

被折叠的 条评论
为什么被折叠?



