Yes some Windows API report NOT FOUND and some SHARING VIOLATION..
Its only for some very special system files. Not sure it is worth the time to create some workaround just for them.
Let FileExists() and others return:
* 1 when GetFileAttributes returns true
* 0 when GetFileAttributes returns false
and FILE_NOT_FOUND
* 2 (or -1 or whatever else) otherwise
It will guarantee file existence or absence