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