访问验证

【勇芳软件工作室】汉化HomePreviousNext

Win32 API提供了一组过程可用于验证其是否具有指定类型的访问给定内存地址或地址范围的功能。以下访问验证功能可用。

功能描述
IsBadCodePtr确定调用进程是否具有对指定地址的内存的读访问权限。
IsBadReadPtr确定调用进程是否在指定的地址范围内对存储器进行了读取访问。
IsBadStringPtr确定调用进程是否具有对由空值终止的字符串指针指向的内存的读访问权限。该函数验证指定数量的字符的访问,或直到遇到字符串的终止空字符。
IsBadWritePtr确定调用进程是否具有对指定地址范围的内存的写访问权限。

IsBadHugeReadPtrIsBadHugeWritePtr功能也可用于兼容早期版本的Windows,区分正常内存分配和占用多个分段的巨大分配。在Win32 API中,这些功能相当于IsBadReadPtrIsBadWritePtr.

在抢占式多任务环境中,某些其他线程可能会更改进程对正在测试的内存的访问。即使访问验证功能指示进程具有对指定内存的所需访问权限,则在尝试访问内存时应使用结构化异常处理。使用结构化异常处理使系统能够通知进程是否发生访问冲突异常,从而使进程有机会处理异常。有关结构化异常处理的更多信息,请参阅结构化异常处理.