especially if you have to add incorrect implementation to do it
Is incorrect implementation the ERROR_NOT_SUPPORTED part or the IsBadReadPtr() part?
IsBadReadPtr() is an attempt to actually implement some subset of correct behaviour, and it looks very wrong.