mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-22 04:25:08 +00:00
163 lines
4.6 KiB
C
163 lines
4.6 KiB
C
/**
|
|
* This file has no copyright assigned and is placed in the Public Domain.
|
|
* This file is part of the mingw-w64 runtime package.
|
|
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
|
*/
|
|
#ifndef _INC_CLFS
|
|
#define _INC_CLFS
|
|
#if (_WIN32_WINNT >= 0x0600)
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum {
|
|
ClfsContextNone = 0x00,
|
|
ClfsContextUndoNext,
|
|
ClfsContextPrevious,
|
|
ClfsContextForward
|
|
} CLFS_CONTEXT_MODE, *PCLFS_CONTEXT_MODE, **PPCLFS_CONTEXT_MODE;
|
|
|
|
typedef enum _CLFS_IOSTATS_CLASS {
|
|
ClfsIoStatsDefault = 0x0000,
|
|
ClfsIoStatsMax = 0xFFFF
|
|
} CLFS_IOSTATS_CLASS, *PCLFS_IOSTATS_CLASS, **PPCLFS_IOSTATS_CLASS;
|
|
|
|
typedef enum _CLFS_LOG_ARCHIVE_MODE {
|
|
ClfsLogArchiveEnabled = 0x01,
|
|
ClfsLogArchiveDisabled = 0x02
|
|
} CLFS_LOG_ARCHIVE_MODE, *PCLFS_LOG_ARCHIVE_MODE;
|
|
|
|
typedef enum _CLFS_RECORD_TYPE {
|
|
ClfsDataRecord = 0x01,
|
|
ClfsRestartRecord = 0x02,
|
|
ClfsClientRecord = 0x3F
|
|
} CLFS_RECORD_TYPE, *PCLFS_RECORD_TYPE;
|
|
|
|
typedef union _CLFS_LSN {
|
|
ULONGLONG Internal;
|
|
} CLFS_LSN, *PCLFS_LSN;
|
|
|
|
/*http://msdn.microsoft.com/en-us/library/bb540355%28VS.85%29.aspx*/
|
|
typedef enum _CLFS_SCAN_MODE {
|
|
CLFS_SCAN_INIT = 0x01,
|
|
CLFS_SCAN_FORWARD = 0x02,
|
|
CLFS_SCAN_BACKWARD = 0x04,
|
|
CLFS_SCAN_CLOSE = 0x08,
|
|
CLFS_SCAN_INITIALIZED = 0x10,
|
|
CLFS_SCAN_BUFFERED = 0x20
|
|
} CLFS_SCAN_MODE;
|
|
|
|
/* enum guessed from http://msdn.microsoft.com/en-us/library/bb540336%28VS.85%29.aspx */
|
|
typedef enum _CLFS_CONTAINER_STATE {
|
|
ClfsContainerInitializing = 0x01,
|
|
ClfsContainerInactive = 0x02,
|
|
ClfsContainerActive = 0x04,
|
|
ClfsContainerActivePendingDelete = 0x08,
|
|
ClfsContainerPendingArchive = 0x10,
|
|
ClfsContainerPendingArchiveAndDelete = 0x20
|
|
} CLFS_CONTAINER_STATE;
|
|
|
|
typedef DWORD CLFS_CONTAINER_ID;
|
|
|
|
/* Goes in wdm.h */
|
|
typedef struct _CLFS_CONTAINER_INFORMATION {
|
|
ULONG FileAttributes;
|
|
ULONGLONG CreationTime;
|
|
ULONGLONG LastAccessTime;
|
|
ULONGLONG LastWriteTime;
|
|
LONGLONG ContainerSize;
|
|
ULONG FileNameActualLength;
|
|
ULONG FileNameLength;
|
|
WCHAR FileName[MAX_PATH];
|
|
CLFS_CONTAINER_STATE State;
|
|
CLFS_CONTAINER_ID PhysicalContainerId;
|
|
CLFS_CONTAINER_ID LogicalContainerId;
|
|
} CLFS_CONTAINER_INFORMATION, *PCLFS_CONTAINER_INFORMATION, **PPCLFS_CONTAINER_INFORMATION;
|
|
/**/
|
|
|
|
typedef struct _CLFS_IO_STATISTICS_HEADER {
|
|
UCHAR ubMajorVersion;
|
|
UCHAR ubMinorVersion;
|
|
CLFS_IOSTATS_CLASS eStatsClass;
|
|
USHORT cbLength;
|
|
ULONG coffData;
|
|
} CLFS_IO_STATISTICS_HEADER, *PCLFS_IO_STATISTICS_HEADER, **PPCLFS_IO_STATISTICS_HEADER;
|
|
|
|
typedef struct _CLFS_ARCHIVE_DESCRIPTOR {
|
|
ULONGLONG coffLow;
|
|
ULONGLONG coffHigh;
|
|
CLFS_CONTAINER_INFORMATION infoContainer;
|
|
} CLFS_ARCHIVE_DESCRIPTOR, *PCLFS_ARCHIVE_DESCRIPTOR, **PPCLFS_ARCHIVE_DESCRIPTOR;
|
|
|
|
typedef struct _CLFS_INFORMATION {
|
|
LONGLONG TotalAvailable;
|
|
LONGLONG CurrentAvailable;
|
|
LONGLONG TotalReservation;
|
|
ULONGLONG BaseFileSize;
|
|
ULONGLONG ContainerSize;
|
|
ULONG TotalContainers;
|
|
ULONG FreeContainers;
|
|
ULONG TotalClients;
|
|
ULONG Attributes;
|
|
ULONG FlushThreshold;
|
|
ULONG SectorSize;
|
|
CLFS_LSN MinArchiveTailLsn;
|
|
CLFS_LSN BaseLsn;
|
|
CLFS_LSN LastFlushedLsn;
|
|
CLFS_LSN LastLsn;
|
|
CLFS_LSN RestartLsn;
|
|
GUID Identity;
|
|
} CLFS_INFORMATION, *PCLFS_INFORMATION, **PPCLFS_INFORMATION;
|
|
|
|
typedef struct _CLFS_IO_STATISTICS {
|
|
CLFS_IO_STATISTICS_HEADER hdrIoStats;
|
|
ULONGLONG cFlush;
|
|
ULONGLONG cbFlush;
|
|
ULONGLONG cMetaFlush;
|
|
ULONGLONG cbMetaFlush;
|
|
} CLFS_IO_STATISTICS, *PCLFS_IO_STATISTICS, **PPCLFS_IO_STATISTICS;
|
|
|
|
typedef struct _CLFS_NODE_ID {
|
|
ULONG cType;
|
|
ULONG cbNode;
|
|
} CLFS_NODE_ID, *PCLFS_NODE_ID;
|
|
|
|
typedef struct _CLFS_SCAN_CONTEXT {
|
|
CLFS_NODE_ID cidNode;
|
|
HANDLE hLog;
|
|
ULONG cIndex;
|
|
ULONG cContainers;
|
|
ULONG cContainersReturned;
|
|
CLFS_SCAN_MODE eScanMode;
|
|
PCLFS_CONTAINER_INFORMATION pinfoContainer;
|
|
} CLFS_SCAN_CONTEXT, *PCLFS_SCAN_CONTEXT;
|
|
|
|
typedef struct _CLFS_WRITE_ENTRY {
|
|
PVOID Buffer;
|
|
ULONG ByteLength;
|
|
} CLFS_WRITE_ENTRY, *PCLFS_WRITE_ENTRY;
|
|
|
|
WINBOOL WINAPI LsnEqual(
|
|
const CLFS_LSN *plsn1,
|
|
const CLFS_LSN *plsn2
|
|
);
|
|
|
|
WINBOOL WINAPI LsnGreater(
|
|
const CLFS_LSN *plsn1,
|
|
const CLFS_LSN *plsn2
|
|
);
|
|
|
|
WINBOOL WINAPI LsnLess(
|
|
const CLFS_LSN *plsn1,
|
|
const CLFS_LSN *plsn2
|
|
);
|
|
|
|
WINBOOL WINAPI LsnNull(
|
|
const CLFS_LSN *plsn
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /*(_WIN32_WINNT >= 0x0600)*/
|
|
#endif /*_INC_CLFS*/
|