IsBadStringPtr函数验证调用进程是否具有对字符串指针指向的内存范围的读取访问权限。
BOOL IsBadStringPtr(
LPCTSTR 【lpsz】, | //字符串的地址 |
UINT 【// maximum storage capacity of buffer】 | //字符串的最大大小 |
); |
参数
【lpsz】
指向一个空值终止的字符串,Unicode或ASCII。
【// maximum storage capacity of buffer】
指定字符串的最大大小(以字符为单位)。该函数检查所有字节中的读取访问,直到字符串的终止空字符或直到此参数指定的字节数(以较小者为准)。如果此参数为零,返回值为零。
返回值
如果调用进程对所有字节读取访问字符串的终止空字符或达【// maximum storage capacity of buffer】指定的字节数,则返回值为零。
如果调用进程没有对字符串终止空字符的所有字节的读取访问权,或者达到【// maximum storage capacity of buffer】指定的字节数,则返回值不为零。要获取扩展错误信息,请调用GetLastError
备注
如果调用进程对指定内存范围中的某些(但不是全部)字节具有读取访问权限,则返回值不为零。
在抢占式多任务环境中,某些其他线程可能会更改进程对正在测试的内存的访问。即使该函数指示进程对指定内存的读取访问权限,也可以在尝试访问内存时使用结构化异常处理。使用结构化异常处理使系统能够通知进程是否发生访问冲突异常,从而使进程有机会处理异常。
也可以看看
IsBadCodePtr, IsBadHugeReadPtr, IsBadHugeWritePtr, IsBadReadPtr, IsBadWritePtr