mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-22 03:15:07 +00:00
329 lines
7.3 KiB
C
329 lines
7.3 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_CLFSW32
|
|
#define _INC_CLFSW32
|
|
#include <clfs.h>
|
|
#include <clfsmgmt.h>
|
|
|
|
#if (_WIN32_WINNT >= 0x0600)
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef PVOID (* CLFS_BLOCK_ALLOCATION) (ULONG cbBufferSize, PVOID pvUserContext);
|
|
typedef void (* CLFS_BLOCK_DEALLOCATION) (PVOID pvBuffer, PVOID pvUserContext);
|
|
typedef FILE *PFILE;
|
|
typedef ULONG (__stdcall * CLFS_PRINT_RECORD_ROUTINE) (PFILE, CLFS_RECORD_TYPE, PVOID, ULONG);
|
|
|
|
WINBOOL WINAPI AdvanceLogBase(PVOID pvMarshal,PCLFS_LSN plsnBase,ULONG fFlags,LPOVERLAPPED pOverlapped);
|
|
|
|
WINBOOL WINAPI AlignReservedLog(PVOID pvMarshal,ULONG cReservedRecords,LONGLONG rgcbReservation,PLONGLONG pcbAlignReservation);
|
|
WINBOOL WINAPI AllocReservedLog(PVOID pvMarshal,ULONG cReservedRecords,PLONGLONG pcbAdjustment);
|
|
|
|
WINBOOL WINAPI AddLogContainer(HANDLE hLog,PULONGLONG pcbContainer,LPWSTR pwszContainerPath,LPVOID pReserved);
|
|
WINBOOL WINAPI AddLogContainerSet(HANDLE hLog,USHORT cContainers,PULONGLONG pcbContainer,LPWSTR *rgwszContainerPath,PVOID Reserved);
|
|
WINBOOL WINAPI CloseAndResetLogFile(HANDLE hLog);
|
|
|
|
WINBOOL WINAPI CreateLogContainerScanContext(
|
|
HANDLE hLog,
|
|
ULONG cFromContainer,
|
|
ULONG cContainers,
|
|
CLFS_SCAN_MODE eScanMode,
|
|
PCLFS_SCAN_CONTEXT pcxScan,
|
|
LPOVERLAPPED pOverlapped
|
|
);
|
|
|
|
HANDLE WINAPI CreateLogFile(
|
|
LPCWSTR pszLogFileName,
|
|
ACCESS_MASK fDesiredAccess,
|
|
DWORD dwShareMode,
|
|
LPSECURITY_ATTRIBUTES psaLogFile,
|
|
ULONG fCreateDisposition,
|
|
ULONG fFlagsAndAttributes
|
|
);
|
|
|
|
WINBOOL WINAPI ScanLogContainers(
|
|
PCLFS_SCAN_CONTEXT pcxScan,
|
|
CLFS_SCAN_MODE eScanMode,
|
|
LPVOID pReserved
|
|
);
|
|
|
|
WINBOOL WINAPI CreateLogMarshallingArea(
|
|
HANDLE hLog,
|
|
CLFS_BLOCK_ALLOCATION pfnAllocBuffer,
|
|
CLFS_BLOCK_DEALLOCATION pfnFreeBuffer,
|
|
PVOID pvBlockAllocContext,
|
|
ULONG cbMarshallingBuffer,
|
|
ULONG cMaxWriteBuffers,
|
|
ULONG cMaxReadBuffers,
|
|
PVOID *ppvMarshal
|
|
);
|
|
|
|
WINBOOL WINAPI DeleteLogMarshallingArea(
|
|
PVOID pvMarshal
|
|
);
|
|
|
|
WINBOOL WINAPI DeleteLogByHandle(
|
|
HANDLE hLog
|
|
);
|
|
|
|
WINBOOL WINAPI DeleteLogFile(
|
|
LPCWSTR pszLogFileName,
|
|
PVOID pvReserved
|
|
);
|
|
|
|
WINBOOL WINAPI DeregisterManageableLogClient(
|
|
HANDLE hLog
|
|
);
|
|
|
|
WINBOOL WINAPI DumpLogRecords(
|
|
PWSTR pwszLogFileName,
|
|
CLFS_RECORD_TYPE fRecordType,
|
|
PCLFS_LSN plsnStart,
|
|
PCLFS_LSN plsnEnd,
|
|
PFILE pstrmOut,
|
|
CLFS_PRINT_RECORD_ROUTINE pfnPrintRecord,
|
|
CLFS_BLOCK_ALLOCATION pfnAllocBlock,
|
|
CLFS_BLOCK_DEALLOCATION pfnFreeBlock,
|
|
PVOID pvBlockAllocContext,
|
|
ULONG cbBlock,
|
|
ULONG cMaxBlocks
|
|
);
|
|
|
|
WINBOOL WINAPI ReadLogRecord(
|
|
PVOID pvMarshal,
|
|
PCLFS_LSN plsnFirst,
|
|
CLFS_CONTEXT_MODE eContextMode,
|
|
PVOID *ppvReadBuffer,
|
|
PULONG pcbReadBuffer,
|
|
PCLFS_RECORD_TYPE peRecordType,
|
|
PCLFS_LSN plsnUndoNext,
|
|
PCLFS_LSN plsnPrevious,
|
|
PVOID *ppvReadContext,
|
|
LPOVERLAPPED pOverlapped
|
|
);
|
|
|
|
WINBOOL WINAPI ReadNextLogRecord(
|
|
PVOID pvReadContext,
|
|
PVOID *ppvBuffer,
|
|
PULONG pcbBuffer,
|
|
PCLFS_RECORD_TYPE peRecordType,
|
|
PCLFS_LSN plsnUser,
|
|
PCLFS_LSN plsnUndoNext,
|
|
PCLFS_LSN plsnPrevious,
|
|
PCLFS_LSN plsnRecord,
|
|
LPOVERLAPPED pOverlapped
|
|
);
|
|
|
|
WINBOOL WINAPI FlushLogBuffers(
|
|
PVOID pvMarshal,
|
|
LPOVERLAPPED pOverlapped
|
|
);
|
|
|
|
WINBOOL WINAPI FlushLogToLsn(
|
|
PVOID pvMarshalContext,
|
|
PCLFS_LSN plsnFlush,
|
|
PCLFS_LSN plsnLastFlushed,
|
|
LPOVERLAPPED pOverlapped
|
|
);
|
|
|
|
WINBOOL WINAPI FreeReservedLog(
|
|
PVOID pvMarshal,
|
|
ULONG cReservedRecords,
|
|
PLONGLONG pcbAdjustment
|
|
);
|
|
|
|
WINBOOL WINAPI GetLogContainerName(
|
|
HANDLE hLog,
|
|
CLFS_CONTAINER_ID cidLogicalContainer,
|
|
LPCWSTR pwstrContainerName,
|
|
ULONG cLenContainerName,
|
|
PULONG pcActualLenContainerName
|
|
);
|
|
|
|
WINBOOL WINAPI GetLogFileInformation(
|
|
HANDLE hLog,
|
|
PCLFS_INFORMATION pinfoBuffer,
|
|
PULONG cbBuffer
|
|
);
|
|
|
|
WINBOOL WINAPI GetLogIoStatistics(
|
|
HANDLE hLog,
|
|
PVOID pvStatsBuffer,
|
|
ULONG cbStatsBuffer,
|
|
CLFS_IOSTATS_CLASS eStatsClass,
|
|
PULONG pcbStatsWritten
|
|
);
|
|
|
|
typedef LPVOID CLFS_LOG_ARCHIVE_CONTEXT;
|
|
typedef CLFS_LOG_ARCHIVE_CONTEXT *PCLFS_LOG_ARCHIVE_CONTEXT;
|
|
|
|
WINBOOL WINAPI GetNextLogArchiveExtent(
|
|
CLFS_LOG_ARCHIVE_CONTEXT pvArchiveContext,
|
|
CLFS_ARCHIVE_DESCRIPTOR rgadExtent[],
|
|
ULONG cDescriptors,
|
|
PULONG pcDescriptorsReturned
|
|
);
|
|
|
|
WINBOOL WINAPI PrepareLogArchive(
|
|
HANDLE hLog,
|
|
PWSTR pszBaseLogFileName,
|
|
ULONG cLen,
|
|
const PCLFS_LSN plsnLow,
|
|
const PCLFS_LSN plsnHigh,
|
|
PULONG pcActualLength,
|
|
PULONGLONG poffBaseLogFileData,
|
|
PULONGLONG pcbBaseLogFileLength,
|
|
PCLFS_LSN plsnBase,
|
|
PCLFS_LSN plsnLast,
|
|
PCLFS_LSN plsnCurrentArchiveTail,
|
|
PCLFS_LOG_ARCHIVE_CONTEXT ppvArchiveContext
|
|
);
|
|
|
|
WINBOOL WINAPI TerminateLogArchive(
|
|
CLFS_LOG_ARCHIVE_CONTEXT pvArchiveContext
|
|
);
|
|
|
|
ULONG WINAPI LsnBlockOffset(
|
|
const CLFS_LSN *plsn
|
|
);
|
|
|
|
CLFS_CONTAINER_ID WINAPI LsnContainer(
|
|
const CLFS_LSN *plsn
|
|
);
|
|
|
|
CLFS_LSN WINAPI LsnCreate(
|
|
CLFS_CONTAINER_ID cidContainer,
|
|
ULONG offBlock,
|
|
ULONG cRecord
|
|
);
|
|
|
|
ULONG WINAPI LsnRecordSequence(
|
|
const CLFS_LSN *plsn
|
|
);
|
|
|
|
WINBOOL WINAPI PrepareLogArchive(
|
|
HANDLE hLog,
|
|
PWSTR pszBaseLogFileName,
|
|
ULONG cLen,
|
|
const PCLFS_LSN plsnLow,
|
|
const PCLFS_LSN plsnHigh,
|
|
PULONG pcActualLength,
|
|
PULONGLONG poffBaseLogFileData,
|
|
PULONGLONG pcbBaseLogFileLength,
|
|
PCLFS_LSN plsnBase,
|
|
PCLFS_LSN plsnLast,
|
|
PCLFS_LSN plsnCurrentArchiveTail,
|
|
PCLFS_LOG_ARCHIVE_CONTEXT ppvArchiveContext
|
|
);
|
|
|
|
WINBOOL WINAPI QueryLogPolicy(
|
|
HANDLE hLog,
|
|
CLFS_MGMT_POLICY_TYPE ePolicyType,
|
|
PCLFS_MGMT_POLICY pPolicyBuffer,
|
|
PULONG pcbPolicyBuffer
|
|
);
|
|
|
|
WINBOOL WINAPI ReadLogArchiveMetadata(
|
|
CLFS_LOG_ARCHIVE_CONTEXT pvArchiveContext,
|
|
ULONG cbOffset,
|
|
ULONG cbBytesToRead,
|
|
PBYTE pbReadBuffer,
|
|
PULONG pcbBytesRead
|
|
);
|
|
|
|
WINBOOL WINAPI ReadLogRestartArea(
|
|
PVOID pvMarshal,
|
|
PVOID *ppvRestartBuffer,
|
|
PULONG pcbRestartBuffer,
|
|
PCLFS_LSN plsn,
|
|
PVOID *ppvContext,
|
|
LPOVERLAPPED pOverlapped
|
|
);
|
|
|
|
WINBOOL WINAPI ReadPreviousLogRestartArea(
|
|
PVOID pvReadContext,
|
|
PVOID *ppvRestartBuffer,
|
|
PULONG pcbRestartBuffer,
|
|
PCLFS_LSN plsnRestart,
|
|
LPOVERLAPPED pOverlapped
|
|
);
|
|
|
|
WINBOOL WINAPI RemoveLogContainer(
|
|
HANDLE hLog,
|
|
LPWSTR pwszContainerPath,
|
|
WINBOOL fForce,
|
|
LPVOID pReserved
|
|
);
|
|
|
|
WINBOOL WINAPI RemoveLogContainerSet(
|
|
HANDLE hLog,
|
|
USHORT cContainers,
|
|
LPWSTR *rgwszContainerPath,
|
|
WINBOOL fForce,
|
|
LPVOID pReserved
|
|
);
|
|
|
|
WINBOOL WINAPI ReserveAndAppendLog(
|
|
PVOID pvMarshal,
|
|
PCLFS_WRITE_ENTRY rgWriteEntries,
|
|
ULONG cWriteEntries,
|
|
PCLFS_LSN plsnUndoNext,
|
|
PCLFS_LSN plsnPrevious,
|
|
ULONG cReserveRecords,
|
|
LONGLONG rgcbReservation[],
|
|
ULONG fFlags,
|
|
PCLFS_LSN plsn,
|
|
LPOVERLAPPED pOverlapped
|
|
);
|
|
|
|
WINBOOL WINAPI ReserveAndAppendLogAligned(
|
|
PVOID pvMarshal,
|
|
PCLFS_WRITE_ENTRY rgWriteEntries,
|
|
ULONG cWriteEntries,
|
|
ULONG cbEntryAlignment,
|
|
PCLFS_LSN plsnUndoNext,
|
|
PCLFS_LSN plsnPrevious,
|
|
ULONG cReserveRecords,
|
|
LONGLONG rgcbReservation[],
|
|
ULONG fFlags,
|
|
PCLFS_LSN plsn,
|
|
LPOVERLAPPED overlapped
|
|
);
|
|
|
|
WINBOOL WINAPI SetEndOfLog(
|
|
HANDLE hLog,
|
|
PCLFS_LSN plsnEnd,
|
|
LPOVERLAPPED lpOverlapped
|
|
);
|
|
|
|
WINBOOL WINAPI SetLogArchiveMode(
|
|
HANDLE hLog,
|
|
CLFS_LOG_ARCHIVE_MODE eMode
|
|
);
|
|
|
|
WINBOOL WINAPI SetLogArchiveTail(
|
|
HANDLE hLog,
|
|
PCLFS_LSN plsnArchiveTail,
|
|
LPVOID pReserved
|
|
);
|
|
|
|
WINBOOL WINAPI TerminateReadLog(
|
|
PVOID pvCursorContext
|
|
);
|
|
|
|
WINBOOL WINAPI ValidateLog(
|
|
LPCWSTR pszLogFileName,
|
|
LPSECURITY_ATTRIBUTES psaLogFile,
|
|
PCLFS_INFORMATION pinfoBuffer,
|
|
PULONG pcbBuffer
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* (_WIN32_WINNT >= 0x0600) */
|
|
#endif /*_INC_CLFSW32*/
|