IsBadStringPtr
The IsBadStringPtr
function verifies that the calling process has read access to a range of memory
pointed to by a string pointer.
BOOL IsBadStringPtr(
LPCTSTR lpsz, |
// address of
string |
UINT ucchMax |
// maximum size of
string |
); |
|
Parameters
lpsz
Points to a
null-terminated string, either Unicode or ASCII.
ucchMax
Specifies the
maximum size, in characters, of the string. The function checks for read access
in all bytes up to the string s terminating null character or up to the number
of bytes specified by this parameter, whichever is smaller. If this parameter
is zero, the return value is zero.
Return Values
If the
calling process has read access to all bytes up to the string s terminating
null character or up to the number of bytes specified by ucchMax, the
return value is zero.
If the
calling process does not have read access to all bytes up to the string s
terminating null character or up to the number of bytes specified by ucchMax,
the return value is nonzero. To get extended error information, call GetLastError
Remarks
If the
calling process has read access to some, but not all, of the bytes in the
specified memory range, the return value is nonzero.
In a
preemptive multitasking environment, it is possible for some other thread to
change the process s access to the memory being tested. Even when the function
indicates that the process has read access to the specified memory, you should
use structured exception handling when attempting to access the memory. Use of
structured exception handling enables the system to notify the process if an
access violation exception occurs, giving the process an opportunity to handle
the exception.
See Also