5.1.7. Consistency Support

To be done.

5.1.7.1. Example: Windows Transaction Operations

HANDLE CreateTransaction (
  LPSECURITY_ATTRIBUTES lpTransactionAttributes,
  LPGUID UOW,
  DWORD CreateOptions,
  DWORD IsolationLevel,
  DWORD IsolationFlags,
  DWORD Timeout,
  LPWSTR Description);

BOOL CommitTransaction (
  HANDLE TransactionHandle);
BOOL RollbackTransaction (
  HANDLE TransactionHandle);

Transaction context can be used to group together multiple operations and provide multiple readers with a consistent past snapshot of data in presence of a single writer. Most arguments of the context creation call are ignored and should be set to zero.

HANDLE CreateFileTransacted (
  LPCTSTR lpFileName,
  DWORD dwDesiredAccess,
  DWORD dwShareMode,
  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  DWORD dwCreationDisposition,
  DWORD dwFlagsAndAttributes,
  HANDLE hTemplateFile,
  HANDLE hTransaction,
  PUSHORT pusMiniVersion,
  PVOID pExtendedParameter);

BOOL DeleteFileTransacted(
  LPCTSTR lpFileName,
  HANDLE hTransaction);

BOOL CreateDirectoryTransacted (...);
BOOL RemoveDirectoryTransacted (...);

BOOL MoveFileTransacted (...);
BOOL CopyFileTransacted (...);

The support for transactions is generic, driven by a system transaction manager and cooperating resource managers. Transactional operations can therefore be provided by other parts of the system, such as registry.