Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
 public static bool HasFlag(this ShareAccessFlags t, ShareAccessFlags sMB2HeaderFlags)
 {
     if (sMB2HeaderFlags == 0)
     {
         throw new ArgumentException("Can't be Zero");
     }
     if ((t & sMB2HeaderFlags) == sMB2HeaderFlags)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 4
0
 public static extern UInt32 ZwCreateFile(IntPtr ptr_to_FileHandle, AccessRightsFlags DesiredAccess, IntPtr ObjectAttributes, IntPtr IoStatusBlock, Int32 AllocationSize, Int32 FileAttributes, ShareAccessFlags ShareAccess, Int32 CreateDisposition, FileCreationFlags CreateOptions, IntPtr EaBuffer, Int32 EaLength);
Ejemplo n.º 5
0
 public static byte[] GetBytes(this ShareAccessFlags t)
 {
     return(BitConverter.GetBytes((uint)t));
 }