in Source/Shared/xsapi_utils.cpp [502:658]
xsapi_internal_string utils::convert_hresult_to_error_name(_In_ long hr)
{
switch (hr)
{
// Generic errors
case S_OK: return "S_OK";
case S_FALSE: return "S_FALSE";
case E_OUTOFMEMORY: return "E_OUTOFMEMORY";
case E_ACCESSDENIED: return "E_ACCESSDENIED";
case E_INVALIDARG: return "E_INVALIDARG";
case E_UNEXPECTED: return "E_UNEXPECTED";
case E_ABORT: return "E_ABORT";
case E_FAIL: return "E_FAIL";
case E_NOTIMPL: return "E_NOTIMPL";
case E_ILLEGAL_METHOD_CALL: return "E_ILLEGAL_METHOD_CALL";
// Authentication specific errors
case 0x87DD0003: return "AM_E_XASD_UNEXPECTED";
case 0x87DD0004: return "AM_E_XASU_UNEXPECTED";
case 0x87DD0005: return "AM_E_XAST_UNEXPECTED";
case 0x87DD0006: return "AM_E_XSTS_UNEXPECTED";
case 0x87DD0007: return "AM_E_XDEVICE_UNEXPECTED";
case 0x87DD0008: return "AM_E_DEVMODE_NOT_AUTHORIZED";
case 0x87DD0009: return "AM_E_NOT_AUTHORIZED";
case 0x87DD000A: return "AM_E_FORBIDDEN";
case 0x87DD000B: return "AM_E_UNKNOWN_TARGET";
case 0x87DD000C: return "AM_E_INVALID_NSAL_DATA";
case 0x87DD000D: return "AM_E_TITLE_NOT_AUTHENTICATED";
case 0x87DD000E: return "AM_E_TITLE_NOT_AUTHORIZED";
case 0x87DD000F: return "AM_E_DEVICE_NOT_AUTHENTICATED";
case 0x87DD0010: return "AM_E_INVALID_USER_INDEX";
case 0x8015DC00: return "XO_E_DEVMODE_NOT_AUTHORIZED";
case 0x8015DC01: return "XO_E_SYSTEM_UPDATE_REQUIRED";
case 0x8015DC02: return "XO_E_CONTENT_UPDATE_REQUIRED";
case 0x8015DC03: return "XO_E_ENFORCEMENT_BAN";
case 0x8015DC04: return "XO_E_THIRD_PARTY_BAN";
case 0x8015DC05: return "XO_E_ACCOUNT_PARENTALLY_RESTRICTED";
case 0x8015DC06: return "XO_E_DEVICE_SUBSCRIPTION_NOT_ACTIVATED";
case 0x8015DC08: return "XO_E_ACCOUNT_BILLING_MAINTENANCE_REQUIRED";
case 0x8015DC09: return "XO_E_ACCOUNT_CREATION_REQUIRED";
case 0x8015DC0A: return "XO_E_ACCOUNT_TERMS_OF_USE_NOT_ACCEPTED";
case 0x8015DC0B: return "XO_E_ACCOUNT_COUNTRY_NOT_AUTHORIZED";
case 0x8015DC0C: return "XO_E_ACCOUNT_AGE_VERIFICATION_REQUIRED";
case 0x8015DC0D: return "XO_E_ACCOUNT_CURFEW";
case 0x8015DC0E: return "XO_E_ACCOUNT_CHILD_NOT_IN_FAMILY";
case 0x8015DC0F: return "XO_E_ACCOUNT_CSV_TRANSITION_REQUIRED";
case 0x8015DC10: return "XO_E_ACCOUNT_MAINTENANCE_REQUIRED";
case 0x8015DC11: return "XO_E_ACCOUNT_TYPE_NOT_ALLOWED"; // dev account on retail box
case 0x8015DC12: return "XO_E_CONTENT_ISOLATION (Verify SCID / Sandbox)";
case 0x8015DC13: return "XO_E_ACCOUNT_NAME_CHANGE_REQUIRED";
case 0x8015DC14: return "XO_E_DEVICE_CHALLENGE_REQUIRED";
// case 0x8015DC15: synthetic device type not allowed - does not apply to consoles
case 0x8015DC16: return "XO_E_SIGNIN_COUNT_BY_DEVICE_TYPE_EXCEEDED";
case 0x8015DC17: return "XO_E_PIN_CHALLENGE_REQUIRED";
case 0x8015DC18: return "XO_E_RETAIL_ACCOUNT_NOT_ALLOWED"; // RETAIL account on devkit
case 0x8015DC19: return "XO_E_SANDBOX_NOT_ALLOWED";
case 0x8015DC1A: return "XO_E_ACCOUNT_SERVICE_UNAVAILABLE_UNKNOWN_USER";
case 0x8015DC1B: return "XO_E_GREEN_SIGNED_CONTENT_NOT_AUTHORIZED";
case 0x8015DC1C: return "XO_E_CONTENT_NOT_AUTHORIZED";
case 0x8015DC20: return "XO_E_EXPIRED_DEVICE_TOKEN";
case 0x8015DC21: return "XO_E_EXPIRED_TITLE_TOKEN";
case 0x8015DC22: return "XO_E_EXPIRED_USER_TOKEN";
case 0x8015DC23: return "XO_E_INVALID_DEVICE_TOKEN";
case 0x8015DC24: return "XO_E_INVALID_TITLE_TOKEN";
case 0x8015DC25: return "XO_E_INVALID_USER_TOKEN";
// HTTP specific errors
case WEB_E_UNSUPPORTED_FORMAT: return "WEB_E_UNSUPPORTED_FORMAT";
case WEB_E_INVALID_XML: return "WEB_E_INVALID_XML";
case WEB_E_MISSING_REQUIRED_ELEMENT: return "WEB_E_MISSING_REQUIRED_ELEMENT";
case WEB_E_MISSING_REQUIRED_ATTRIBUTE: return "WEB_E_MISSING_REQUIRED_ATTRIBUTE";
case WEB_E_UNEXPECTED_CONTENT: return "WEB_E_UNEXPECTED_CONTENT";
case WEB_E_RESOURCE_TOO_LARGE: return "WEB_E_RESOURCE_TOO_LARGE";
case WEB_E_INVALID_JSON_STRING: return "WEB_E_INVALID_JSON_STRING";
case WEB_E_INVALID_JSON_NUMBER: return "WEB_E_INVALID_JSON_NUMBER";
case WEB_E_JSON_VALUE_NOT_FOUND: return "WEB_E_JSON_VALUE_NOT_FOUND";
case ERROR_RESOURCE_DATA_NOT_FOUND: return "ERROR_RESOURCE_DATA_NOT_FOUND";
case HTTP_E_STATUS_UNEXPECTED: return "HTTP_E_STATUS_UNEXPECTED";
case HTTP_E_STATUS_UNEXPECTED_REDIRECTION: return "HTTP_E_STATUS_UNEXPECTED_REDIRECTION";
case HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR: return "HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR";
case HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR: return "HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR";
case HTTP_E_STATUS_AMBIGUOUS: return "HTTP_E_STATUS_AMBIGUOUS";
case HTTP_E_STATUS_MOVED: return "HTTP_E_STATUS_MOVED";
case HTTP_E_STATUS_REDIRECT: return "HTTP_E_STATUS_REDIRECT";
case HTTP_E_STATUS_REDIRECT_METHOD: return "HTTP_E_STATUS_REDIRECT_METHOD";
case HTTP_E_STATUS_NOT_MODIFIED: return "HTTP_E_STATUS_NOT_MODIFIED";
case HTTP_E_STATUS_USE_PROXY: return "HTTP_E_STATUS_USE_PROXY";
case HTTP_E_STATUS_REDIRECT_KEEP_VERB: return "HTTP_E_STATUS_REDIRECT_KEEP_VERB";
case HTTP_E_STATUS_BAD_REQUEST: return "HTTP_E_STATUS_BAD_REQUEST";
case HTTP_E_STATUS_DENIED: return "HTTP_E_STATUS_DENIED";
case HTTP_E_STATUS_PAYMENT_REQ: return "HTTP_E_STATUS_PAYMENT_REQ";
case HTTP_E_STATUS_FORBIDDEN: return "HTTP_E_STATUS_FORBIDDEN";
case HTTP_E_STATUS_NOT_FOUND: return "HTTP_E_STATUS_NOT_FOUND";
case HTTP_E_STATUS_BAD_METHOD: return "HTTP_E_STATUS_BAD_METHOD";
case HTTP_E_STATUS_NONE_ACCEPTABLE: return "HTTP_E_STATUS_NONE_ACCEPTABLE";
case HTTP_E_STATUS_PROXY_AUTH_REQ: return "HTTP_E_STATUS_PROXY_AUTH_REQ";
case HTTP_E_STATUS_REQUEST_TIMEOUT: return "HTTP_E_STATUS_REQUEST_TIMEOUT";
case HTTP_E_STATUS_CONFLICT: return "HTTP_E_STATUS_CONFLICT";
case HTTP_E_STATUS_GONE: return "HTTP_E_STATUS_GONE";
case HTTP_E_STATUS_LENGTH_REQUIRED: return "HTTP_E_STATUS_LENGTH_REQUIRED";
case HTTP_E_STATUS_PRECOND_FAILED: return "HTTP_E_STATUS_PRECOND_FAILED";
case HTTP_E_STATUS_REQUEST_TOO_LARGE: return "HTTP_E_STATUS_REQUEST_TOO_LARGE";
case HTTP_E_STATUS_URI_TOO_LONG: return "HTTP_E_STATUS_URI_TOO_LONG";
case HTTP_E_STATUS_UNSUPPORTED_MEDIA: return "HTTP_E_STATUS_UNSUPPORTED_MEDIA";
case HTTP_E_STATUS_RANGE_NOT_SATISFIABLE: return "HTTP_E_STATUS_RANGE_NOT_SATISFIABLE";
case HTTP_E_STATUS_EXPECTATION_FAILED: return "HTTP_E_STATUS_EXPECTATION_FAILED";
case MAKE_HTTP_HRESULT(421): return "HTTP_E_STATUS_421_MISDIRECTED_REQUEST";
case MAKE_HTTP_HRESULT(422): return "HTTP_E_STATUS_422_UNPROCESSABLE_ENTITY";
case MAKE_HTTP_HRESULT(423): return "HTTP_E_STATUS_423_LOCKED";
case MAKE_HTTP_HRESULT(424): return "HTTP_E_STATUS_424_FAILED_DEPENDENCY";
case MAKE_HTTP_HRESULT(426): return "HTTP_E_STATUS_426_UPGRADE_REQUIRED";
case MAKE_HTTP_HRESULT(428): return "HTTP_E_STATUS_428_PRECONDITION_REQUIRED";
case MAKE_HTTP_HRESULT(429): return "HTTP_E_STATUS_429_TOO_MANY_REQUESTS";
case MAKE_HTTP_HRESULT(431): return "HTTP_E_STATUS_431_REQUEST_HEADER_FIELDS_TOO_LARGE";
case MAKE_HTTP_HRESULT(449): return "HTTP_E_STATUS_449_RETRY_WITH";
case MAKE_HTTP_HRESULT(451): return "HTTP_E_STATUS_451_UNAVAILABLE_FOR_LEGAL_REASONS";
case HTTP_E_STATUS_SERVER_ERROR: return "HTTP_E_STATUS_SERVER_ERROR";
case HTTP_E_STATUS_NOT_SUPPORTED: return "HTTP_E_STATUS_NOT_SUPPORTED";
case HTTP_E_STATUS_BAD_GATEWAY: return "HTTP_E_STATUS_BAD_GATEWAY";
case HTTP_E_STATUS_SERVICE_UNAVAIL: return "HTTP_E_STATUS_SERVICE_UNAVAIL";
case HTTP_E_STATUS_GATEWAY_TIMEOUT: return "HTTP_E_STATUS_GATEWAY_TIMEOUT";
case HTTP_E_STATUS_VERSION_NOT_SUP: return "HTTP_E_STATUS_VERSION_NOT_SUP";
case MAKE_HTTP_HRESULT(506): return "HTTP_E_STATUS_506_VARIANT_ALSO_NEGOTIATES";
case MAKE_HTTP_HRESULT(507): return "HTTP_E_STATUS_507_INSUFFICIENT_STORAGE";
case MAKE_HTTP_HRESULT(508): return "HTTP_E_STATUS_508_LOOP_DETECTED";
case MAKE_HTTP_HRESULT(510): return "HTTP_E_STATUS_510_NOT_EXTENDED";
case MAKE_HTTP_HRESULT(511): return "HTTP_E_STATUS_511_NETWORK_AUTHENTICATION_REQUIRED";
// WinINet specific errors
case INET_E_INVALID_URL: return "INET_E_INVALID_URL";
case INET_E_NO_SESSION: return "INET_E_NO_SESSION";
case INET_E_CANNOT_CONNECT: return "INET_E_CANNOT_CONNECT";
case INET_E_RESOURCE_NOT_FOUND: return "INET_E_RESOURCE_NOT_FOUND";
case INET_E_OBJECT_NOT_FOUND: return "INET_E_OBJECT_NOT_FOUND";
case INET_E_DATA_NOT_AVAILABLE: return "INET_E_DATA_NOT_AVAILABLE";
case INET_E_DOWNLOAD_FAILURE: return "INET_E_DOWNLOAD_FAILURE";
case INET_E_AUTHENTICATION_REQUIRED: return "INET_E_AUTHENTICATION_REQUIRED";
case INET_E_NO_VALID_MEDIA: return "INET_E_NO_VALID_MEDIA";
case INET_E_CONNECTION_TIMEOUT: return "INET_E_CONNECTION_TIMEOUT";
case INET_E_INVALID_REQUEST: return "INET_E_INVALID_REQUEST";
case INET_E_UNKNOWN_PROTOCOL: return "INET_E_UNKNOWN_PROTOCOL";
case INET_E_SECURITY_PROBLEM: return "INET_E_SECURITY_PROBLEM";
case INET_E_CANNOT_LOAD_DATA: return "INET_E_CANNOT_LOAD_DATA";
case INET_E_CANNOT_INSTANTIATE_OBJECT: return "INET_E_CANNOT_INSTANTIATE_OBJECT";
case INET_E_INVALID_CERTIFICATE: return "INET_E_INVALID_CERTIFICATE";
case INET_E_REDIRECT_FAILED: return "INET_E_REDIRECT_FAILED";
case INET_E_REDIRECT_TO_DIR: return "INET_E_REDIRECT_TO_DIR";
}
return "Unknown error";
}