ディスクの情報を取得(構造体/配列型)
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 |