Ejemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="access"></param>
        /// <param name="share"></param>
        /// <param name="creationDisposition"></param>
        /// <param name="flagsAndAttributes"></param>
        public void Open(FileAccess access, FileShare share, FileCreateDisposition creationDisposition, int flagsAndAttributes)
        {
            uint dwDesiredAccess;

            switch (access)
            {
            case FileAccess.Read:
                dwDesiredAccess = 0x80000000;
                break;

            case FileAccess.Write:
                dwDesiredAccess = 0x40000000;
                break;

            case FileAccess.ReadWrite:
                dwDesiredAccess = 0xC0000000;
                break;

            default:
                dwDesiredAccess = 0x20000000;
                break;
            }

            var handle = NativeMethods.CreateFile(Name, dwDesiredAccess, (uint)share, 0, (uint)creationDisposition, (uint)flagsAndAttributes, 0);

            if (handle == InvalidHandle)
            {
                throw new Win32Exception(Marshal.GetLastWin32Error());
            }

            Handle = handle;
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Creates a new instance of the <see cref="SDKStream"/> class with an underlying SDK file stream
 /// </summary>
 /// <param name="filepath">Path to the file</param>
 /// <param name="createDisposition">State how to create the stream</param>
 /// <param name="access">File access type</param>
 public SDKStream(string filepath, FileCreateDisposition createDisposition, FileAccess access)
 {
     if (filepath == null)
     {
         throw new ArgumentNullException(nameof(filepath));
     }
     ErrorHandler.CheckError(CanonSDK.EdsCreateFileStreamEx(filepath, createDisposition, access, out _Reference));
 }
Ejemplo n.º 3
0
 public static extern IntPtr CreateFile(
     string fileName,
     FileAccess desiredAccess,
     FileShare shareMode,
     ref SecurityAttributes securityAttributes,
     FileCreateDisposition creationDisposition,
     FileAttributes flagsAndAttributes,
     IntPtr templateFile
     );
Ejemplo n.º 4
0
        public static IntPtr CreateFile(string fileName,
                                        FileAccess desiredAccess,
                                        FileShare shareMode,
                                        FileCreateDisposition creationDisposition,
                                        int flagsAndAttributes)
        {
            IntPtr hFile = IntPtr.Zero;

            hFile = (IntPtr)CreateFileCE(fileName, (uint)desiredAccess, (uint)shareMode, 0, (uint)creationDisposition, (uint)flagsAndAttributes, 0);

            if ((int)hFile == InvalidHandle)
            {
                throw new WinAPIException("Failed to Create File");
            }

            return(hFile);
        }
Ejemplo n.º 5
0
        public static IntPtr CreateFile(string fileName,
                                        FileAccess desiredFileAccess,
                                        FileShare shareMode,
                                        FileCreateDisposition creationDisposition,
                                        int flagsAndAttributes)
        {
            FileAccess2 desiredAccess;

            switch (desiredFileAccess)
            {
            case FileAccess.Read:
                desiredAccess = FileAccess2.Read;
                break;

            case FileAccess.ReadWrite:
                desiredAccess = FileAccess2.Read | FileAccess2.Write;
                break;

            case FileAccess.Write:
                desiredAccess = FileAccess2.Write;
                break;

            default:
                desiredAccess = FileAccess2.Execute;     //it will never get here and in fact Execute is never currently used. Left as a back door.
                break;
            }

            IntPtr hFile = IntPtr.Zero;

            hFile = NativeMethods.CreateFile(fileName, (uint)desiredAccess, (uint)shareMode, 0, (uint)creationDisposition, (uint)flagsAndAttributes, 0);

            if ((int)hFile == InvalidHandle)
            {
                throw new System.ComponentModel.Win32Exception(Marshal.GetLastWin32Error(), "Failed to Create File");
            }

            return(hFile);
        }
Ejemplo n.º 6
0
 public static extern UInt32 CreateStreamEx(
    string inFileName,
    FileCreateDisposition inCreateDisposition,
    Access inDesiredAccess,
    out IntPtr outStream
    );
Ejemplo n.º 7
0
 public extern static UInt32 CreateStreamEx(
     string inFileName,
     FileCreateDisposition inCreateDisposition,
     Access inDesiredAccess,
     out IntPtr outStream
     );
Ejemplo n.º 8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="access"></param>
        /// <param name="share"></param>
        /// <param name="creationDisposition"></param>
        /// <param name="flagsAndAttributes"></param>
        public void Open(FileAccess access, FileShare share, FileCreateDisposition creationDisposition, int flagsAndAttributes)
        {
            uint dwDesiredAccess;
            switch (access)
            {
                case FileAccess.Read:
                    dwDesiredAccess = 0x80000000;
                    break;
                case FileAccess.Write:
                    dwDesiredAccess = 0x40000000;
                    break;
                case FileAccess.ReadWrite:
                    dwDesiredAccess = 0xC0000000;
                    break;
                default:
                    dwDesiredAccess = 0x20000000;
                    break;
            }

            var handle = NativeMethods.CreateFile(Name, dwDesiredAccess, (uint)share, 0, (uint)creationDisposition, (uint)flagsAndAttributes, 0);
            if (handle == InvalidHandle)
            {
                throw new Win32Exception(Marshal.GetLastWin32Error());
            }

            Handle = handle;
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Wrapper around the CreateFile API
        /// </summary>
        /// <param name="fileName">Path to the file or CE port name</param>
        /// <param name="desiredAccess">Specifies the type of access to the object. An application can obtain read access, write access, read-write access, or device query access.</param>
        /// <param name="shareMode">Specifies how the object can be shared.</param>
        /// <param name="creationDisposition">Specifies which action to take on files that exist, and which action to take when files do not exist.</param>
        /// <param name="flagsAndAttributes">Specifies the file attributes and flags for the file.</param>
        /// <returns>Handle to the created file</returns>
        public static IntPtr CreateFile(string fileName,
            FileAccess desiredAccess,
            FileShare shareMode,
            FileCreateDisposition creationDisposition,
            int flagsAndAttributes)
        {
            IntPtr hFile = IntPtr.Zero;

            hFile =
                (IntPtr)
                CreateFileCE(fileName, (uint) desiredAccess, (uint) shareMode, 0, (uint) creationDisposition,
                             (uint) flagsAndAttributes, 0);

            if ((int) hFile == InvalidHandle)
            {
                throw new WinAPIException("Failed to Create File");
            }

            return hFile;
        }