2 * PROJECT: ReactOS Kernel - Vista+ APIs
3 * LICENSE: GPL v2 - See COPYING in the top level directory
4 * FILE: lib/drivers/ntoskrnl_vista/rtl.c
5 * PURPOSE: Implementation of RtlIsNtDdiVersionAvailable and RtlIsServicePackVersionInstalled
6 * PROGRAMMERS: Pierre Schweitzer <pierre@reactos.org>
13 WdmlibRtlIsNtDdiVersionAvailable(
16 UNICODE_STRING ImportName
;
17 ULONG Major
, Minor
, Current
;
18 BOOLEAN (NTAPI
*pRtlIsNtDdiVersionAvailable
)(ULONG Version
);
20 /* Try to use ntoskrnl version if available */
21 RtlInitUnicodeString(&ImportName
, L
"RtlIsNtDdiVersionAvailable");
22 pRtlIsNtDdiVersionAvailable
= MmGetSystemRoutineAddress(&ImportName
);
23 if (pRtlIsNtDdiVersionAvailable
)
25 return pRtlIsNtDdiVersionAvailable(Version
);
28 /* Only provide OS version. No SP */
29 if (SPVER(Version
) || SUBVER(Version
))
34 /* Compute the version and compare */
37 PsGetVersion(&Major
, &Minor
, NULL
, NULL
);
38 Current
= (Minor
+ (Major
<< 8)) << 16;
40 return (Current
>= Version
);