[原创]两种获取硬盘序列号的方法. 您所在的位置:网站首页 delphi获取硬盘序列号 [原创]两种获取硬盘序列号的方法.

[原创]两种获取硬盘序列号的方法.

2024-02-17 06:43| 来源: 网络整理| 查看: 265

您厉害,您无敌!但我该说的还是要说,方法二的确烂大街,这是事实。不知道为什么贴个代码都能刺痛您的某根神经?

如果您认为我在嘲讽您,那是您想多了。我没有您厉害,但十几年前我在网上搜索获取硬盘序列号,看到的的确都是方法二的代码。

如果您认为我是在扯淡,我只能告诉您,我回帖不是随随便便贴点代码就完事:

IOCTL_STORAGE_QUERY_PROPERTY 数值完全匹配 wprintf(L"0x%08X\n", IOCTL_STORAGE_QUERY_PROPERTY ); // 0x002D1400 STORAGE_PROPERTY_QUERY 结构体 12 个字节,前两个字节刚好都是 0,第三个字节无用数据。 typedef struct _STORAGE_PROPERTY_QUERY { STORAGE_PROPERTY_ID PropertyId; STORAGE_QUERY_TYPE QueryType; BYTE AdditionalParameters[1]; // 对齐到 4 字节 } STORAGE_PROPERTY_QUERY; STORAGE_PROPERTY_QUERY spq; spq.PropertyId = StorageDeviceProperty; // StorageDeviceProperty == 0 spq.QueryType = PropertyStandardQuery; // PropertyStandardQuery == 0 STORAGE_DEVICE_DESCRIPTOR 的几个重要偏移量都没问题,您备注错的刚好也没用上: typedef struct _STORAGE_DEVICE_DESCRIPTOR { // 这边是您给出的数据结构 DWORD Version; // ULONG of_name1; //名称1偏移 DWORD Size; // ULONG unknown1[3]; //未知数据 BYTE DeviceType; BYTE DeviceTypeModifier; BOOLEAN RemovableMedia; BOOLEAN CommandQueueing; DWORD VendorIdOffset; DWORD ProductIdOffset; // ULONG of_name2; //名称2偏移 DWORD ProductRevisionOffset; // ULONG of_FirmwareRev; // 固件版本偏移 DWORD SerialNumberOffset; // ULONG of_SerialNumber; // 序列号偏移 STORAGE_BUS_TYPE BusType; // ULONG unknown2; //未知数据 DWORD RawPropertiesLength; BYTE RawDeviceProperties[1]; } STORAGE_DEVICE_DESCRIPTOR;

我的说完了。咱承认咱讲话不太中听,水平不如您,但首先咱不讲脏话。但您这态度,还是贴吧比较适合您,别在这里拉低程序员的整体素质。

最后于 2019-9-26 22:30 被Xenophon编辑 ,原因:


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有