From f4e683fc6bd6ac76f9979f49d737588b6ddf16b0 Mon Sep 17 00:00:00 2001 From: gcontini <1121667+gcontini@users.noreply.github.com> Date: 周六, 14 11月 2020 22:13:13 +0800 Subject: [PATCH] windows smbios --- src/library/hw_identifier/disk_strategy.cpp | 18 +++++++----------- 1 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/library/hw_identifier/disk_strategy.cpp b/src/library/hw_identifier/disk_strategy.cpp index 5e50761..c93f559 100644 --- a/src/library/hw_identifier/disk_strategy.cpp +++ b/src/library/hw_identifier/disk_strategy.cpp @@ -13,17 +13,16 @@ namespace hw_identifier { static array<uint8_t, HW_IDENTIFIER_PROPRIETARY_DATA> generate_id_by_sn(const DiskInfo &disk_info) { - array<uint8_t, HW_IDENTIFIER_PROPRIETARY_DATA> a_disk_id; - a_disk_id.fill(0); - size_t size = min(a_disk_id.size(), sizeof(disk_info.disk_sn)); + array<uint8_t, HW_IDENTIFIER_PROPRIETARY_DATA> a_disk_id = {}; + size_t size = min((size_t) HW_IDENTIFIER_PROPRIETARY_DATA, + sizeof(disk_info.disk_sn)); memcpy(&a_disk_id[0], disk_info.disk_sn, size); return a_disk_id; } static array<uint8_t, HW_IDENTIFIER_PROPRIETARY_DATA> generate_id_by_label(const DiskInfo &disk_info) { - array<uint8_t, HW_IDENTIFIER_PROPRIETARY_DATA> a_disk_id; - a_disk_id.fill(0); + array<uint8_t, HW_IDENTIFIER_PROPRIETARY_DATA> a_disk_id = {}; strncpy((char *)&a_disk_id[0], disk_info.label, a_disk_id.size() - 1); return a_disk_id; } @@ -31,7 +30,7 @@ static FUNCTION_RETURN generate_disk_pc_id(vector<array<uint8_t, HW_IDENTIFIER_PROPRIETARY_DATA>> &v_disk_id) { std::vector<DiskInfo> disk_infos; FUNCTION_RETURN result_diskinfos = getDiskInfos(disk_infos); - if (result_diskinfos != FUNC_RET_OK && result_diskinfos != FUNC_RET_BUFFER_TOO_SMALL) { + if (result_diskinfos != FUNC_RET_OK) { return result_diskinfos; } if (disk_infos.size() == 0) { @@ -41,7 +40,7 @@ v_disk_id.reserve(disk_infos.size() * 2); for (int j = 0; j < 2; j++) { bool preferred = (j == 0); - for (unsigned int i = 0; i < disk_infos.size(); i++) { + for (size_t i = 0; i < disk_infos.size(); i++) { if (disk_infos[i].preferred == preferred) { if (disk_infos[i].sn_initialized) { array<uint8_t, HW_IDENTIFIER_PROPRIETARY_DATA> a_disk_id = generate_id_by_sn(disk_infos[i]); @@ -51,13 +50,10 @@ array<uint8_t, HW_IDENTIFIER_PROPRIETARY_DATA> l_disk_id = generate_id_by_label(disk_infos[i]); v_disk_id.push_back(l_disk_id); } - if (preferred) { - break; - } } } } - return FUNC_RET_OK; + return v_disk_id.size() > 0 ? FUNC_RET_OK : FUNC_RET_NOT_AVAIL; } DiskStrategy::~DiskStrategy() {} -- Gitblit v1.9.1