protected void CreateHandles(long capacity)
{
if (NativeStream.Length > capacity)
capacity = NativeStream.Length;
Handle = MemoryMappedFile.CreateFromFile(
NativeStream, null, capacity,
MemoryMappedFileAccess.ReadWrite,
null, HandleInheritability.None, true
);
HeaderView = Handle.CreateViewAccessor(0, HeaderSize);
StreamCapacity = capacity;
Cache = new ViewCache(Handle, StreamCapacity);
}