From f7ebeb58e2077154cf7f5a3584022e48d748a08b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Mon, 16 Mar 2026 10:50:30 +0800 Subject: [PATCH] Packages (Windows): prefers NT APIs --- src/detection/packages/packages.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/detection/packages/packages.c b/src/detection/packages/packages.c index 4e58b506d..9e7074b2a 100644 --- a/src/detection/packages/packages.c +++ b/src/detection/packages/packages.c @@ -47,13 +47,14 @@ bool ffPackagesReadCache(FFstrbuf* cacheDir, FFstrbuf* cacheContent, const char* } uint64_t mtime_current; - if (!GetFileTime(handle, NULL, NULL, (FILETIME*) &mtime_current)) + FILE_BASIC_INFORMATION fileInfo; + IO_STATUS_BLOCK iosb; + if (!NT_SUCCESS(NtQueryInformationFile(handle, &iosb, &fileInfo, sizeof(fileInfo), FileBasicInformation))) return false; - mtime_current = (mtime_current - 116444736000000000ull) / 10000ull; + if (fileInfo.LastWriteTime.QuadPart <= 116444736000000000ull) return false; - if (__builtin_expect(mtime_current == 0, false)) - return false; + mtime_current = (fileInfo.LastWriteTime.QuadPart - 116444736000000000ull) / 10000ull; #endif ffStrbufSet(cacheDir, &instance.state.platform.cacheDir);