📄 ntdddisk.h
字号:
MEDIA_TYPE MediaType; ULONG TracksPerCylinder; ULONG SectorsPerTrack; ULONG BytesPerSector;} DISK_GEOMETRY, *PDISK_GEOMETRY;typedef struct _DISK_GEOMETRY_EX { DISK_GEOMETRY Geometry; LARGE_INTEGER DiskSize; UCHAR Data[1];} DISK_GEOMETRY_EX, *PDISK_GEOMETRY_EX;#define DiskGeometryGetPartition(Geometry) \ ((PDISK_PARTITION_INFO)((Geometry) + 1))#define DiskGeometryGetDetect(Geometry)\ ((PDISK_DETECTION_INFO)(((PBYTE)DiskGeometryGetPartition(Geometry) + \ DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))typedef struct _PARTITION_INFORMATION { LARGE_INTEGER StartingOffset; LARGE_INTEGER PartitionLength; DWORD HiddenSectors; DWORD PartitionNumber; BYTE PartitionType; BOOLEAN BootIndicator; BOOLEAN RecognizedPartition; BOOLEAN RewritePartition;} PARTITION_INFORMATION, *PPARTITION_INFORMATION;typedef struct _PARTITION_INFORMATION_GPT { GUID PartitionType; GUID PartitionId; ULONG64 Attributes; WCHAR Name [36];} PARTITION_INFORMATION_GPT, *PPARTITION_INFORMATION_GPT;typedef struct _DISK_PARTITION_INFO { ULONG SizeOfPartitionInfo; PARTITION_STYLE PartitionStyle; _ANONYMOUS_UNION union { struct { ULONG Signature; ULONG CheckSum; } Mbr; struct { GUID DiskId; } Gpt; } DUMMYUNIONNAME;} DISK_PARTITION_INFO, *PDISK_PARTITION_INFO;typedef struct _DISK_PERFORMANCE { LARGE_INTEGER BytesRead; LARGE_INTEGER BytesWritten; LARGE_INTEGER ReadTime; LARGE_INTEGER WriteTime; LARGE_INTEGER IdleTime; ULONG ReadCount; ULONG WriteCount; ULONG QueueDepth; ULONG SplitCount; LARGE_INTEGER QueryTime; ULONG StorageDeviceNumber; WCHAR StorageManagerName[8];} DISK_PERFORMANCE, *PDISK_PERFORMANCE;typedef struct _PARTITION_INFORMATION_EX { PARTITION_STYLE PartitionStyle; LARGE_INTEGER StartingOffset; LARGE_INTEGER PartitionLength; ULONG PartitionNumber; BOOLEAN RewritePartition; _ANONYMOUS_UNION union { PARTITION_INFORMATION_MBR Mbr; PARTITION_INFORMATION_GPT Gpt; } DUMMYUNIONNAME;} PARTITION_INFORMATION_EX, *PPARTITION_INFORMATION_EX;typedef struct _FORMAT_EX_PARAMETERS { MEDIA_TYPE MediaType; ULONG StartCylinderNumber; ULONG EndCylinderNumber; ULONG StartHeadNumber; ULONG EndHeadNumber; USHORT FormatGapLength; USHORT SectorsPerTrack; USHORT SectorNumber[1];} FORMAT_EX_PARAMETERS, *PFORMAT_EX_PARAMETERS;typedef struct _FORMAT_PARAMETERS { MEDIA_TYPE MediaType; ULONG StartCylinderNumber; ULONG EndCylinderNumber; ULONG StartHeadNumber; ULONG EndHeadNumber;} FORMAT_PARAMETERS, *PFORMAT_PARAMETERS;typedef struct _GET_LENGTH_INFORMATION { LARGE_INTEGER Length;} GET_LENGTH_INFORMATION, *PGET_LENGTH_INFORMATION;typedef struct _REASSIGN_BLOCKS { WORD Reserved; WORD Count; DWORD BlockNumber[1];} REASSIGN_BLOCKS, *PREASSIGN_BLOCKS;typedef struct _SET_PARTITION_INFORMATION { UCHAR PartitionType;} SET_PARTITION_INFORMATION, *PSET_PARTITION_INFORMATION;typedef SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION_MBR;typedef PARTITION_INFORMATION_GPT SET_PARTITION_INFORMATION_GPT;typedef struct _SET_PARTITION_INFORMATION_EX { PARTITION_STYLE PartitionStyle; _ANONYMOUS_UNION union { SET_PARTITION_INFORMATION_MBR Mbr; SET_PARTITION_INFORMATION_GPT Gpt; } DUMMYUNIONNAME;} SET_PARTITION_INFORMATION_EX, *PSET_PARTITION_INFORMATION_EX;typedef struct _VERIFY_INFORMATION { LARGE_INTEGER StartingOffset; DWORD Length;} VERIFY_INFORMATION, *PVERIFY_INFORMATION;typedef enum { EqualPriority, KeepPrefetchedData, KeepReadData} DISK_CACHE_RETENTION_PRIORITY;typedef struct _DISK_CACHE_INFORMATION { BOOLEAN ParametersSavable; BOOLEAN ReadCacheEnabled; BOOLEAN WriteCacheEnabled; DISK_CACHE_RETENTION_PRIORITY ReadRetentionPriority; DISK_CACHE_RETENTION_PRIORITY WriteRetentionPriority; USHORT DisablePrefetchTransferLength; BOOLEAN PrefetchScalar; _ANONYMOUS_UNION union { struct { USHORT Minimum; USHORT Maximum; USHORT MaximumBlocks; } ScalarPrefetch; struct { USHORT Minimum; USHORT Maximum; } BlockPrefetch; } DUMMYUNIONNAME;} DISK_CACHE_INFORMATION, *PDISK_CACHE_INFORMATION;typedef struct _DISK_GROW_PARTITION { ULONG PartitionNumber; LARGE_INTEGER BytesToGrow;} DISK_GROW_PARTITION, *PDISK_GROW_PARTITION;/* GETVERSIONINPARAMS.fCapabilities constants */#define CAP_ATA_ID_CMD 1#define CAP_ATAPI_ID_CMD 2#define CAP_SMART_CMD 4typedef struct _GETVERSIONINPARAMS { UCHAR bVersion; UCHAR bRevision; UCHAR bReserved; UCHAR bIDEDeviceMap; ULONG fCapabilities; ULONG dwReserved[4];} GETVERSIONINPARAMS, *PGETVERSIONINPARAMS, *LPGETVERSIONINPARAMS;/* IDEREGS.bCommandReg constants */#define ATAPI_ID_CMD 0xA1#define ID_CMD 0xEC#define SMART_CMD 0xB0#define SMART_CYL_LOW 0x4F#define SMART_CYL_HI 0xC2typedef struct _IDEREGS { UCHAR bFeaturesReg; UCHAR bSectorCountReg; UCHAR bSectorNumberReg; UCHAR bCylLowReg; UCHAR bCylHighReg; UCHAR bDriveHeadReg; UCHAR bCommandReg; UCHAR bReserved;} IDEREGS, *PIDEREGS, *LPIDEREGS;#include <pshpack1.h>typedef struct _SENDCMDINPARAMS { ULONG cBufferSize; IDEREGS irDriveRegs; UCHAR bDriveNumber; UCHAR bReserved[3]; ULONG dwReserved[4]; UCHAR bBuffer[1];} SENDCMDINPARAMS, *PSENDCMDINPARAMS, *LPSENDCMDINPARAMS;#include <poppack.h>/* DRIVERSTATUS.bDriverError constants */#define SMART_NO_ERROR 0#define SMART_IDE_ERROR 1#define SMART_INVALID_FLAG 2#define SMART_INVALID_COMMAND 3#define SMART_INVALID_BUFFER 4#define SMART_INVALID_DRIVE 5#define SMART_INVALID_IOCTL 6#define SMART_ERROR_NO_MEM 7#define SMART_INVALID_REGISTER 8#define SMART_NOT_SUPPORTED 9#define SMART_NO_IDE_DEVICE 10#define SMART_OFFLINE_ROUTINE_OFFLINE 0#define SMART_SHORT_SELFTEST_OFFLINE 1#define SMART_EXTENDED_SELFTEST_OFFLINE 2#define SMART_ABORT_OFFLINE_SELFTEST 127#define SMART_SHORT_SELFTEST_CAPTIVE 129#define SMART_EXTENDED_SELFTEST_CAPTIVE 130typedef struct _DRIVERSTATUS { UCHAR bDriverError; UCHAR bIDEError; UCHAR bReserved[2]; ULONG dwReserved[2];} DRIVERSTATUS, *PDRIVERSTATUS, *LPDRIVERSTATUS;#define READ_ATTRIBUTE_BUFFER_SIZE 512#define IDENTIFY_BUFFER_SIZE 512#define READ_THRESHOLD_BUFFER_SIZE 512#define SMART_LOG_SECTOR_SIZE 512#include <pshpack1.h>typedef struct _SENDCMDOUTPARAMS { ULONG cBufferSize; DRIVERSTATUS DriverStatus; UCHAR bBuffer[1];} SENDCMDOUTPARAMS, *PSENDCMDOUTPARAMS, *LPSENDCMDOUTPARAMS;#include <poppack.h>#define READ_ATTRIBUTES 0xD0#define READ_THRESHOLDS 0xD1#define ENABLE_DISABLE_AUTOSAVE 0xD2#define SAVE_ATTRIBUTE_VALUES 0xD3#define EXECUTE_OFFLINE_DIAGS 0xD4#define SMART_READ_LOG 0xD5#define SMART_WRITE_LOG 0xd6#define ENABLE_SMART 0xD8#define DISABLE_SMART 0xD9#define RETURN_SMART_STATUS 0xDA#define ENABLE_DISABLE_AUTO_OFFLINE 0xDB#ifdef __cplusplus}#endif#endif /* __NTDDDISK_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -