"Detlef Riekenberg" <[EMAIL PROTECTED]> wrote:
> + len = VirtualQuery(VirtualAddress, &info,
> sizeof(MEMORY_BASIC_INFORMATION));
> +
> + if ((len == sizeof(MEMORY_BASIC_INFORMATION)) &&
> + (info.Protect & (PAGE_READWRITE || PAGE_EXECUTE_READWRITE)) &&
> + ((info.Protect & PAGE_NOACCESS) == 0) &&
> + (info.Type & MEM_COMMIT))
> + {
> + return TRUE;
> + }
Besides the already pointed out '||' vs. '|' mismatch your code doesn't
handle PAGE_READONLY and others implying read-only access. Probably checking
for PAGE_NOACCESS and MEM_COMMIT should be enough.
--
Dmitry.