串口硬盘物理序列号C++代码.

求读取串口硬盘物理序列号C++代码,要带头文件和链接库的,最好有完整工程.
我的邮箱 [email protected]
我是用VC6.0,能不能具体点,最好有完整工程.还可以加分啊. 呵呵,有7个错误啊,都在第一句 LPHDD __stdcall GetHDDInfo(LPHDD pDisks,int nCount)
(4) : error C2143: syntax error : missing ';' before '__stdcall'
(4) : error C2501: 'LPHDD' : missing storage-class or type specifiers
(4) : error C2146: syntax error : missing ')' before identifier 'pDisks'
(4) : warning C4229: anachronism used : modifiers on data are ignored
(4) : error C2501: 'GetHDDInfo' : missing storage-class or type specifiers
(4) : error C2059: syntax error : ')'
(5) : error C2143: syntax error : missing ';' before '{'
(5) : error C2447: missing function header (old-style formal list?)

用WinIO。
-----------------------

#include "WinIo.h"
LPHDD __stdcall GetHDDInfo(LPHDD pDisks,int nCount)
{
if(!InitializeWinIo() || pDisks==NULL)
return NULL;
DWORD dwOldProcessP = GetPriorityClass(GetCurrentProcess());
DWORD dwOldThreadP = GetThreadPriority(GetCurrentThread());
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);

//AnsiString idename[2] = {"IDE0","IDE1"}, diskname[2] = {"主盘","从盘"};
unsigned short params[256]; char str[256];
int i=0;
for(int pn=0; pn<2; pn++) //primary or secondary
{
for(int dn=0; dn<2; dn++) //master or slave
{
if(++i>nCount)
break;
if(ReadHddParams(params,pn,dn))
{
pDisks[i-1].IDE=pn;
pDisks[i-1].PS=dn;
WordToStr(str,params+27,20);
strcpy(pDisks[i-1].strModel,str);
WordToStr(str,params+10,10);
strcpy(pDisks[i-1].strSN,str);
WordToStr(str,params+23, 4);
strcpy(pDisks[i-1].strVersion,str);
unsigned long LbaCap = *(unsigned long *)(¶ms[60])/2048;
unsigned long NomCap = ((unsigned long)(params[1])*(params[3])*(params[6]))/2048;
pDisks[i-1].nSize=LbaCap>NomCap?LbaCap:NomCap;
pDisks[i-1].nCylinder= params[1];
pDisks[i-1].nHeader= params[3];
pDisks[i-1].nSector= params[6];
pDisks[i-1].bDMA= params[49]&0x0100; //D8:是否支持DMA
pDisks[i-1].bLBA= params[49]&0x0200; //D9:是否支持LBA
pDisks[i-1].nCache= params[21]>>1;
pDisks[i-1].nECC= params[22];
}
//else
//{
//该位置上没有硬盘
//}
}
}

SetThreadPriority(GetCurrentThread(), dwOldThreadP);
SetPriorityClass(GetCurrentProcess(), dwOldProcessP);
ShutdownWinIo();
return pDisks;
}

对得起你这20分了吧。。
--------------------------------
哥们多看点书。。我给的不是便当,不是直接copy过去就能用的。
温馨提示:答案为网友推荐,仅供参考