At the moment, the C# ArrowBuffer implementation is immutable. The only way to build it is through the provided builders. It also ought to be able to wrap external memory as a zero copy op. The C++ implementation exposes this as a GetMutableValue() method. Example use cases are similar to when a NumPy array is wrapped in an ArrowBuffer in pyArrow.