быстро и безопасно проверить что указатель writable
От: ononim  
Дата: 30.08.12 16:53
Оценка:
Может есть в толстом и старом x86/x86-64 асм инструкция, которая симулирует запись по адресу без самой записи и генерит исключение если адрес не записываемый
Вобщем нужен быстрый и потокобезопасный аналог такого вот
bool IsWritablePtr(PVOID p)
{
__try
{
*(volatile char *) p  = *(volatile char *) p 
}__except(1)
{
return false;
}
return true;
}

Проблема описанного кода в том что он не потокобезопасный. Использование атомарных инструкций с lock-ом возможно решит эту проблему, но ударит по перфомансу..
Как много веселых ребят, и все делают велосипед...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.