2017-05-19 20:28:49 +01:00
|
|
|
// /***************************************************************************
|
2015-10-12 06:39:31 +01:00
|
|
|
// The Disc Image Chef
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
//
|
|
|
|
|
// Filename : Enums.cs
|
2016-07-28 18:13:49 +01:00
|
|
|
// Author(s) : Natalia Portillo <claunia@claunia.com>
|
2015-10-12 06:39:31 +01:00
|
|
|
//
|
2016-07-28 18:13:49 +01:00
|
|
|
// Component : Windows direct device access.
|
2015-10-12 06:39:31 +01:00
|
|
|
//
|
|
|
|
|
// --[ Description ] ----------------------------------------------------------
|
|
|
|
|
//
|
2016-07-28 18:13:49 +01:00
|
|
|
// Contains enumerations necessary for directly interfacing devices under
|
|
|
|
|
// Windows.
|
2015-10-12 06:39:31 +01:00
|
|
|
//
|
|
|
|
|
// --[ License ] --------------------------------------------------------------
|
|
|
|
|
//
|
2016-07-28 18:13:49 +01:00
|
|
|
// This library is free software; you can redistribute it and/or modify
|
|
|
|
|
// it under the terms of the GNU Lesser General Public License as
|
|
|
|
|
// published by the Free Software Foundation; either version 2.1 of the
|
2015-10-12 06:39:31 +01:00
|
|
|
// License, or (at your option) any later version.
|
|
|
|
|
//
|
2016-07-28 18:13:49 +01:00
|
|
|
// This library is distributed in the hope that it will be useful, but
|
|
|
|
|
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
|
// Lesser General Public License for more details.
|
2015-10-12 06:39:31 +01:00
|
|
|
//
|
2016-07-28 18:13:49 +01:00
|
|
|
// You should have received a copy of the GNU Lesser General Public
|
|
|
|
|
// License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
2015-10-12 06:39:31 +01:00
|
|
|
//
|
|
|
|
|
// ----------------------------------------------------------------------------
|
2017-12-19 03:50:57 +00:00
|
|
|
// Copyright © 2011-2018 Natalia Portillo
|
2015-10-12 06:39:31 +01:00
|
|
|
// ****************************************************************************/
|
|
|
|
|
|
|
|
|
|
using System;
|
2017-12-22 03:13:43 +00:00
|
|
|
using System.Diagnostics.CodeAnalysis;
|
2015-10-05 21:20:25 +01:00
|
|
|
|
|
|
|
|
namespace DiscImageChef.Devices.Windows
|
|
|
|
|
{
|
2015-10-06 18:27:38 +01:00
|
|
|
[Flags]
|
|
|
|
|
enum FileAttributes : uint
|
2015-10-05 21:20:25 +01:00
|
|
|
{
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_ARCHIVE
|
|
|
|
|
/// </summary>
|
|
|
|
|
Archive = 0x20,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_COMPRESSED
|
|
|
|
|
/// </summary>
|
|
|
|
|
Compressed = 0x800,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_DEVICE
|
|
|
|
|
/// </summary>
|
|
|
|
|
Device = 0x40,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_DIRECTORY
|
|
|
|
|
/// </summary>
|
|
|
|
|
Directory = 0x10,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_ENCRYPTED
|
|
|
|
|
/// </summary>
|
|
|
|
|
Encrypted = 0x4000,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_HIDDEN
|
|
|
|
|
/// </summary>
|
|
|
|
|
Hidden = 0x02,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_INTEGRITY_STREAM
|
|
|
|
|
/// </summary>
|
|
|
|
|
IntegrityStream = 0x8000,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_NORMAL
|
|
|
|
|
/// </summary>
|
|
|
|
|
Normal = 0x80,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
|
|
|
|
|
/// </summary>
|
|
|
|
|
NotContentIndexed = 0x2000,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_NO_SCRUB_DATA
|
|
|
|
|
/// </summary>
|
|
|
|
|
NoScrubData = 0x20000,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_OFFLINE
|
|
|
|
|
/// </summary>
|
|
|
|
|
Offline = 0x1000,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_READONLY
|
|
|
|
|
/// </summary>
|
|
|
|
|
Readonly = 0x01,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_REPARSE_POINT
|
|
|
|
|
/// </summary>
|
|
|
|
|
ReparsePoint = 0x400,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_SPARSE_FILE
|
|
|
|
|
/// </summary>
|
|
|
|
|
SparseFile = 0x200,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_SYSTEM
|
|
|
|
|
/// </summary>
|
|
|
|
|
System = 0x04,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_TEMPORARY
|
|
|
|
|
/// </summary>
|
|
|
|
|
Temporary = 0x100,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ATTRIBUTE_VIRTUAL
|
|
|
|
|
/// </summary>
|
2017-12-06 13:46:35 +00:00
|
|
|
Virtual = 0x10000,
|
2017-12-06 19:30:03 +00:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_FLAG_BACKUP_SEMANTICS
|
|
|
|
|
/// </summary>
|
|
|
|
|
BackupSemantics = 0x02000000,
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_FLAG_DELETE_ON_CLOSE
|
|
|
|
|
/// </summary>
|
|
|
|
|
DeleteOnClose = 0x04000000,
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_FLAG_NO_BUFFERING
|
|
|
|
|
/// </summary>
|
|
|
|
|
NoBuffering = 0x20000000,
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_FLAG_OPEN_NO_RECALL
|
|
|
|
|
/// </summary>
|
|
|
|
|
OpenNoRecall = 0x00100000,
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_FLAG_OPEN_REPARSE_POINT
|
|
|
|
|
/// </summary>
|
|
|
|
|
OpenReparsePoint = 0x00200000,
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_FLAG_OVERLAPPED
|
|
|
|
|
/// </summary>
|
|
|
|
|
Overlapped = 0x40000000,
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_FLAG_POSIX_SEMANTICS
|
|
|
|
|
/// </summary>
|
|
|
|
|
PosixSemantics = 0x0100000,
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_FLAG_RANDOM_ACCESS
|
|
|
|
|
/// </summary>
|
|
|
|
|
RandomAccess = 0x10000000,
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_FLAG_SESSION_AWARE
|
|
|
|
|
/// </summary>
|
|
|
|
|
SessionAware = 0x00800000,
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_FLAG_SEQUENTIAL_SCAN
|
|
|
|
|
/// </summary>
|
|
|
|
|
SequentialScan = 0x08000000,
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_FLAG_WRITE_THROUGH
|
|
|
|
|
/// </summary>
|
2017-12-21 02:52:12 +00:00
|
|
|
WriteThrough = 0x80000000
|
2015-10-06 18:27:38 +01:00
|
|
|
}
|
2015-10-05 21:20:25 +01:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
[Flags]
|
|
|
|
|
enum FileAccess : uint
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_READ_DATA
|
|
|
|
|
/// </summary>
|
|
|
|
|
ReadData = 0x0001,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_LIST_DIRECTORY
|
|
|
|
|
/// </summary>
|
|
|
|
|
ListDirectory = ReadData,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_WRITE_DATA
|
|
|
|
|
/// </summary>
|
|
|
|
|
WriteData = 0x0002,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ADD_FILE
|
|
|
|
|
/// </summary>
|
|
|
|
|
AddFile = WriteData,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_APPEND_DATA
|
|
|
|
|
/// </summary>
|
|
|
|
|
AppendData = 0x0004,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_ADD_SUBDIRECTORY
|
|
|
|
|
/// </summary>
|
|
|
|
|
AddSubdirectory = AppendData,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_CREATE_PIPE_INSTANCE
|
|
|
|
|
/// </summary>
|
|
|
|
|
CreatePipeInstance = AppendData,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_READ_EA
|
|
|
|
|
/// </summary>
|
2017-12-20 17:15:26 +00:00
|
|
|
ReadEa = 0x0008,
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_WRITE_EA
|
|
|
|
|
/// </summary>
|
2017-12-20 17:15:26 +00:00
|
|
|
WriteEa = 0x0010,
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_EXECUTE
|
|
|
|
|
/// </summary>
|
|
|
|
|
Execute = 0x0020,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_TRAVERSE
|
|
|
|
|
/// </summary>
|
|
|
|
|
Traverse = Execute,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_DELETE_CHILD
|
|
|
|
|
/// </summary>
|
|
|
|
|
DeleteChild = 0x0040,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_READ_ATTRIBUTES
|
|
|
|
|
/// </summary>
|
|
|
|
|
ReadAttributes = 0x0080,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_WRITE_ATTRIBUTES
|
|
|
|
|
/// </summary>
|
|
|
|
|
WriteAttributes = 0x0100,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// GENERIC_READ
|
|
|
|
|
/// </summary>
|
|
|
|
|
GenericRead = 0x80000000,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// GENERIC_WRITE
|
|
|
|
|
/// </summary>
|
|
|
|
|
GenericWrite = 0x40000000,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// GENERIC_EXECUTE
|
|
|
|
|
/// </summary>
|
|
|
|
|
GenericExecute = 0x20000000,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// GENERIC_ALL
|
|
|
|
|
/// </summary>
|
|
|
|
|
GenericAll = 0x10000000
|
|
|
|
|
}
|
2015-10-05 21:20:25 +01:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
[Flags]
|
|
|
|
|
enum FileShare : uint
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_SHARE_NONE
|
|
|
|
|
/// </summary>
|
|
|
|
|
None = 0x00,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_SHARE_READ
|
|
|
|
|
/// </summary>
|
|
|
|
|
Read = 0x01,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_SHARE_WRITE
|
|
|
|
|
/// </summary>
|
|
|
|
|
Write = 0x02,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// FILE_SHARE_DELETE
|
|
|
|
|
/// </summary>
|
|
|
|
|
Delete = 0x03
|
|
|
|
|
}
|
2015-10-05 21:20:25 +01:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
[Flags]
|
|
|
|
|
enum FileMode : uint
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// NEW
|
|
|
|
|
/// </summary>
|
|
|
|
|
New = 0x01,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// CREATE_ALWAYS
|
|
|
|
|
/// </summary>
|
|
|
|
|
CreateAlways = 0x02,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// OPEN_EXISTING
|
|
|
|
|
/// </summary>
|
|
|
|
|
OpenExisting = 0x03,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// OPEN_ALWAYS
|
|
|
|
|
/// </summary>
|
|
|
|
|
OpenAlways = 0x04,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// TRUNCATE_EXISTING
|
|
|
|
|
/// </summary>
|
|
|
|
|
TruncateExisting = 0x05
|
|
|
|
|
}
|
2015-10-05 21:20:25 +01:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// Direction of SCSI transfer
|
|
|
|
|
/// </summary>
|
|
|
|
|
enum ScsiIoctlDirection : byte
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// From host to device
|
|
|
|
|
/// SCSI_IOCTL_DATA_OUT
|
|
|
|
|
/// </summary>
|
|
|
|
|
Out = 0,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// From device to host
|
|
|
|
|
/// SCSI_IOCTL_DATA_IN
|
|
|
|
|
/// </summary>
|
|
|
|
|
In = 1,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Unspecified direction, or bidirectional, or no data
|
|
|
|
|
/// SCSI_IOCTL_DATA_UNSPECIFIED
|
|
|
|
|
/// </summary>
|
|
|
|
|
Unspecified = 2
|
|
|
|
|
}
|
2015-10-05 21:20:25 +01:00
|
|
|
|
2015-10-06 18:27:38 +01:00
|
|
|
enum WindowsIoctl : uint
|
|
|
|
|
{
|
2017-12-20 17:15:26 +00:00
|
|
|
IoctlAtaPassThrough = 0x4D02C,
|
|
|
|
|
IoctlAtaPassThroughDirect = 0x4D030,
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// ScsiPassThrough
|
|
|
|
|
/// </summary>
|
2017-12-20 17:15:26 +00:00
|
|
|
IoctlScsiPassThrough = 0x4D004,
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// ScsiPassThroughDirect
|
|
|
|
|
/// </summary>
|
2017-12-20 17:15:26 +00:00
|
|
|
IoctlScsiPassThroughDirect = 0x4D014,
|
2015-10-06 18:27:38 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// ScsiGetAddress
|
|
|
|
|
/// </summary>
|
2017-12-20 17:15:26 +00:00
|
|
|
IoctlScsiGetAddress = 0x41018,
|
|
|
|
|
IoctlStorageQueryProperty = 0x2D1400,
|
|
|
|
|
IoctlIdePassThrough = 0x4D028,
|
|
|
|
|
IoctlStorageGetDeviceNumber = 0x2D1080,
|
|
|
|
|
IoctlSffdiskQueryDeviceProtocol = 0x71E80,
|
2017-12-21 02:52:12 +00:00
|
|
|
IoctlSffdiskDeviceCommand = 0x79E84
|
2015-10-05 21:20:25 +01:00
|
|
|
}
|
|
|
|
|
|
2015-10-07 02:15:31 +01:00
|
|
|
[Flags]
|
|
|
|
|
enum AtaFlags : ushort
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ATA_FLAGS_DRDY_REQUIRED
|
|
|
|
|
/// </summary>
|
|
|
|
|
DrdyRequired = 0x01,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ATA_FLAGS_DATA_IN
|
|
|
|
|
/// </summary>
|
|
|
|
|
DataIn = 0x02,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ATA_FLAGS_DATA_OUT
|
|
|
|
|
/// </summary>
|
|
|
|
|
DataOut = 0x04,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ATA_FLAGS_48BIT_COMMAND
|
|
|
|
|
/// </summary>
|
|
|
|
|
ExtendedCommand = 0x08,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ATA_FLAGS_USE_DMA
|
|
|
|
|
/// </summary>
|
2017-12-20 17:15:26 +00:00
|
|
|
Dma = 0x10,
|
2015-10-07 02:15:31 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// ATA_FLAGS_NO_MULTIPLE
|
|
|
|
|
/// </summary>
|
|
|
|
|
NoMultiple = 0x20
|
|
|
|
|
}
|
2017-08-22 03:40:43 +01:00
|
|
|
|
|
|
|
|
enum StoragePropertyId
|
|
|
|
|
{
|
|
|
|
|
Device = 0,
|
|
|
|
|
Adapter = 1,
|
|
|
|
|
Id = 2,
|
|
|
|
|
UniqueId = 3,
|
|
|
|
|
WriteCache = 4,
|
|
|
|
|
Miniport = 5,
|
|
|
|
|
AccessAlignment = 6,
|
|
|
|
|
SeekPenalty = 7,
|
|
|
|
|
Trim = 8,
|
|
|
|
|
WriteAggregation = 9,
|
|
|
|
|
Telemetry = 10,
|
2017-12-20 17:15:26 +00:00
|
|
|
LbProvisioning = 11,
|
2017-08-22 03:40:43 +01:00
|
|
|
Power = 12,
|
|
|
|
|
Copyoffload = 13,
|
|
|
|
|
Resiliency = 14
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
enum StorageQueryType
|
|
|
|
|
{
|
|
|
|
|
Standard = 0,
|
|
|
|
|
Exists = 1,
|
|
|
|
|
Mask = 2,
|
|
|
|
|
Max = 3
|
|
|
|
|
}
|
|
|
|
|
|
2017-12-22 03:13:43 +00:00
|
|
|
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
2017-08-22 03:40:43 +01:00
|
|
|
enum StorageBusType
|
|
|
|
|
{
|
|
|
|
|
Unknown = 0,
|
|
|
|
|
SCSI = 1,
|
|
|
|
|
ATAPI = 2,
|
|
|
|
|
ATA = 3,
|
|
|
|
|
FireWire = 4,
|
|
|
|
|
SSA = 5,
|
|
|
|
|
Fibre = 6,
|
|
|
|
|
USB = 7,
|
|
|
|
|
RAID = 8,
|
|
|
|
|
iSCSI = 9,
|
|
|
|
|
SAS = 0xA,
|
|
|
|
|
SATA = 0xB,
|
|
|
|
|
SecureDigital = 0xC,
|
|
|
|
|
MultiMediaCard = 0xD,
|
|
|
|
|
Virtual = 0xE,
|
|
|
|
|
FileBackedVirtual = 0xF,
|
2017-12-21 02:52:12 +00:00
|
|
|
NVMe = 0x11
|
2017-08-22 03:40:43 +01:00
|
|
|
}
|
2017-12-19 20:33:03 +00:00
|
|
|
|
2017-12-06 13:46:35 +00:00
|
|
|
[Flags]
|
|
|
|
|
enum DeviceGetClassFlags : uint
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// DIGCF_DEFAULT
|
|
|
|
|
/// </summary>
|
|
|
|
|
Default = 0x01,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// DIGCF_PRESENT
|
|
|
|
|
/// </summary>
|
|
|
|
|
Present = 0x02,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// DIGCF_ALLCLASSES
|
|
|
|
|
/// </summary>
|
|
|
|
|
AllClasses = 0x04,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// DIGCF_PROFILE
|
|
|
|
|
/// </summary>
|
|
|
|
|
Profile = 0x08,
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// DIGCF_DEVICEINTERFACE
|
|
|
|
|
/// </summary>
|
2017-12-21 02:52:12 +00:00
|
|
|
DeviceInterface = 0x10
|
2017-12-06 13:46:35 +00:00
|
|
|
}
|
2017-12-19 20:33:03 +00:00
|
|
|
|
2017-12-20 02:08:37 +00:00
|
|
|
enum SdCommandClass : uint
|
2017-12-06 23:05:59 +00:00
|
|
|
{
|
|
|
|
|
Standard,
|
|
|
|
|
AppCmd
|
|
|
|
|
}
|
|
|
|
|
|
2017-12-20 02:08:37 +00:00
|
|
|
enum SdTransferDirection : uint
|
2017-12-06 23:05:59 +00:00
|
|
|
{
|
|
|
|
|
Unspecified,
|
|
|
|
|
Read,
|
|
|
|
|
Write
|
|
|
|
|
}
|
|
|
|
|
|
2017-12-20 02:08:37 +00:00
|
|
|
enum SdTransferType : uint
|
2017-12-06 23:05:59 +00:00
|
|
|
{
|
|
|
|
|
Unspecified,
|
|
|
|
|
CmdOnly,
|
|
|
|
|
SingleBlock,
|
|
|
|
|
MultiBlock,
|
|
|
|
|
MultiBlockNoCmd12
|
|
|
|
|
}
|
2017-12-06 13:46:35 +00:00
|
|
|
|
2017-12-22 03:13:43 +00:00
|
|
|
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
2017-12-20 02:08:37 +00:00
|
|
|
enum SdResponseType : uint
|
2017-12-06 23:05:59 +00:00
|
|
|
{
|
|
|
|
|
Unspecified,
|
|
|
|
|
None,
|
|
|
|
|
R1,
|
|
|
|
|
R1b,
|
|
|
|
|
R2,
|
|
|
|
|
R3,
|
|
|
|
|
R4,
|
|
|
|
|
R5,
|
|
|
|
|
R5b,
|
|
|
|
|
R6
|
|
|
|
|
}
|
|
|
|
|
|
2017-12-20 02:08:37 +00:00
|
|
|
enum SffdiskDcmd : uint
|
2017-12-06 23:05:59 +00:00
|
|
|
{
|
|
|
|
|
GetVersion,
|
|
|
|
|
LockChannel,
|
|
|
|
|
UnlockChannel,
|
|
|
|
|
DeviceCommand
|
2017-12-21 02:53:52 +00:00
|
|
|
}
|
2017-12-19 20:33:03 +00:00
|
|
|
|
2017-12-06 13:46:35 +00:00
|
|
|
static class Consts
|
|
|
|
|
{
|
2017-12-20 17:15:26 +00:00
|
|
|
public static Guid GuidSffProtocolSd = new Guid("AD7536A8-D055-4C40-AA4D-96312DDB6B38");
|
|
|
|
|
public static Guid GuidDevinterfaceDisk =
|
2017-12-19 20:33:03 +00:00
|
|
|
new Guid(0x53F56307, 0xB6BF, 0x11D0, 0x94, 0xF2, 0x00, 0xA0, 0xC9, 0x1E, 0xFB, 0x8B);
|
2017-12-06 13:46:35 +00:00
|
|
|
}
|
2017-12-19 20:33:03 +00:00
|
|
|
}
|