in reply to errno in XS not propagating to $! - breaks Net::SSLeay

Be careful of hacking the code, but a work-around might be, in the C:
SetLastError(ERROR_FILE_NOT_FOUND); instead of <code>errono=ENOENT; SetLastError(ERROR_INVALID_DATA); instead of <code>errno=EINVAL;
Be sure to #include <windows.h> and the error code will be available through $^E. Maybe that's what you did? Personally I stay away from the C RTL error handling in Windows XS.