--- /dev/null
+/*
+ * PROJECT: ReactOS Kernel - Vista+ APIs
+ * LICENSE: GPL v2 - See COPYING in the top level directory
+ * FILE: lib/drivers/ntoskrnl_vista/rtl.c
+ * PURPOSE: Implementation of RtlIsNtDdiVersionAvailable and RtlIsServicePackVersionInstalled
+ * PROGRAMMERS: Pierre Schweitzer <pierre@reactos.org>
+ */
+
+#include <ntdef.h>
+#include <ntifs.h>
+
+BOOLEAN
+WdmlibRtlIsNtDdiVersionAvailable(
+ _In_ ULONG Version)
+{
+ UNICODE_STRING ImportName;
+ ULONG Major, Minor, Current;
+ BOOLEAN (NTAPI *pRtlIsNtDdiVersionAvailable)(ULONG Version);
+
+ /* Try to use ntoskrnl version if available */
+ RtlInitUnicodeString(&ImportName, L"RtlIsNtDdiVersionAvailable");
+ pRtlIsNtDdiVersionAvailable = MmGetSystemRoutineAddress(&ImportName);
+ if (pRtlIsNtDdiVersionAvailable)
+ {
+ return pRtlIsNtDdiVersionAvailable(Version);
+ }
+
+ /* Only provide OS version. No SP */
+ if (SPVER(Version) || SUBVER(Version))
+ {
+ return FALSE;
+ }
+
+ /* Compute the version and compare */
+ Major = 0;
+ Minor = 0;
+ PsGetVersion(&Major, &Minor, NULL, NULL);
+ Current = (Minor + (Major << 8)) << 16;
+
+ return (Current >= Version);
+}