/// <summary> /// Create a new file /// </summary> /// <param name="name">The path to the file</param> /// <param name="root">A root object to parse relative filenames</param> /// <param name="desired_access">Desired access for the file</param> /// <param name="file_attributes">Attributes for the file</param> /// <param name="share_access">Share access for the file</param> /// <param name="open_options">Open options for file</param> /// <param name="disposition">Disposition when opening the file</param> /// <param name="ea_buffer">Extended Attributes buffer</param> /// <returns>The created/opened file object.</returns> public static NtFile Create(string name, NtObject root, FileAccessRights desired_access, FileAttributes file_attributes, FileShareMode share_access, FileOpenOptions open_options, FileDisposition disposition, EaBuffer ea_buffer) { using (ObjectAttributes obja = new ObjectAttributes(name, AttributeFlags.CaseInsensitive, root)) { return(Create(obja, desired_access, file_attributes, share_access, open_options, disposition, ea_buffer)); } }
public static extern NtStatus NtCreateFile( out SafeKernelObjectHandle FileHandle, FileAccessRights DesiredAccess, ObjectAttributes ObjAttr, [Out] IoStatus IoStatusBlock, LargeInteger AllocationSize, FileAttributes FileAttributes, FileShareMode ShareAccess, FileDisposition CreateDisposition, FileOpenOptions CreateOptions, byte[] EaBuffer, int EaLength);
/// <summary> /// Create a new file /// </summary> /// <param name="obj_attributes">The object attributes</param> /// <param name="desired_access">Desired access for the file</param> /// <param name="file_attributes">Attributes for the file</param> /// <param name="share_access">Share access for the file</param> /// <param name="open_options">Open options for file</param> /// <param name="disposition">Disposition when opening the file</param> /// <param name="ea_buffer">Extended Attributes buffer</param> /// <returns>The created/opened file object.</returns> public static NtFile Create(ObjectAttributes obj_attributes, FileAccessRights desired_access, FileAttributes file_attributes, FileShareMode share_access, FileOpenOptions open_options, FileDisposition disposition, EaBuffer ea_buffer) { SafeKernelObjectHandle handle; IoStatus iostatus = new IoStatus(); byte[] buffer = ea_buffer != null?ea_buffer.ToByteArray() : null; NtSystemCalls.NtCreateFile(out handle, desired_access, obj_attributes, iostatus, null, FileAttributes.Normal, share_access, disposition, open_options, buffer, buffer != null ? buffer.Length : 0).ToNtException(); return(new NtFile(handle)); }
public static extern NtStatus NtCreateNamedPipeFile( out SafeKernelObjectHandle FileHandle, FileAccessRights DesiredAccess, [In] ObjectAttributes ObjectAttributes, [Out] IoStatus IoStatusBlock, FileShareMode ShareAccess, FileDisposition CreateDisposition, FileOpenOptions CreateOptions, NamedPipeType NamedPipeType, NamedPipeReadMode ReadMode, NamedPipeCompletionMode CompletionMode, int MaximumInstances, int InboundQuota, int OutboundQuota, LargeInteger DefaultTimeout );
/// <summary> /// Create a new file /// </summary> /// <param name="name">The path to the file</param> /// <param name="desired_access">Desired access for the file</param> /// <param name="share_access">Share access for the file</param> /// <param name="open_options">Open options for file</param> /// <param name="disposition">Disposition when opening the file</param> /// <param name="ea_buffer">Extended Attributes buffer</param> /// <returns>The created/opened file object.</returns> public static NtFile Create(string name, FileAccessRights desired_access, FileShareMode share_access, FileOpenOptions open_options, FileDisposition disposition, EaBuffer ea_buffer) { return(Create(name, null, desired_access, FileAttributes.Normal, share_access, open_options, disposition, ea_buffer)); }
public static unsafe NativeFileObject Open(string fileName, FileObjectAccessRights accessRights, FileShareMode shareMode, FileDisposition disposition, FileAttributes attributes) { SafeFileObjectHandle handle = CreateFileW(fileName, (uint)accessRights, (uint)shareMode, null, (uint)disposition, (uint)attributes, SafeFileObjectHandle.InvalidHandle); if (handle.IsInvalid) { throw new Win32Exception(); } return(new NativeFileObject(handle)); }