开源ext2read代码走读之--“\\\\.\\PhysicalDrive0”意义

在ext2read中读取ext4文件系统的代码中,读取硬盘中的信息时,定义了以下的宏,那么这个宏是什么意思呢?

#define DEVICE “\\\\.\\PhysicalDrive0″是什么意思?

由于”\”是C/C+中转义符, “\\\\.\\”就相当于\\.\,那么以上的宏定义中的“\\\.\\PhysicalDrive0”就等价于“\\.\PhysicalDrive0”

在Windows中 \\.\ 前缀用于标识设备,其中的”.”表示本地计算机。
比如\\.\PhysicalDrive0表示本机的物理驱动器0(一般是主硬盘),
\\.\COM1表示本机的1号串行口。

本文为原创文章,转载请注明出处!

c 语言读取硬盘序列号

c++读取硬盘序列号:有时在将程序或者打包库提供给第三方时,为了防止传播泛滥,或者有一定的版权问题,需要绑定特定的计算机设备。此时就需要读取计算机的一些硬件资源(硬盘、cpu、bios等),来计算一个验证码,达到一机一码的目的。

软件查看硬盘序列号

借助diskgenius查看硬盘序列号,选中硬盘,即可看到在下方有序列号。不过貌似ssd和机械硬盘的序列号格式是不一样的

ssd: 12位序列号

机械硬盘: 8位序列号

c++实现读取硬盘序列号

参考资料

(https://msdn.microsoft.com/en-us/library/aa389273(v=vs.85)

代码实现

代码实现使用的是微软提供的wmi providers库, 读取不同硬件设备有不同的类,具体查看上面的msdn链接。

– 硬盘 [win32_physicalmemory class](https://msdn.microsoft.com/en-us/library/aa394346(v=vs.85)

– cpu [win32_processor class](https://msdn.microsoft.com/en-us/library/aa394373(v=vs.85)

– bios [win32_bios class](https://msdn.microsoft.com/en-us/library/aa394077(v=vs.85)

本文为原创文章,转载请注明出处!