ReactOS 0.4.15-dev-7842-g558ab78
rtl.c File Reference
#include <ntdef.h>
#include <ntifs.h>
Include dependency graph for rtl.c:

Go to the source code of this file.

Functions

BOOLEAN WdmlibRtlIsNtDdiVersionAvailable (_In_ ULONG Version)
 

Function Documentation

◆ WdmlibRtlIsNtDdiVersionAvailable()

BOOLEAN WdmlibRtlIsNtDdiVersionAvailable ( _In_ ULONG  Version)

Definition at line 13 of file rtl.c.

15{
16 UNICODE_STRING ImportName;
17 ULONG Major, Minor, Current;
18 BOOLEAN (NTAPI *pRtlIsNtDdiVersionAvailable)(ULONG Version);
19
20 /* Try to use ntoskrnl version if available */
21 RtlInitUnicodeString(&ImportName, L"RtlIsNtDdiVersionAvailable");
22 pRtlIsNtDdiVersionAvailable = MmGetSystemRoutineAddress(&ImportName);
23 if (pRtlIsNtDdiVersionAvailable)
24 {
25 return pRtlIsNtDdiVersionAvailable(Version);
26 }
27
28 /* Only provide OS version. No SP */
29 if (SPVER(Version) || SUBVER(Version))
30 {
31 return FALSE;
32 }
33
34 /* Compute the version and compare */
35 Major = 0;
36 Minor = 0;
37 PsGetVersion(&Major, &Minor, NULL, NULL);
38 Current = (Minor + (Major << 8)) << 16;
39
40 return (Current >= Version);
41}
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
#define PsGetVersion(a, b, c, d)
Definition: env_spec_w32.h:83
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define L(x)
Definition: ntvdm.h:50
#define BOOLEAN
Definition: pedump.c:73
#define SUBVER(Version)
Definition: sdkddkver.h:144
#define SPVER(Version)
Definition: sdkddkver.h:143
PVOID NTAPI MmGetSystemRoutineAddress(IN PUNICODE_STRING SystemRoutineName)
Definition: sysldr.c:3604
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469
_Out_opt_ PULONG Minor
Definition: cmfuncs.h:44