32 lines
920 B
C
32 lines
920 B
C
// Public NTLite file metadata ABI declarations shared between kernel, drivers, and user mode.
|
|
|
|
#pragma once
|
|
#include <stdint.h>
|
|
#include <ntlite/time.h>
|
|
|
|
#define SYS_FILE_TYPE_UNKNOWN 0u
|
|
#define SYS_FILE_TYPE_REGULAR 1u
|
|
#define SYS_FILE_TYPE_DIRECTORY 2u
|
|
|
|
#define SYS_FILE_ATTR_READ_ONLY 0x00000001u
|
|
#define SYS_FILE_ATTR_HIDDEN 0x00000002u
|
|
#define SYS_FILE_ATTR_SYSTEM 0x00000004u
|
|
#define SYS_FILE_ATTR_VOLUME_ID 0x00000008u
|
|
#define SYS_FILE_ATTR_DIRECTORY 0x00000010u
|
|
#define SYS_FILE_ATTR_ARCHIVE 0x00000020u
|
|
|
|
// Metadata returned by path and handle stat syscalls.
|
|
typedef struct SYS_FILE_STAT {
|
|
uint32_t Size;
|
|
uint32_t Type;
|
|
uint32_t Attributes;
|
|
uint32_t LinkCount;
|
|
uint64_t FileSize;
|
|
uint64_t VolumeId;
|
|
uint64_t FileId;
|
|
SYS_SYSTEM_TIME CreationTime;
|
|
SYS_SYSTEM_TIME LastAccessTime;
|
|
SYS_SYSTEM_TIME LastWriteTime;
|
|
SYS_SYSTEM_TIME ChangeTime;
|
|
} SYS_FILE_STAT;
|