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ビルドのマイナーバージョンを取得する信頼性の高い方法はありますか?
に
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
の下でレジストリに保存されているが、 'HKEY_LOCAL_MACHINE \ソフトウェア\マイクロソフト\ Windows NTの\ CurrentVersion.UBR'正式のWindows API(または十分に近い)ですか? – bavazaこれはwinnt.hで定義されています:UNIFIEDBUILDREVISION_KEY L "\\レジストリ\\マシン\ソフトウェア\\マイクロソフト\\ Windows NT \\ CurrentVersion"、UNIFIEDBUILDREVISION_VALUE L "UBR" – magicandre1981
素晴らしい!ちょうど私が探していたもの。 – bavaza