123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- /**
- * 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*/
|