2017-12-21 67 views
0

an issue with Windows 10 Version 1709으로 인해 블루투스 저에너지 라이브러리를 생성했으며, OS 빌드 16299.125 이상 (KB4054517 업데이트에서 수정 됨)에서만 작동합니다. 이전 버전의 경우 BLE 장치가 오작동하고 잘못된 연결 표시가 나타납니다.Windows 10 OS 빌드 마이너 버전 감지

따라서이 클라이언트 컴퓨터에이 업데이트가 있는지 확인하고 버전이 너무 낮 으면 라이브러리가 실행되지 않도록하고 싶습니다.

나는 this SO answer을 따라 갔고 RtlGetVersion()을 사용하여 OS 버전을 얻었습니다. 그러나 내가 알 수있는 한 반환 된 구조의 필드에는 빌드 버전의 일부 (예 : '16299.125'의 '125'), AKA '빌드 수정 버전 업데이트'또는 UBR이 포함되지 않습니다.

확장 구조 (RTL_OSVERSIONINFOEXW)를 사용하여 RtlGetVersion()을 호출 할 때에도 마찬가지입니다.

OS 빌드의 부 버전을 안정적으로 얻을 수있는 방법이 있습니까?

답변

0

이 UBR 값은 which you can query

enter image description here

+0

는'HKEY_LOCAL_MACHINE의 \ 마이크로 소프트 \ 윈도우 NT \ CurrentVersion.UBR' \ SOFTWARE 공식 윈도우 API를 (또는 충분히 가까이) 인 DWORD에 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion 아래 레지스트리에 저장됩니다? – bavaza

+1

이것은 winnt.h에 정의되어 있습니다. UNIFIEDBUILDREVISION_KEY L "\\ 레지스트리 \\ 컴퓨터 \ 소프트웨어 \\ Microsoft \\ Windows NT \\ CurrentVersion", UNIFIEDBUILDREVISION_VALUE L "UBR" – magicandre1981

+0

위대한! 내가 찾고 있던 바로 그거야. – bavaza