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