public Guid CreateFile(uint treeId, FilePipePrinterAccessMaskFlags maskFlags, ShareAccessFlags shareAccess, ECreateDisposition createDisposition, uint createOptions, string strFileName, out ulong length) { ulong mid = (ulong)Interlocked.Increment(ref MessageId); SMB2Header sMB2Header = new SMB2Header(ESMB2Command.CREATE, SMB2HeaderFlags.None, mid, treeId, SessionId); SMB2Body sMB2Body = new CreateRequest(maskFlags, shareAccess, createDisposition, createOptions, strFileName.GetUnicodeBytes()); SMB2Message sMB2Message = new SMB2Message(sMB2Header, sMB2Body); SMBTransport.SendDatas(sMB2Message.DumpBinary()); var sm = GetMessage(mid); if (sm.SMB2Header.Status == 0) { var cr = sm.SMB2Body as CreateResponse; length = cr.EndofFile; return(cr.FileId); } else { throw new Exception("CreateFile Status error:" + sm.SMB2Header.Status); } }
public SMB2File CreateFile( FilePipePrinterAccessMaskFlags maskFlags, ShareAccessFlags shareAccess, ECreateDisposition createDisposition, uint createOptions, string strFileName) { var fid = SMB2Client.CreateFile(TreeId, maskFlags, shareAccess, createDisposition, createOptions, strFileName, out ulong length); return(new SMB2File(SMB2Client, this, strFileName, fid, length)); }
public static byte[] GetBytes(this ECreateDisposition t) { return(BitConverter.GetBytes((uint)t)); }