/* INCLUDES *****************************************************************/
+#include <windows.h>
#include <ddk/ntddk.h>
#include <ntdll/rtl.h>
*
* REVISIONS
* 2000-08-10 ekohl
+ *
+ * @implemented
*/
BOOLEAN STDCALL
return(TRUE);
}
+/**********************************************************************
+ * NAME EXPORTED
+ * RtlGetNtVersionNumbers
+ *
+ * DESCRIPTION
+ * Get the version numbers of the run time library.
+ *
+ * ARGUMENTS
+ * major [OUT] Destination for the Major version
+ * minor [OUT] Destination for the Minor version
+ * build [OUT] Destination for the Build version
+ *
+ * RETURN VALUE
+ * Nothing.
+ *
+ * NOTE
+ * Introduced in Windows XP (NT5.1)
+ *
+ * @implemented
+ */
+
+void STDCALL
+RtlGetNtVersionNumbers(LPDWORD major, LPDWORD minor, LPDWORD build)
+{
+ PPEB pPeb = NtCurrentPeb();
+
+ if (major)
+ {
+ /* msvcrt.dll as released with XP Home fails in DLLMain() if the
+ * major version is not 5. So, we should never set a version < 5 ...
+ * This makes sense since this call didn't exist before XP anyway.
+ */
+ *major = pPeb->OSMajorVersion < 5 ? 5 : pPeb->OSMajorVersion;
+ }
+
+ if (minor)
+ {
+ *minor = pPeb->OSMinorVersion;
+ }
+
+ if (build)
+ {
+ /* FIXME: Does anybody know the real formula? */
+ *build = (0xF0000000 | pPeb->OSBuildNumber);
+ }
+}
+
/* EOF */