Cxbx-Reloaded/import/OpenXDK/include/xhal/xfile_def.h

109 lines
4.5 KiB
C
Raw Normal View History

// ******************************************************************
// *
// * proj : OpenXDK
// *
// * desc : Open Source XBox Development Kit
// *
// * file : xfile_def.h
// *
// * note : internal typedefs / structs / etc for xfile
// *
// ******************************************************************
#ifndef XFILE_DEF_H
#define XFILE_DEF_H
#ifdef __cplusplus
extern "C" {
#endif
// DEVICE_TYPEs (I took a guess as to which the XBOX might have.)
#define FILE_DEVICE_CD_ROM (0x00000002)
#define FILE_DEVICE_CD_ROM_FILE_SYSTEM (0x00000003)
#define FILE_DEVICE_CONTROLLER (0x00000004)
#define FILE_DEVICE_DISK (0x00000007)
#define FILE_DEVICE_DISK_FILE_SYSTEM (0x00000008)
#define FILE_DEVICE_FILE_SYSTEM (0x00000009)
#define FILE_DEVICE_NULL (0x00000015)
#define FILE_DEVICE_SCREEN (0x0000001c)
#define FILE_DEVICE_SOUND (0x0000001d)
#define FILE_DEVICE_UNKNOWN (0x00000022)
#define FILE_DEVICE_VIDEO (0x00000023)
#define FILE_DEVICE_VIRTUAL_DISK (0x00000024)
#define FILE_DEVICE_FULLSCREEN_VIDEO (0x00000034)
#define FILE_ATTRIBUTE_READONLY (0x00000001)
#define FILE_ATTRIBUTE_HIDDEN (0x00000002)
#define FILE_ATTRIBUTE_SYSTEM (0x00000004)
#define FILE_ATTRIBUTE_DIRECTORY (0x00000010)
#define FILE_ATTRIBUTE_ARCHIVE (0x00000020)
#define FILE_ATTRIBUTE_NORMAL (0x00000080)
#define FILE_ATTRIBUTE_TEMPORARY (0x00000100)
#define FILE_FLAG_WRITE_THROUGH (0x80000000)
#define FILE_FLAG_RANDOM_ACCESS (0x10000000)
// NtCreateFile/NtOpenFile stuff
#define FILE_SUPERSEDED 0x00000000
#define FILE_OPENED 0x00000001
#define FILE_CREATED 0x00000002
#define FILE_OVERWRITTEN 0x00000003
#define FILE_EXISTS 0x00000004
#define FILE_DOES_NOT_EXIST 0x00000005
// Flags for OBJECT_ATTRIBUTES::Attributes
#define OBJ_INHERIT (0x00000002L)
#define OBJ_PERMANENT (0x00000010L)
#define OBJ_EXCLUSIVE (0x00000020L)
#define OBJ_CASE_INSENSITIVE (0x00000040L)
#define OBJ_OPENIF (0x00000080L)
#define OBJ_OPENLINK (0x00000100L)
#define OBJ_KERNEL_HANDLE (0x00000200L)
#define OBJ_VALID_ATTRIBUTES (0x000003F2L)
// ******************************************************************
// * File pointer information (SetFilePointer, etc)
// ******************************************************************
typedef struct _FILE_POSITION_INFORMATION
{
LARGE_INTEGER CurrentByteOffset;
}
FILE_POSITION_INFORMATION, *PFILE_POSITION_INFORMATION;
// ******************************************************************
// * Access times and normal attributes (only set is known to be
// * supported - use FILE_NETWORK_OPEN_INFORMATION if you want to
// * query this information.
// ******************************************************************
typedef struct _FILE_BASIC_INFORMATION
{
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER LastWriteTime;
LARGE_INTEGER ChangeTime;
ULONG FileAttributes;
}
FILE_BASIC_INFORMATION, *PFILE_BASIC_INFORMATION;
// ******************************************************************
// * Access times and normal attributes
// ******************************************************************
typedef struct _FILE_NETWORK_OPEN_INFORMATION
{
LARGE_INTEGER CreationTime; // 000 Time file was created
LARGE_INTEGER LastAccessTime; // 008 Time file was last accessed
LARGE_INTEGER LastWriteTime; // 010 Time file was last opened for writing?
LARGE_INTEGER ChangeTime; // 018 Time file was last changed?
LARGE_INTEGER AllocationSize; // 020 Size of the file in the file system (including slack space)
LARGE_INTEGER EndOfFile; // 028 What we'd normally call the file size
ULONG FileAttributes; // 030 File attributes
ULONG Unknown; // 034 Unknown
}
FILE_NETWORK_OPEN_INFORMATION, *PFILE_NETWORK_OPEN_INFORMATION;
LARGE_INTEGER AddU64(PLARGE_INTEGER A, PLARGE_INTEGER B);
#ifdef __cplusplus
};
#endif
#endif // XFILE_DEF_H