#pragma once // Gercek Windows surum/build tespiti — GetVersionEx/VerifyVersionInfo uygulama // manifest'i "yalan soyletebildigi" (compatibility shimming) icin KULLANILMAZ. // RtlGetVersion (ntdll, dokumante degil ama 2009'dan beri kararli ve MS tarafindan // fiilen public ABI gibi davranilir) gercek build numarasini verir. Windows 11 // hala dwMajorVersion=10 raporlar; ayrim YALNIZCA build numarasiyla yapilir // (build >= 22000). CATIA calisma alani kesif/kayit/geri-yukleme akislarinin // Windows 10 / 11 dallanmasi bu tek tespit noktasina dayanir. #include #include namespace fiko { struct WindowsSurumBilgi { uint32_t majorSurum = 0; uint32_t minorSurum = 0; uint32_t build = 0; uint32_t ubr = 0; // UpdateBuildRevision (kayit defterinden; yoksa 0) bool tespitBasarili = false; bool windows11Mi = false; // build >= 22000 std::string ozet() const; // "Windows 11 (build 22631.3007)" gibi okunabilir metin }; // Surec omru boyunca bir kez hesaplanir (deger degismez); sonraki cagrilar ucuz. const WindowsSurumBilgi& windowsSurumTespitEt(); } // namespace fiko