public int Write(object FileNode, object FileDesc0, IntPtr Buffer, ulong Offset, uint Length, bool WriteToEndOfFile, bool ConstrainedIo, out uint PBytesTransferred, out FileInfo pFileInfo)
 {
     try {
         var p     = (IFSEntryPointer)FileDesc0;
         var Bytes = new byte[Length];
         Marshal.Copy(Buffer, Bytes, 0, Bytes.Length);
         var r = Storage.Write(p, Bytes, (long)Offset, out var Transfered);
         PBytesTransferred = (uint)Transfered;
         p.GetStruct(out pFileInfo);
         return(HandleResult(r).GetNtStatus());
     } catch (Win32Exception ex) {
         throw WindowsExceptionGenerator.GetIOException(ex);
     } catch (NTException ex) {
         throw WindowsExceptionGenerator.GetIOException(ex);
     }
 }