SMART情報
OS:Windows7
VS2008 SP1
http://www.usefullcode.net/2007/02/hdd.htmlをみて
SMART情報を取得するプログラムを書いています
http://www.usefullcode.net/2007/02/hdd.htmlの下の方からプロジェクトがDLできて
試しにビルドして(通りました)
実行してみたのですが、
//OSによってCreateFile処理を変える
if(sVerInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
{
hIoCtrl = ::CreateFile(_T("\\\\.\\SMARTVSD"), 0,0,0,CREATE_NEW, 0, 0); //Windows 9x
}
else
{
CAtlString strDevice;
strDevice.Format(_T("\\\\.\\PhysicalDrive%d"),nDeviceNo);
hIoCtrl = ::CreateFile(strDevice,GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
int Error=0;
Error=GetLastError();
char DebugStr[256];
wsprintf(DebugStr,"Error=%d",Error);
MessageBox(NULL,DebugStr,"File Error",MB_OK);
}
if(hIoCtrl == INVALID_HANDLE_VALUE)
{
MessageBox(NULL,"hIoCtrl == INVALID_HANDLE_VALUE Error","hIoCtrl == INVALID_HANDLE_VALUE Error",MB_OK);
return false;//********ここでfalseでreturnされてしまう。*********
}
ここでCreateFileエラーがでてしまい(GetLastError=2です。)
falseでreturnされてしまい、うまくHDD情報が取得できません。
そもそもstrDevice.Format(_T("\\\\.\\PhysicalDrive%d"),nDeviceNo);の第一引数が_T("\\\\.\\PhysicalDrive%d")と指定されていますが、
ここには何を指定すべきなのでしょうか。これが分かればできそうな気がします。
お礼
お返事有難うございます。 実際に経験なさった諸氏の体験談は百冊の雑誌より貴重だと思ってます。 ワースト値(尖頭値)がデッドラインに近づいたら交換の準備・・・HD革命CopyDrive ver.1・・・なんか良いかなって思ってます。 RAID5は少々高いものですから・・・www