如何获得SATA硬盘的序列号 通过MS的S.M.A.R.T.接口,我们可以直接从RING3调用API DeviceIoControl()来获取IDE硬盘信息,可是,如果是SATA硬盘,该怎么办呢?非常急啊,先感谢各位高手了........ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BOOL GetVolumeInformation( LPCTSTR lpRootPathName, LPTSTR lpVolumeNameBuffer, DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, LPTSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize); DWORD dwIDESerial; CString str; GetVolumeInformation("C:\\",NULL,NULL,&dwIDESerial,NULL,NULL,NULL,NULL); str.Format( "硬盘序列号: %X - %X",HIWORD(dwIDESerial),LOWORD(dwIDESerial)); AfxMessageBox(str); http://dev.csdn.net/develop/article/17/17097.shtm以上提供的方法不权可以获得IDE硬盘的序列号,也可以获得SATA硬盘的序列号。 按照Windows的结构,SATA硬盘也已经在HAL层抽象过了,如果GetVolumeInformation能得到的PATA的序列号,也就能得到SATA的序列号。 对DeviceIoControl()应该也同理。 一样可以的,DeviceIoControl 的 CTL_CODE 只与驱动有关 关于_UNICODE 关于保存问题 我在_tWinMain里面开线程发送,发送完成后希望调用当前com的连接点函数Fire_SendBack把结果发送给调用客户程序.怎么实现? dll里面如何初始化ado阿? 菜鸟的问题。 如何通过ID得到控件的柄句? 请问哪有msdn下载的? 高分求一段代码(调用Excel宏) 在程序中怎么实现软键盘? 求救!请教高手VC里如何产生一个类似ToolBar的可任意停靠的东西? WANT RETURN选项是WHAT意思? 我的程序通过ODBC可以访问SQL SERVER和ACCESS和数据库,但有些SQL语句不能通用?
LPCTSTR lpRootPathName,
LPTSTR lpVolumeNameBuffer,
DWORD nVolumeNameSize,
LPDWORD lpVolumeSerialNumber,
LPDWORD lpMaximumComponentLength,
LPDWORD lpFileSystemFlags,
LPTSTR lpFileSystemNameBuffer,
DWORD nFileSystemNameSize
);
CString str;
GetVolumeInformation("C:\\",NULL,NULL,&dwIDESerial,NULL,NULL,NULL,NULL);
str.Format( "硬盘序列号: %X - %X",HIWORD(dwIDESerial),LOWORD(dwIDESerial));
AfxMessageBox(str);