在Windows Driver層級的環境下取得時區差值與日光節約時間開啟與否

閱讀時間約 3 分鐘

因為某種因素,小弟必須要在Windows Driver層級,透過EWDK或WDK的環境下取得時區差值與日光節約時間開啟與否。不過KUSER_SHARED_DATA (ntddk.h) - Windows drivers | Microsoft Learn裡面寫得不清不楚,實在很難讓人聯想到其實Time Zone ID就是GetTimeZoneInformation 函式 (timezoneapi.h) - Win32 apps | Microsoft Learn裡面的定義。小弟一開始還以為是Time Zone IDs (Compact 2013) | Microsoft Learn,想不到一點關係都沒有,白花了一點時間研究。

這就是標準的江湖一點訣,說破不值錢的例子,把一些研究結果記錄下來,以後可以少走一些冤枉路~


#include <ntddk.h>
#include <wdm.h>
#include <wdf.h>

#define TIME_ZONE_ID_UNKNOWN 0
#define TIME_ZONE_ID_STANDARD 1
#define TIME_ZONE_ID_DAYLIGHT 2

BOOLEAN IsDaylightSavingTimeEnabled()
{
// Read the time zone ID
ULONG timeZoneId = SharedUserData->TimeZoneId;

// Determine if daylight saving time is enabled
BOOLEAN isDaylightSavingTimeEnabled = (timeZoneId == (ULONG)TIME_ZONE_ID_DAYLIGHT);

return isDaylightSavingTimeEnabled;
}

LONG GetTimezoneOffset()
{
LARGE_INTEGER systemTime;
LARGE_INTEGER localTime;

// Get system time
KeQuerySystemTime(&systemTime);

// Convert to local time
ExSystemTimeToLocalTime(&systemTime, &localTime);

// Calculate the time zone offset (in minutes)
LONG timezoneOffset = (LONG)((systemTime.QuadPart - localTime.QuadPart) / 600000000);

return timezoneOffset;
}


也許可以參考這個登錄機碼設定值,是否更直觀地解決問題。


[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\TimeZoneInformation]
"RealTimeIsUniversal"=QWORD:00000001
avatar-img
4會員
9內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液