Hi On Wed, Jul 27, 2022 at 5:35 PM Bin Meng <bmeng...@gmail.com> wrote:
> From: Bin Meng <bin.m...@windriver.com> > > This adds a helper to get the Windows version via the RtlGetVersion > call, for QEMU codes to determine the Windows version at run-time. > > Signed-off-by: Xuzhou Cheng <xuzhou.ch...@windriver.com> > Signed-off-by: Bin Meng <bin.m...@windriver.com> > --- > > (no changes since v1) > It looks like you are introducing new code, but in fact it's almost identical as the ga_get_win_version() function. Please do the move in the same patch. > include/sysemu/os-win32.h | 2 ++ > util/oslib-win32.c | 15 +++++++++++++++ > 2 files changed, 17 insertions(+) > > diff --git a/include/sysemu/os-win32.h b/include/sysemu/os-win32.h > index edc3b38a57..1e324026a4 100644 > --- a/include/sysemu/os-win32.h > +++ b/include/sysemu/os-win32.h > @@ -204,6 +204,8 @@ ssize_t qemu_recv_wrap(int sockfd, void *buf, size_t > len, int flags); > ssize_t qemu_recvfrom_wrap(int sockfd, void *buf, size_t len, int flags, > struct sockaddr *addr, socklen_t *addrlen); > > +void os_get_win_version(RTL_OSVERSIONINFOEXW *info); > + > #ifdef __cplusplus > } > #endif > diff --git a/util/oslib-win32.c b/util/oslib-win32.c > index 5723d3eb4c..6d2387b9ff 100644 > --- a/util/oslib-win32.c > +++ b/util/oslib-win32.c > @@ -547,3 +547,18 @@ int qemu_msync(void *addr, size_t length, int fd) > */ > return qemu_fdatasync(fd); > } > + > +void os_get_win_version(RTL_OSVERSIONINFOEXW *info) > +{ > + typedef LONG (WINAPI *rtl_get_version_t)(PRTL_OSVERSIONINFOEXW); > + > + /* RtlGetVersion is available starting with Windows 2000 */ > + HMODULE module = GetModuleHandle("ntdll"); > + PVOID fun = GetProcAddress(module, "RtlGetVersion"); > + rtl_get_version_t rtl_get_version = (rtl_get_version_t)fun; > + > + info->dwOSVersionInfoSize = sizeof(RTL_OSVERSIONINFOEXW); > + rtl_get_version(info); > + > + return; > +} > -- > 2.34.1 > > > -- Marc-André Lureau