which allows us to support Windows' errors where we have to allocate a buffer to get the error string.