using System; using System.Runtime.InteropServices; namespace DiscImageChef.Devices.Windows { [Flags] enum FileAttributes : uint { /// /// FILE_ATTRIBUTE_ARCHIVE /// Archive = 0x20, /// /// FILE_ATTRIBUTE_COMPRESSED /// Compressed = 0x800, /// /// FILE_ATTRIBUTE_DEVICE /// Device = 0x40, /// /// FILE_ATTRIBUTE_DIRECTORY /// Directory = 0x10, /// /// FILE_ATTRIBUTE_ENCRYPTED /// Encrypted = 0x4000, /// /// FILE_ATTRIBUTE_HIDDEN /// Hidden = 0x02, /// /// FILE_ATTRIBUTE_INTEGRITY_STREAM /// IntegrityStream = 0x8000, /// /// FILE_ATTRIBUTE_NORMAL /// Normal = 0x80, /// /// FILE_ATTRIBUTE_NOT_CONTENT_INDEXED /// NotContentIndexed = 0x2000, /// /// FILE_ATTRIBUTE_NO_SCRUB_DATA /// NoScrubData = 0x20000, /// /// FILE_ATTRIBUTE_OFFLINE /// Offline = 0x1000, /// /// FILE_ATTRIBUTE_READONLY /// Readonly = 0x01, /// /// FILE_ATTRIBUTE_REPARSE_POINT /// ReparsePoint = 0x400, /// /// FILE_ATTRIBUTE_SPARSE_FILE /// SparseFile = 0x200, /// /// FILE_ATTRIBUTE_SYSTEM /// System = 0x04, /// /// FILE_ATTRIBUTE_TEMPORARY /// Temporary = 0x100, /// /// FILE_ATTRIBUTE_VIRTUAL /// Virtual = 0x10000 } [Flags] enum FileAccess : uint { /// /// FILE_READ_DATA /// ReadData = 0x0001, /// /// FILE_LIST_DIRECTORY /// ListDirectory = ReadData, /// /// FILE_WRITE_DATA /// WriteData = 0x0002, /// /// FILE_ADD_FILE /// AddFile = WriteData, /// /// FILE_APPEND_DATA /// AppendData = 0x0004, /// /// FILE_ADD_SUBDIRECTORY /// AddSubdirectory = AppendData, /// /// FILE_CREATE_PIPE_INSTANCE /// CreatePipeInstance = AppendData, /// /// FILE_READ_EA /// ReadEA = 0x0008, /// /// FILE_WRITE_EA /// WriteEA = 0x0010, /// /// FILE_EXECUTE /// Execute = 0x0020, /// /// FILE_TRAVERSE /// Traverse = Execute, /// /// FILE_DELETE_CHILD /// DeleteChild = 0x0040, /// /// FILE_READ_ATTRIBUTES /// ReadAttributes = 0x0080, /// /// FILE_WRITE_ATTRIBUTES /// WriteAttributes = 0x0100, /// /// GENERIC_READ /// GenericRead = 0x80000000, /// /// GENERIC_WRITE /// GenericWrite = 0x40000000, /// /// GENERIC_EXECUTE /// GenericExecute = 0x20000000, /// /// GENERIC_ALL /// GenericAll = 0x10000000 } [Flags] enum FileShare : uint { /// /// FILE_SHARE_NONE /// None = 0x00, /// /// FILE_SHARE_READ /// Read = 0x01, /// /// FILE_SHARE_WRITE /// Write = 0x02, /// /// FILE_SHARE_DELETE /// Delete = 0x03 } [Flags] enum FileMode : uint { /// /// NEW /// New = 0x01, /// /// CREATE_ALWAYS /// CreateAlways = 0x02, /// /// OPEN_EXISTING /// OpenExisting = 0x03, /// /// OPEN_ALWAYS /// OpenAlways = 0x04, /// /// TRUNCATE_EXISTING /// TruncateExisting = 0x05 } /// /// Direction of SCSI transfer /// enum ScsiIoctlDirection : byte { /// /// From host to device /// SCSI_IOCTL_DATA_OUT /// Out = 0, /// /// From device to host /// SCSI_IOCTL_DATA_IN /// In = 1, /// /// Unspecified direction, or bidirectional, or no data /// SCSI_IOCTL_DATA_UNSPECIFIED /// Unspecified = 2 } enum WindowsIoctl : uint { /// /// ScsiPassThrough /// IOCTL_SCSI_PASS_THROUGH = 0x4D004, /// /// ScsiPassThroughDirect /// IOCTL_SCSI_PASS_THROUGH_DIRECT = 0x4D014, /// /// ScsiGetAddress /// IOCTL_SCSI_GET_ADDRESS = 0x41018 } /// /// AAAAA /// }