If your custom provider is based on a non-transactional system, then your code has to detect the ambient TransactionScope and handle the read and write requests from within the TransactionScope.
Microsoft introduced Transactional NTFS (abbreviated TxF) in Vista (For details refer to: https://docs.microsoft.com/en-us/windows/desktop/FileIO/transactional-ntfs-portal). The Transactional NTFS brings the concept of atomic transactions to the NTFS file system, and can be used to support the handling of read and write requests from within the TransactionScope.
Prior Operating Systems, like Windows Server 2003, do not have support for TxF and it is not included in the .NET Framework (through version 4.0). This means that when using older operating systems, custom image data providers that store annotations in files must either manage the file resources without the assistance of TxF or access the TxF unmanaged API via InteropServices.