2017-12-21 31 views
0

an issue with Windows 10 Version 1709のためにBluetooth低エネルギーライブラリを作成しましたが、これはOSビルド16299.125以上(KB4054517のアップデートで修正済み)でのみ動作します。以前のバージョンでは、BLEデバイスは誤動作し、誤った接続表示をします。Windows 10 OSビルドマイナーバージョンの検出

したがって、クライアントマシンでこのアップデートが存在するかどうかをチェックし、バージョンが低すぎる場合は がライブラリの実行を妨げます。

私はthis SO answerに続き、RtlGetVersion()を使用してOSバージョンを取得しました。しかし、私が知る限り、返された構造のフィールドにはビルドバージョンのマイナー部分(たとえば、 '16299.125'の '125')、AKA 'ビルドリビジョンの更新'またはUBRが含まれていません。

これは、拡張構造(RTL_OSVERSIONINFOEXW)を使用してRtlGetVersion()を呼び出す場合にも当てはまります。

OSビルドのマイナーバージョンを取得する信頼性の高い方法はありますか?

答えて

0

このUBR値がDWORD which you can query

enter image description here

+0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersionの下でレジストリに保存されているが、 'HKEY_LOCAL_MACHINE \ソフトウェア\マイクロソフト\ Windows NTの\ CurrentVersion.UBR'正式のWindows API(または十分に近い)ですか? – bavaza

+1

これはwinnt.hで定義されています:UNIFIEDBUILDREVISION_KEY L "\\レジストリ\\マシン\ソフトウェア\\マイクロソフト\\ Windows NT \\ CurrentVersion"、UNIFIEDBUILDREVISION_VALUE L "UBR" – magicandre1981

+0

素晴らしい!ちょうど私が探していたもの。 – bavaza

関連する問題