⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntddstor.h

📁 MinGW+MSYS开发必用的api参考
💻 H
字号:
/* * ntddstor.h * * Storage class IOCTL interface. * * This file is part of the w32api package. * * Contributors: *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net> * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */#ifndef __NTDDSTOR_H#define __NTDDSTOR_H#if __GNUC__ >=3#pragma GCC system_header#endif#ifdef __cplusplusextern "C" {#endif#include "ntddk.h"#define IOCTL_STORAGE_BASE                FILE_DEVICE_MASS_STORAGE#define IOCTL_STORAGE_CHECK_VERIFY \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_CHECK_VERIFY2 \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_EJECT_MEDIA \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_EJECTION_CONTROL \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_FIND_NEW_DEVICES \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_GET_DEVICE_NUMBER \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_GET_MEDIA_TYPES \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_LOAD_MEDIA \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_LOAD_MEDIA2 \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_MCN_CONTROL \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_MEDIA_REMOVAL \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_PREDICT_FAILURE \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_QUERY_PROPERTY \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0500, METHOD_BUFFERED, FILE_ANY_ACCESS)#define IOCTL_STORAGE_RELEASE \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_RESERVE \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)#define IOCTL_STORAGE_RESET_BUS \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)#define IOCTL_STORAGE_RESET_DEVICE \  CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)DEFINE_GUID(GUID_DEVINTERFACE_DISK,  0x53f56307L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);DEFINE_GUID(GUID_DEVINTERFACE_CDROM,  0x53f56308L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);DEFINE_GUID(GUID_DEVINTERFACE_PARTITION,  0x53f5630aL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);DEFINE_GUID(GUID_DEVINTERFACE_TAPE,  0x53f5630bL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);DEFINE_GUID(GUID_DEVINTERFACE_WRITEONCEDISK,  0x53f5630cL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);DEFINE_GUID(GUID_DEVINTERFACE_VOLUME,  0x53f5630dL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);DEFINE_GUID(GUID_DEVINTERFACE_MEDIUMCHANGER,  0x53f56310L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);DEFINE_GUID(GUID_DEVINTERFACE_FLOPPY,  0x53f56311L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);DEFINE_GUID(GUID_DEVINTERFACE_CDCHANGER,  0x53f56312L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);DEFINE_GUID(GUID_DEVINTERFACE_STORAGEPORT,  0x2accfe60L, 0xc130, 0x11d2, 0xb0, 0x82, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);typedef enum _STORAGE_MEDIA_TYPE {  DDS_4mm = 0x20,  MiniQic,  Travan,  QIC,  MP_8mm,  AME_8mm,  AIT1_8mm,  DLT,  NCTP,  IBM_3480,  IBM_3490E,  IBM_Magstar_3590,  IBM_Magstar_MP,  STK_DATA_D3,  SONY_DTF,  DV_6mm,  DMI,  SONY_D2,  CLEANER_CARTRIDGE,  CD_ROM,  CD_R,  CD_RW,  DVD_ROM,  DVD_R,  DVD_RW,  MO_3_RW,  MO_5_WO,  MO_5_RW,  MO_5_LIMDOW,  PC_5_WO,  PC_5_RW,  PD_5_RW,  ABL_5_WO,  PINNACLE_APEX_5_RW,  SONY_12_WO,  PHILIPS_12_WO,  HITACHI_12_WO,  CYGNET_12_WO,  KODAK_14_WO,  MO_NFR_525,  NIKON_12_RW,  IOMEGA_ZIP,  IOMEGA_JAZ,  SYQUEST_EZ135,  SYQUEST_EZFLYER,  SYQUEST_SYJET,  AVATAR_F2,  MP2_8mm,  DST_S,  DST_M,  DST_L,  VXATape_1,  VXATape_2,  STK_9840,  LTO_Ultrium,  LTO_Accelis,  DVD_RAM,  AIT_8mm,  ADR_1,  ADR_2} STORAGE_MEDIA_TYPE, *PSTORAGE_MEDIA_TYPE;typedef enum _STORAGE_BUS_TYPE {	BusTypeUnknown = 0x00,	BusTypeScsi,	BusTypeAtapi,	BusTypeAta,	BusType1394,	BusTypeSsa,	BusTypeFibre,	BusTypeUsb,	BusTypeRAID,	BusTypeMaxReserved = 0x7F} STORAGE_BUS_TYPE, *PSTORAGE_BUS_TYPE;/* DEVICE_MEDIA_INFO.DeviceSpecific.DiskInfo.MediaCharacteristics constants */#define MEDIA_ERASEABLE                   0x00000001#define MEDIA_WRITE_ONCE                  0x00000002#define MEDIA_READ_ONLY                   0x00000004#define MEDIA_READ_WRITE                  0x00000008#define MEDIA_WRITE_PROTECTED             0x00000100#define MEDIA_CURRENTLY_MOUNTED           0x80000000typedef struct _DEVICE_MEDIA_INFO {  union {    struct {      LARGE_INTEGER  Cylinders;      STORAGE_MEDIA_TYPE  MediaType;      ULONG  TracksPerCylinder;      ULONG  SectorsPerTrack;      ULONG  BytesPerSector;      ULONG  NumberMediaSides;      ULONG  MediaCharacteristics;     } DiskInfo;    struct {      LARGE_INTEGER  Cylinders;      STORAGE_MEDIA_TYPE  MediaType;      ULONG  TracksPerCylinder;      ULONG  SectorsPerTrack;      ULONG  BytesPerSector;      ULONG  NumberMediaSides;      ULONG  MediaCharacteristics;     } RemovableDiskInfo;    struct {      STORAGE_MEDIA_TYPE  MediaType;      ULONG  MediaCharacteristics;       ULONG  CurrentBlockSize;      STORAGE_BUS_TYPE  BusType;      union {        struct {          UCHAR  MediumType;          UCHAR  DensityCode;        } ScsiInformation;      } BusSpecificData;    } TapeInfo;  } DeviceSpecific;} DEVICE_MEDIA_INFO, *PDEVICE_MEDIA_INFO;typedef struct _GET_MEDIA_TYPES {  ULONG  DeviceType;  ULONG  MediaInfoCount;  DEVICE_MEDIA_INFO  MediaInfo[1];} GET_MEDIA_TYPES, *PGET_MEDIA_TYPES;typedef struct _STORAGE_ADAPTER_DESCRIPTOR {  ULONG  Version;  ULONG  Size;  ULONG  MaximumTransferLength;  ULONG  MaximumPhysicalPages;  ULONG  AlignmentMask;  BOOLEAN  AdapterUsesPio;  BOOLEAN  AdapterScansDown;  BOOLEAN  CommandQueueing;  BOOLEAN  AcceleratedTransfer;  STORAGE_BUS_TYPE  BusType;  USHORT  BusMajorVersion;  USHORT  BusMinorVersion;} STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR;typedef struct _STORAGE_BUS_RESET_REQUEST {  UCHAR  PathId;} STORAGE_BUS_RESET_REQUEST, *PSTORAGE_BUS_RESET_REQUEST;typedef struct _STORAGE_DESCRIPTOR_HEADER {  ULONG  Version;  ULONG  Size;} STORAGE_DESCRIPTOR_HEADER, *PSTORAGE_DESCRIPTOR_HEADER;typedef struct _STORAGE_DEVICE_DESCRIPTOR {  ULONG  Version;  ULONG  Size;  UCHAR  DeviceType;  UCHAR  DeviceTypeModifier;  BOOLEAN  RemovableMedia;  BOOLEAN  CommandQueueing;  ULONG  VendorIdOffset;  ULONG  ProductIdOffset;  ULONG  ProductRevisionOffset;  ULONG  SerialNumberOffset;  STORAGE_BUS_TYPE  BusType;  ULONG  RawPropertiesLength;  UCHAR  RawDeviceProperties[1];} STORAGE_DEVICE_DESCRIPTOR, *PSTORAGE_DEVICE_DESCRIPTOR;typedef struct _STORAGE_DEVICE_ID_DESCRIPTOR {  ULONG  Version;  ULONG  Size;  ULONG  NumberOfIdentifiers;  UCHAR  Identifiers[1];} STORAGE_DEVICE_ID_DESCRIPTOR, *PSTORAGE_DEVICE_ID_DESCRIPTOR;typedef struct _STORAGE_DEVICE_NUMBER {  DEVICE_TYPE  DeviceType;  ULONG  DeviceNumber;  ULONG  PartitionNumber;} STORAGE_DEVICE_NUMBER, *PSTORAGE_DEVICE_NUMBER;typedef struct _STORAGE_PREDICT_FAILURE {  ULONG  PredictFailure;  UCHAR  VendorSpecific[512];} STORAGE_PREDICT_FAILURE, *PSTORAGE_PREDICT_FAILURE;typedef enum _STORAGE_PROPERTY_ID {  StorageDeviceProperty = 0,  StorageAdapterProperty,  StorageDeviceIdProperty} STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID;typedef enum _STORAGE_QUERY_TYPE {  PropertyStandardQuery = 0,   PropertyExistsQuery,   PropertyMaskQuery,   PropertyQueryMaxDefined } STORAGE_QUERY_TYPE, *PSTORAGE_QUERY_TYPE;typedef struct _STORAGE_PROPERTY_QUERY {  STORAGE_PROPERTY_ID  PropertyId;  STORAGE_QUERY_TYPE  QueryType;  UCHAR  AdditionalParameters[1];} STORAGE_PROPERTY_QUERY, *PSTORAGE_PROPERTY_QUERY;#ifdef __cplusplus}#endif#endif /* __NTDDSTOR_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -