-/* $Id:$\r
- *\r
- * COPYRIGHT: See COPYING in the top level directory\r
- * PROJECT: ReactOS kernel\r
- * FILE: ntoskrnl/rtl/misc.c\r
- * PURPOSE: Various functions\r
- * \r
- * PROGRAMMERS: Hartmut Birr\r
- */\r
-\r
-/* INCLUDES *****************************************************************/\r
-\r
-#include <ntoskrnl.h>\r
-#define NDEBUG\r
-#include <internal/debug.h>\r
-\r
-/* GLOBALS *******************************************************************/\r
-\r
-extern ULONG NtGlobalFlag;\r
-extern ULONG NtMajorVersion;\r
-extern ULONG NtMinorVersion;\r
-extern ULONG NtOSCSDVersion;\r
-\r
-/* header hell made me do this...sorry */\r
-typedef struct _OSVERSIONINFOW {\r
- DWORD dwOSVersionInfoSize;\r
- DWORD dwMajorVersion;\r
- DWORD dwMinorVersion;\r
- DWORD dwBuildNumber;\r
- DWORD dwPlatformId;\r
- WCHAR szCSDVersion[ 128 ];\r
-} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW;\r
-\r
-typedef struct _OSVERSIONINFOEXW {\r
- DWORD dwOSVersionInfoSize;\r
- DWORD dwMajorVersion;\r
- DWORD dwMinorVersion;\r
- DWORD dwBuildNumber;\r
- DWORD dwPlatformId;\r
- WCHAR szCSDVersion[ 128 ];\r
- WORD wServicePackMajor;\r
- WORD wServicePackMinor;\r
- WORD wSuiteMask;\r
- BYTE wProductType;\r
- BYTE wReserved;\r
-} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;\r
-\r
-#ifndef VER_PLATFORM_WIN32_NT\r
-#define VER_PLATFORM_WIN32_NT (2)\r
-#endif\r
-\r
-/* FUNCTIONS *****************************************************************/\r
-\r
-/*\r
-* @implemented\r
-*/\r
-ULONG\r
-STDCALL\r
-RtlGetNtGlobalFlags(VOID)\r
-{\r
- return(NtGlobalFlag);\r
-}\r
-\r
-\r
-/*\r
-* @implemented\r
-*/\r
-NTSTATUS STDCALL\r
-RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation)\r
-{\r
- if (lpVersionInformation->dwOSVersionInfoSize == sizeof(RTL_OSVERSIONINFOW) ||\r
- lpVersionInformation->dwOSVersionInfoSize == sizeof(RTL_OSVERSIONINFOEXW))\r
- {\r
- lpVersionInformation->dwMajorVersion = NtMajorVersion;\r
- lpVersionInformation->dwMinorVersion = NtMinorVersion;\r
- lpVersionInformation->dwBuildNumber = NtBuildNumber;\r
- lpVersionInformation->dwPlatformId = VER_PLATFORM_WIN32_NT;\r
- if(((NtOSCSDVersion >> 8) & 0xFF) != 0)\r
- {\r
- int i = _snwprintf(lpVersionInformation->szCSDVersion,\r
- (sizeof(lpVersionInformation->szCSDVersion) / sizeof(lpVersionInformation->szCSDVersion[0])) - 1,\r
- L"Service Pack %d",\r
- ((NtOSCSDVersion >> 8) & 0xFF));\r
- lpVersionInformation->szCSDVersion[i] = L'\0';\r
- }\r
- else\r
- {\r
- RtlZeroMemory(lpVersionInformation->szCSDVersion, sizeof(lpVersionInformation->szCSDVersion));\r
- }\r
- if (lpVersionInformation->dwOSVersionInfoSize == sizeof(OSVERSIONINFOEXW))\r
- {\r
- RTL_OSVERSIONINFOEXW *InfoEx = (RTL_OSVERSIONINFOEXW *)lpVersionInformation;\r
- InfoEx->wServicePackMajor = (NtOSCSDVersion >> 8) & 0xFF;\r
- InfoEx->wServicePackMinor = NtOSCSDVersion & 0xFF;\r
- InfoEx->wSuiteMask = SharedUserData->SuiteMask;\r
- InfoEx->wProductType = SharedUserData->NtProductType;\r
- }\r
-\r
- return STATUS_SUCCESS;\r
- }\r
-\r
- return STATUS_INVALID_PARAMETER;\r
-}\r
-\r
+/* $Id:$
+ *
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS kernel
+ * FILE: ntoskrnl/rtl/misc.c
+ * PURPOSE: Various functions
+ *
+ * PROGRAMMERS: Hartmut Birr
+ */
+
+/* INCLUDES *****************************************************************/
+
+#include <ntoskrnl.h>
+#define NDEBUG
+#include <internal/debug.h>
+
+/* GLOBALS *******************************************************************/
+
+extern ULONG NtGlobalFlag;
+extern ULONG NtMajorVersion;
+extern ULONG NtMinorVersion;
+extern ULONG NtOSCSDVersion;
+
+/* header hell made me do this...sorry */
+typedef struct _OSVERSIONINFOW {
+ DWORD dwOSVersionInfoSize;
+ DWORD dwMajorVersion;
+ DWORD dwMinorVersion;
+ DWORD dwBuildNumber;
+ DWORD dwPlatformId;
+ WCHAR szCSDVersion[ 128 ];
+} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW;
+
+typedef struct _OSVERSIONINFOEXW {
+ DWORD dwOSVersionInfoSize;
+ DWORD dwMajorVersion;
+ DWORD dwMinorVersion;
+ DWORD dwBuildNumber;
+ DWORD dwPlatformId;
+ WCHAR szCSDVersion[ 128 ];
+ WORD wServicePackMajor;
+ WORD wServicePackMinor;
+ WORD wSuiteMask;
+ BYTE wProductType;
+ BYTE wReserved;
+} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;
+
+#ifndef VER_PLATFORM_WIN32_NT
+#define VER_PLATFORM_WIN32_NT (2)
+#endif
+
+/* FUNCTIONS *****************************************************************/
+
+/*
+* @implemented
+*/
+ULONG
+STDCALL
+RtlGetNtGlobalFlags(VOID)
+{
+ return(NtGlobalFlag);
+}
+
+
+/*
+* @implemented
+*/
+NTSTATUS STDCALL
+RtlGetVersion(IN OUT PRTL_OSVERSIONINFOW lpVersionInformation)
+{
+ if (lpVersionInformation->dwOSVersionInfoSize == sizeof(RTL_OSVERSIONINFOW) ||
+ lpVersionInformation->dwOSVersionInfoSize == sizeof(RTL_OSVERSIONINFOEXW))
+ {
+ lpVersionInformation->dwMajorVersion = NtMajorVersion;
+ lpVersionInformation->dwMinorVersion = NtMinorVersion;
+ lpVersionInformation->dwBuildNumber = NtBuildNumber;
+ lpVersionInformation->dwPlatformId = VER_PLATFORM_WIN32_NT;
+ if(((NtOSCSDVersion >> 8) & 0xFF) != 0)
+ {
+ int i = _snwprintf(lpVersionInformation->szCSDVersion,
+ (sizeof(lpVersionInformation->szCSDVersion) / sizeof(lpVersionInformation->szCSDVersion[0])) - 1,
+ L"Service Pack %d",
+ ((NtOSCSDVersion >> 8) & 0xFF));
+ lpVersionInformation->szCSDVersion[i] = L'\0';
+ }
+ else
+ {
+ RtlZeroMemory(lpVersionInformation->szCSDVersion, sizeof(lpVersionInformation->szCSDVersion));
+ }
+ if (lpVersionInformation->dwOSVersionInfoSize == sizeof(OSVERSIONINFOEXW))
+ {
+ RTL_OSVERSIONINFOEXW *InfoEx = (RTL_OSVERSIONINFOEXW *)lpVersionInformation;
+ InfoEx->wServicePackMajor = (NtOSCSDVersion >> 8) & 0xFF;
+ InfoEx->wServicePackMinor = NtOSCSDVersion & 0xFF;
+ InfoEx->wSuiteMask = SharedUserData->SuiteMask;
+ InfoEx->wProductType = SharedUserData->NtProductType;
+ }
+
+ return STATUS_SUCCESS;
+ }
+
+ return STATUS_INVALID_PARAMETER;
+}
+