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 bool HasFlag(this FilePipePrinterAccessMaskFlags t, FilePipePrinterAccessMaskFlags filePipePrinterAccessMaskFlags) { if (filePipePrinterAccessMaskFlags == 0) { throw new ArgumentException("Can't be Zero"); } if ((t & filePipePrinterAccessMaskFlags) == filePipePrinterAccessMaskFlags) { return(true); } else { return(false); } }
public PipeClient(string serverName, string pipeName, PipeDirection direction, string strUserName, string strPassword) { SMB2Client = new SMB2Client(serverName, strUserName, strPassword); PipeName = pipeName; if (direction == PipeDirection.Read) { FilePipePrinterAccessMaskFlags = FilePipePrinterAccessMaskFlags.GENERIC_READ; } else if (direction == PipeDirection.Write) { FilePipePrinterAccessMaskFlags = FilePipePrinterAccessMaskFlags.GENERIC_WRITE; } else { FilePipePrinterAccessMaskFlags = FilePipePrinterAccessMaskFlags.GENERIC_READ | FilePipePrinterAccessMaskFlags.GENERIC_WRITE; } }
public static byte[] GetBytes(this FilePipePrinterAccessMaskFlags t) { return(BitConverter.GetBytes((uint)t)); }