Discuss this help topic in CBFS Forum

CallbackFileSystem.MaxWriteBlockSize property


Pascal    C++ (Lib)    C++ (VCL)    C++ (.NET)    C#    VB.NET    Java 

CallbackFileSystem     See also    


Specifies the maximal size of the single block passed to OnWriteFile callback.


    property MaxWriteBlockSize : LongWord;

[C++ (Lib)]
    DWORD GetMaxWriteBlockSize();
    void SetMaxWriteBlockSize(DWORD Value);

[C++ (VCL)]
    unsigned long MaxWriteBlockSize;

[C++ (.NET)]
    UInt32 MaxWriteBlockSize;

    UInt32 MaxWriteBlockSize;

    Public Property MaxWriteBlockSize As UInt32

    long getMaxWriteBlockSize();
    void setMaxWriteBlockSize(long value);


This property contains the size in bytes of the block which can be reliably handled by OnWriteFile callback without high probability of timeout.

Default value is 0xFFFFFFFF (which means no limit).

If your filesystem is backed by network operations or by other slow storage, handling 100+Mb large blocks can cause a timeout in the driver -- sending data across network will take more than time you've reserved for single operation. In this case it makes sense to split single large block to smaller chunks and handle those chunks one by one. The driver will pass a pointer to the part of the buffer to the callback and will reset the timer after each call.

See also

MaxReadBlockSize property     OnWriteFile event    

Discuss this help topic in CBFS Forum