You have to take two decisions for network shortcuts, assuming we aren't going to delete them when the network drive isn't available.
1) Is the network drive available?
2) Is the target of the shortcut available?
Those are the same step: Does CreateFile("\\networkpath\path\foo") fail with a file not found error code? If yes, then do something different.
It's the same anti-pattern that underlies all the IsBadXXXPtr type functions.
IsBadXXXPtr is a check, not a security check function. It is there to check that your arguments and the integrity of your application are valid, not to protect against malicious threads in your process changing things on the fly - because frankly if there's a malicious thread changing the protection of various bits of memory in your process, you've already long since lost your fight against those hackers.