Why doesn't Windows and Posix use the same API here?