ReXGlue SDK
Loading...
Searching...
No Matches
io.h File Reference
#include <string>
#include <string_view>
#include <rex/assert.h>
#include <rex/memory.h>
#include <rex/kernel/types/list.h>
#include <rex/kernel/types/status.h>
#include <rex/kernel/types/thread.h>
#include <rex/string/text.h>
#include <rex/kernel/heap.h>

Go to the source code of this file.

Classes

struct  rex::kernel::XOVERLAPPED
struct  rex::kernel::X_ANSI_STRING
struct  rex::kernel::X_UNICODE_STRING
struct  rex::kernel::X_IO_STATUS_BLOCK
struct  rex::kernel::X_OBJECT_ATTRIBUTES
struct  rex::kernel::XFileObject
struct  rex::kernel::X_FILE_BASIC_INFORMATION
struct  rex::kernel::X_FILE_INTERNAL_INFORMATION
struct  rex::kernel::X_FILE_RENAME_INFORMATION
struct  rex::kernel::X_FILE_DISPOSITION_INFORMATION
struct  rex::kernel::X_FILE_POSITION_INFORMATION
struct  rex::kernel::X_FILE_END_OF_FILE_INFORMATION
struct  rex::kernel::X_FILE_ALLOCATION_INFORMATION
struct  rex::kernel::X_FILE_XCTD_COMPRESSION_INFORMATION
struct  rex::kernel::X_FILE_COMPLETION_INFORMATION
struct  rex::kernel::X_FILE_NETWORK_OPEN_INFORMATION
struct  rex::kernel::X_FILE_FS_VOLUME_INFORMATION
struct  rex::kernel::X_FILE_FS_SIZE_INFORMATION
struct  rex::kernel::X_FILE_FS_ATTRIBUTE_INFORMATION
struct  rex::kernel::X_FILE_FS_DEVICE_INFORMATION

Namespaces

namespace  rex
namespace  rex::kernel

Enumerations

enum  rex::kernel::X_FILE_ATTRIBUTES : u16 {
  kXFileAttributeNone = 0x0000 , kXFileAttributeReadOnly = 0x0001 , kXFileAttributeHidden = 0x0002 , kXFileAttributeSystem = 0x0004 ,
  kXFileAttributeDirectory = 0x0010 , kXFileAttributeArchive = 0x0020 , rex::kernel::kXFileAttributeDevice = 0x0040 , rex::kernel::kXFileAttributeNormal = 0x0080 ,
  kXFileAttributeTemporary = 0x0100 , kXFileAttributeCompressed = 0x0800 , kXFileAttributeEncrypted = 0x4000
}
enum  rex::kernel::X_FILE_INFORMATION_CLASS : u8 {
  XFileDirectoryInformation = 1 , XFileFullDirectoryInformation , XFileBothDirectoryInformation , XFileBasicInformation ,
  XFileStandardInformation , XFileInternalInformation , XFileEaInformation , XFileAccessInformation ,
  XFileNameInformation , XFileRenameInformation , XFileLinkInformation , XFileNamesInformation ,
  XFileDispositionInformation , XFilePositionInformation , XFileFullEaInformation , XFileModeInformation ,
  XFileAlignmentInformation , XFileAllInformation , XFileAllocationInformation , XFileEndOfFileInformation ,
  XFileAlternateNameInformation , XFileStreamInformation , XFileMountPartitionInformation , XFileMountPartitionsInformation ,
  XFilePipeRemoteInformation , XFileSectorInformation , XFileXctdCompressionInformation , XFileCompressionInformation ,
  XFileObjectIdInformation , XFileCompletionInformation , XFileMoveClusterInformation , XFileIoPriorityInformation ,
  XFileReparsePointInformation , XFileNetworkOpenInformation , XFileAttributeTagInformation , XFileTrackingInformation ,
  rex::kernel::XFileMaximumInformation
}
enum  rex::kernel::X_FILE_FS_INFORMATION_CLASS : u8 { rex::kernel::XFileFsVolumeInformation = 1 , rex::kernel::XFileFsSizeInformation = 3 , XFileFsDeviceInformation , rex::kernel::XFileFsAttributeInformation = 5 }
enum  rex::kernel::X_FILE_DEVICE_TYPE : u32 { rex::kernel::kFileDeviceUnknown = 0x00000022 , kFileDeviceEHSTOR = 0x00000046 }

Functions

void rex::kernel::XOverlappedSetResult (void *ptr, u32 value)
u32 rex::kernel::XOverlappedGetResult (void *ptr)
void rex::kernel::XOverlappedSetLength (void *ptr, u32 value)
u32 rex::kernel::XOverlappedGetContext (void *ptr)
void rex::kernel::XOverlappedSetContext (void *ptr, u32 value)
X_HANDLE rex::kernel::XOverlappedGetEvent (void *ptr)
u32 rex::kernel::XOverlappedGetCompletionRoutine (void *ptr)
void rex::kernel::XOverlappedSetExtendedError (void *ptr, u32 value)
std::string_view rex::kernel::TranslateAnsiString (const kernel::GuestAddressSpace *memory, const X_ANSI_STRING *ansi_string)
std::string rex::kernel::TranslateAnsiPath (const kernel::GuestAddressSpace *memory, const X_ANSI_STRING *ansi_string)
std::string_view rex::kernel::TranslateAnsiStringAddress (const kernel::GuestAddressSpace *memory, u32 guest_address)
std::u16string rex::kernel::TranslateUnicodeString (const kernel::GuestAddressSpace *memory, const X_UNICODE_STRING *unicode_string)

Variables

constexpr u32 rex::kernel::kObjOpenIf = 0x80
constexpr u32 rex::kernel::kFileObjectSize = 0x68
constexpr u16 rex::kernel::kFileObjectTypeId = 5
constexpr u32 rex::kernel::kIOCompletionObjectSize = 0x28
constexpr u32 rex::kernel::kSymbolicLinkObjectSize = 0xC

Detailed Description

License
BSD 3-Clause License See LICENSE file in the project root for full license text.
Remarks
The file and volume information classes derive from Xenia (Ben Vanik, 2020).