From 10b2fe13bd6c6bcf7e23c47091d11b869a04f7a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Thu, 4 Jan 2024 16:19:47 +0800 Subject: [PATCH] Battery (Windows): detect serial number --- src/detection/battery/battery_windows.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/detection/battery/battery_windows.c b/src/detection/battery/battery_windows.c index 9deea532c..81e78162e 100644 --- a/src/detection/battery/battery_windows.c +++ b/src/detection/battery/battery_windows.c @@ -105,6 +105,14 @@ static const char* detectWithSetupApi(FFBatteryOptions* options, FFlist* results ffStrbufSetWS(&battery->manufacturer, name); } + { + ffStrbufInit(&battery->serial); + bqi.InformationLevel = BatterySerialNumber; + wchar_t name[64]; + if(DeviceIoControl(hBattery, IOCTL_BATTERY_QUERY_INFORMATION, &bqi, sizeof(bqi), name, sizeof(name), &dwOut, NULL)) + ffStrbufSetWS(&battery->serial, name); + } + battery->cycleCount = bi.CycleCount; battery->temperature = 0.0/0.0; @@ -150,6 +158,7 @@ static const char* detectWithNtApi(FF_MAYBE_UNUSED FFBatteryOptions* options, FF ffStrbufInit(&battery->manufacturer); ffStrbufInit(&battery->technology); ffStrbufInit(&battery->status); + ffStrbufInit(&battery->serial); battery->temperature = FF_BATTERY_TEMP_UNSET; battery->cycleCount = 0;