ReXGlue SDK
Loading...
Searching...
No Matches
status.h File Reference
#include <rex/types.h>
#include <rex/platform.h>
#include <rex/result.h>

Go to the source code of this file.

Namespaces

namespace  rex
namespace  rex::kernel

Typedefs

using rex::kernel::X_HANDLE = u32
using rex::kernel::X_STATUS = u32
using rex::kernel::X_RESULT = u32
using rex::kernel::X_HRESULT = u32

Functions

constexpr bool rex::kernel::XSUCCEEDED (X_STATUS s)
constexpr bool rex::kernel::XFAILED (X_STATUS s)
constexpr X_RESULT rex::kernel::XResultFromWin32 (u32 x)
constexpr X_HRESULT rex::kernel::XHRESULTFromWin32 (u32 x)
rex::Error rex::kernel::StatusError (X_STATUS status)
rex::Error rex::kernel::XResultError (X_RESULT result)
X_STATUS rex::kernel::ToXStatus (const rex::Error &error, X_STATUS unsupported=X_STATUS_NOT_IMPLEMENTED)
X_RESULT rex::kernel::ToXResult (const rex::Error &error, X_RESULT unsupported=X_ERROR_FUNCTION_FAILED)
template<typename T>
X_STATUS rex::kernel::ToXStatus (const Result< T > &result)
template<typename T>
X_RESULT rex::kernel::ToXResult (const Result< T > &result)
u32 rex::kernel::xboxkrnl::RtlNtStatusToDosError (u32 source_status)

Variables

constexpr X_HANDLE rex::kernel::kXInvalidHandleValue = static_cast<X_HANDLE>(-1)
constexpr X_STATUS rex::kernel::X_STATUS_SUCCESS = 0x00000000
constexpr X_STATUS rex::kernel::X_STATUS_ABANDONED_WAIT_0 = 0x00000080
constexpr X_STATUS rex::kernel::X_STATUS_USER_APC = 0x000000C0
constexpr X_STATUS rex::kernel::X_STATUS_ALERTED = 0x00000101
constexpr X_STATUS rex::kernel::X_STATUS_TIMEOUT = 0x00000102
constexpr X_STATUS rex::kernel::X_STATUS_PENDING = 0x00000103
constexpr X_STATUS rex::kernel::X_STATUS_OBJECT_NAME_EXISTS = 0x40000000
constexpr X_STATUS rex::kernel::X_STATUS_TIMER_RESUME_IGNORED = 0x40000025
constexpr X_STATUS rex::kernel::X_STATUS_BUFFER_OVERFLOW = 0x80000005
constexpr X_STATUS rex::kernel::X_STATUS_NO_MORE_FILES = 0x80000006
constexpr X_STATUS rex::kernel::X_STATUS_UNSUCCESSFUL = 0xC0000001
constexpr X_STATUS rex::kernel::X_STATUS_NOT_IMPLEMENTED = 0xC0000002
constexpr X_STATUS rex::kernel::X_STATUS_INVALID_INFO_CLASS = 0xC0000003
constexpr X_STATUS rex::kernel::X_STATUS_INFO_LENGTH_MISMATCH = 0xC0000004
constexpr X_STATUS rex::kernel::X_STATUS_ACCESS_VIOLATION = 0xC0000005
constexpr X_STATUS rex::kernel::X_STATUS_INVALID_HANDLE = 0xC0000008
constexpr X_STATUS rex::kernel::X_STATUS_INVALID_PARAMETER = 0xC000000D
constexpr X_STATUS rex::kernel::X_STATUS_NO_SUCH_FILE = 0xC000000F
constexpr X_STATUS rex::kernel::X_STATUS_END_OF_FILE = 0xC0000011
constexpr X_STATUS rex::kernel::X_STATUS_NO_MEMORY = 0xC0000017
constexpr X_STATUS rex::kernel::X_STATUS_ALREADY_COMMITTED = 0xC0000021
constexpr X_STATUS rex::kernel::X_STATUS_ACCESS_DENIED = 0xC0000022
constexpr X_STATUS rex::kernel::X_STATUS_BUFFER_TOO_SMALL = 0xC0000023
constexpr X_STATUS rex::kernel::X_STATUS_OBJECT_TYPE_MISMATCH = 0xC0000024
constexpr X_STATUS rex::kernel::X_STATUS_OBJECT_NAME_INVALID = 0xC0000033
constexpr X_STATUS rex::kernel::X_STATUS_OBJECT_NAME_NOT_FOUND = 0xC0000034
constexpr X_STATUS rex::kernel::X_STATUS_OBJECT_NAME_COLLISION = 0xC0000035
constexpr X_STATUS rex::kernel::X_STATUS_OBJECT_PATH_NOT_FOUND = 0xC000003A
constexpr X_STATUS rex::kernel::X_STATUS_SHARING_VIOLATION = 0xC0000043
constexpr X_STATUS rex::kernel::X_STATUS_INVALID_PAGE_PROTECTION = 0xC0000045
constexpr X_STATUS rex::kernel::X_STATUS_MUTANT_NOT_OWNED = 0xC0000046
constexpr X_STATUS rex::kernel::X_STATUS_THREAD_IS_TERMINATING = 0xC000004B
constexpr X_STATUS rex::kernel::X_STATUS_PROCESS_IS_TERMINATING = 0xC000010A
constexpr X_STATUS rex::kernel::X_STATUS_PROCEDURE_NOT_FOUND = 0xC000007A
constexpr X_STATUS rex::kernel::X_STATUS_INSUFFICIENT_RESOURCES = 0xC000009A
constexpr X_STATUS rex::kernel::X_STATUS_NOT_SAME_DEVICE = 0xC00000D4
constexpr X_STATUS rex::kernel::X_STATUS_MEMORY_NOT_ALLOCATED = 0xC00000A0
constexpr X_STATUS rex::kernel::X_STATUS_FILE_IS_A_DIRECTORY = 0xC00000BA
constexpr X_STATUS rex::kernel::X_STATUS_NOT_SUPPORTED = 0xC00000BB
constexpr X_STATUS rex::kernel::X_STATUS_NOT_A_DIRECTORY = 0xC0000103
constexpr X_STATUS rex::kernel::X_STATUS_INVALID_PARAMETER_1 = 0xC00000EF
constexpr X_STATUS rex::kernel::X_STATUS_INVALID_PARAMETER_2 = 0xC00000F0
constexpr X_STATUS rex::kernel::X_STATUS_INVALID_PARAMETER_3 = 0xC00000F1
constexpr X_STATUS rex::kernel::X_STATUS_DLL_NOT_FOUND = 0xC0000135
constexpr X_STATUS rex::kernel::X_STATUS_ENTRYPOINT_NOT_FOUND = 0xC0000139
constexpr X_STATUS rex::kernel::X_STATUS_SEMAPHORE_LIMIT_EXCEEDED = 0xC000012B
constexpr X_STATUS rex::kernel::X_STATUS_MAPPED_ALIGNMENT = 0xC0000220
constexpr X_STATUS rex::kernel::X_STATUS_NOT_FOUND = 0xC0000225
constexpr X_STATUS rex::kernel::X_STATUS_DRIVER_ORDINAL_NOT_FOUND = 0xC0000262
constexpr X_STATUS rex::kernel::X_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND = 0xC0000263
constexpr i32 rex::kernel::kFacilityWin32 = 0x0007
constexpr X_RESULT rex::kernel::X_ERROR_SUCCESS = XResultFromWin32(0x00000000)
constexpr X_RESULT rex::kernel::X_ERROR_FILE_NOT_FOUND = XResultFromWin32(0x00000002)
constexpr X_RESULT rex::kernel::X_ERROR_PATH_NOT_FOUND = XResultFromWin32(0x00000003)
constexpr X_RESULT rex::kernel::X_ERROR_ACCESS_DENIED = XResultFromWin32(0x00000005)
constexpr X_RESULT rex::kernel::X_ERROR_INVALID_HANDLE = XResultFromWin32(0x00000006)
constexpr X_RESULT rex::kernel::X_ERROR_NOT_ENOUGH_MEMORY = XResultFromWin32(0x00000008)
constexpr X_RESULT rex::kernel::X_ERROR_NO_MORE_FILES = XResultFromWin32(0x00000012)
constexpr X_RESULT rex::kernel::X_ERROR_INVALID_PARAMETER = XResultFromWin32(0x00000057)
constexpr X_RESULT rex::kernel::X_ERROR_INSUFFICIENT_BUFFER = XResultFromWin32(0x0000007A)
constexpr X_RESULT rex::kernel::X_ERROR_INVALID_NAME = XResultFromWin32(0x0000007B)
constexpr X_RESULT rex::kernel::X_ERROR_BAD_ARGUMENTS = XResultFromWin32(0x000000A0)
constexpr X_RESULT rex::kernel::X_ERROR_BUSY = XResultFromWin32(0x000000AA)
constexpr X_RESULT rex::kernel::X_ERROR_ALREADY_EXISTS = XResultFromWin32(0x000000B7)
constexpr X_RESULT rex::kernel::X_ERROR_IO_INCOMPLETE = XResultFromWin32(0x000003E4)
constexpr X_RESULT rex::kernel::X_ERROR_IO_PENDING = XResultFromWin32(0x000003E5)
constexpr X_RESULT rex::kernel::X_ERROR_DEVICE_NOT_CONNECTED = XResultFromWin32(0x0000048F)
constexpr X_RESULT rex::kernel::X_ERROR_NOT_FOUND = XResultFromWin32(0x00000490)
constexpr X_RESULT rex::kernel::X_ERROR_CANCELLED = XResultFromWin32(0x000004C7)
constexpr X_RESULT rex::kernel::X_ERROR_NOT_LOGGED_ON = XResultFromWin32(0x000004DD)
constexpr X_RESULT rex::kernel::X_ERROR_NO_SUCH_USER = XResultFromWin32(0x00000525)
constexpr X_RESULT rex::kernel::X_ERROR_FUNCTION_FAILED = XResultFromWin32(0x0000065B)
constexpr X_RESULT rex::kernel::X_ERROR_EMPTY = XResultFromWin32(0x000010D2)
constexpr X_HRESULT rex::kernel::X_E_FALSE = 0x80000000
constexpr X_HRESULT rex::kernel::X_E_SUCCESS = XHRESULTFromWin32(X_ERROR_SUCCESS)
constexpr X_HRESULT rex::kernel::X_E_FAIL = 0x80004005
constexpr X_HRESULT rex::kernel::kXEUnexpected = 0x8000FFFF
constexpr X_HRESULT rex::kernel::kXEOutOfMemory = 0x8007000E
constexpr X_HRESULT rex::kernel::X_E_NO_MORE_FILES = XHRESULTFromWin32(X_ERROR_NO_MORE_FILES)
constexpr X_HRESULT rex::kernel::X_E_INVALIDARG = XHRESULTFromWin32(X_ERROR_INVALID_PARAMETER)
constexpr X_HRESULT rex::kernel::X_E_DEVICE_NOT_CONNECTED
constexpr X_HRESULT rex::kernel::X_E_NOTFOUND = XHRESULTFromWin32(X_ERROR_NOT_FOUND)
constexpr X_HRESULT rex::kernel::X_E_NO_SUCH_USER = XHRESULTFromWin32(X_ERROR_NO_SUCH_USER)

Detailed Description

License
BSD 3-Clause License See LICENSE file in the project root for full license text.

Function Documentation

◆ RtlNtStatusToDosError()

u32 rex::kernel::xboxkrnl::RtlNtStatusToDosError ( u32 source_status)

Maps an NT status to the Win32 error code the kernel reports.

Parameters
source_statusThe NT status.
Returns
The Win32 code, or 317 when the status has none.