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