ディスクの情報を取得(構造体/配列型)
smart_GetInfoStruct int1, int2, int3, var4, int5
int1 : 操作ハンドル(smart_Init()を実行して取得する) int2 : ディスク番号(0~) int3 : 取得したいディスク情報ID(INFO_LISTも参照) var4 : 情報が格納される変数 int5 : 変数のサイズ
(プラグイン / モジュール : hspsmart.dll)
ディスクの情報を取得します。(構造体/配列型)
ディスク番号は0番から始まり、最大数は smart_GetCount() で取得できます。
取得したいディスク情報ID は以下のものが指定できます。
INFO_IDENTIFYDEVICE // IDENTIFY_DEVICE 構造体取得
INFO_SMARTREADDATA // S.M.A.R.T. データ BYTE配列[512] 取得
INFO_SMARTREADTHRESHOLD // S.M.A.R.T. しきい値データ BYTE配列[512] 取得
INFO_ATTRIBUTE // SMART_ATTRIBUTE 構造体[30]取得(S.M.A.R.T.値)
INFO_THRESHOLD // SMART_THRESHOLD 構造体[30]取得(S.M.A.R.T.しきい値)
情報を格納する変数はあらかじめ初期化しておいてください。
必要なサイズは smart_GetInfoStructSize で取得できます。
成功すると、statが0になり、指定した変数に値が格納されます。
変数に格納される値はディスク情報IDによって違います。
戻り値
0 = 成功
-1 = 操作ハンドル無効
-2 = 引数エラー(ディスク番号が範囲外)
-3 = NULLポインタエラー
-4 = バッファ領域不足
-5 = 対応していないID
------------------------------------------------------------
// 構造体情報
struct IDENTIFY_DEVICE
{
WORD GeneralConfiguration; //0
WORD LogicalCylinders; //1 Obsolete
WORD SpecificConfiguration; //2
WORD LogicalHeads; //3 Obsolete
WORD Retired1[2]; //4-5
WORD LogicalSectors; //6 Obsolete
DWORD ReservedForCompactFlash; //7-8
WORD Retired2; //9
CHAR SerialNumber[20]; //10-19
WORD Retired3; //20
WORD BufferSize; //21 Obsolete
WORD Obsolute4; //22
CHAR FirmwareRev[8]; //23-26
CHAR Model[40]; //27-46
WORD MaxNumPerInterupt; //47
WORD Reserved1; //48
WORD Capabilities1; //49
WORD Capabilities2; //50
DWORD Obsolute5; //51-52
WORD Field88and7064; //53
WORD Obsolute6[5]; //54-58
WORD MultSectorStuff; //59
DWORD TotalAddressableSectors; //60-61
WORD Obsolute7; //62
WORD MultiWordDma; //63
WORD PioMode; //64
WORD MinMultiwordDmaCycleTime; //65
WORD RecommendedMultiwordDmaCycleTime; //66
WORD MinPioCycleTimewoFlowCtrl; //67
WORD MinPioCycleTimeWithFlowCtrl; //68
WORD Reserved2[6]; //69-74
WORD QueueDepth; //75
WORD SerialAtaCapabilities; //76
WORD SerialAtaAdditionalCapabilities; //77
WORD SerialAtaFeaturesSupported; //78
WORD SerialAtaFeaturesEnabled; //79
WORD MajorVersion; //80
WORD MinorVersion; //81
WORD CommandSetSupported1; //82
WORD CommandSetSupported2; //83
WORD CommandSetSupported3; //84
WORD CommandSetEnabled1; //85
WORD CommandSetEnabled2; //86
WORD CommandSetDefault; //87
WORD UltraDmaMode; //88
WORD TimeReqForSecurityErase; //89
WORD TimeReqForEnhancedSecure; //90
WORD CurrentPowerManagement; //91
WORD MasterPasswordRevision; //92
WORD HardwareResetResult; //93
WORD AcoustricManagement; //94
WORD StreamMinRequestSize; //95
WORD StreamingTimeDma; //96
WORD StreamingAccessLatency; //97
DWORD StreamingPerformance; //98-99
ULONGLONG MaxUserLba; //100-103
WORD StremingTimePio; //104
WORD Reserved3; //105
WORD SectorSize; //106
WORD InterSeekDelay; //107
WORD IeeeOui; //108
WORD UniqueId3; //109
WORD UniqueId2; //110
WORD UniqueId1; //111
WORD Reserved4[4]; //112-115
WORD Reserved5; //116
DWORD WordsPerLogicalSector; //117-118
WORD Reserved6[8]; //119-126
WORD RemovableMediaStatus; //127
WORD SecurityStatus; //128
WORD VendorSpecific[31]; //129-159
WORD CfaPowerMode1; //160
WORD ReservedForCompactFlashAssociation[7]; //161-167
WORD DeviceNominalFormFactor; //168
WORD DataSetManagement; //169
WORD AdditionalProductIdentifier[4]; //170-173
WORD Reserved7[2]; //174-175
CHAR CurrentMediaSerialNo[60]; //176-205
WORD SctCommandTransport; //206
WORD ReservedForCeAta1[2]; //207-208
WORD AlignmentOfLogicalBlocks; //209
DWORD WriteReadVerifySectorCountMode3; //210-211
DWORD WriteReadVerifySectorCountMode2; //212-213
WORD NvCacheCapabilities; //214
DWORD NvCacheSizeLogicalBlocks; //215-216
WORD NominalMediaRotationRate; //217
WORD Reserved8; //218
WORD NvCacheOptions1; //219
WORD NvCacheOptions2; //220
WORD Reserved9; //221
WORD TransportMajorVersionNumber; //222
WORD TransportMinorVersionNumber; //223
WORD ReservedForCeAta2[10]; //224-233
WORD MinimumBlocksPerDownloadMicrocode; //234
WORD MaximumBlocksPerDownloadMicrocode; //235
WORD Reserved10[19]; //236-254
WORD IntegrityWord; //255
};
typedef struct SMART_ATTRIBUTE
{
BYTE Id;
WORD StatusFlags;
BYTE CurrentValue;
BYTE WorstValue;
BYTE RawValue[6];
BYTE Reserved;
};
typedef struct SMART_THRESHOLD
{
BYTE Id;
BYTE ThresholdValue;
BYTE Reserved[10];
};
------------------------------------------------------------
size = smart_GetInfoStructSize(hSmart, 0, INFO_ATTRIBUTE) sdim buf, size smart_GetInfoStruct hSmart, 0, INFO_ATTRIBUTE, buf, size mes stat
| smart_GetInfoStructSize | 構造体/配列型情報の格納に必要なサイズを取得 | (hspsmart.dll) |
| INFO_LIST | 取得可能なディスク情報ID一覧 | (hspsmart.dll) |
| プラグイン / モジュール | hspsmart.dll |
| バージョン | 1.11(CrystalDiskInfo 8.2.3) |
| 作成日 | 2019/08/12 |
| 著作者 | Copyright (C) 2008-2019 hiyohiyo (CrystalDiskInfo作者様)
Copyright (C) 2013-2019 イノビア (hspsmart.dll 作成) |
| URL | https://hsp.moe/
https://crystalmark.info/ |
| 備考 | 本プラグインはCrystalDiskInfoのソースコードを使用しております。 |
| グループ | hspsmart.dll |
| 対応環境 |
|
| 移植のヒント | 64bit版を使用する場合は、
#runtime "hsp3_64" #include "hspsmart64.as" を先頭に記述してください。 |
| hs ファイル | hsphelp\hspsmart.hs |