ReactOS 0.4.15-dev-8344-g0574987
CrossNt.h
Go to the documentation of this file.
1#ifndef __CROSS_VERSION_LIB_NT__H__
2#define __CROSS_VERSION_LIB_NT__H__
3
4extern "C" {
5
6#pragma pack(push, 8)
7
8#if !defined(NT_INCLUDED)
9#include <ntddk.h> // various NT definitions
10#endif
11
12#include <stddef.h>
13#include <string.h>
14#include <stdarg.h>
15#include <stdio.h>
16#include "ntddk_ex.h"
17#include "tools.h"
18
19#include "rwlock.h"
20
21#ifdef CROSS_NT_INTERNAL
22#include "ilock.h"
23#endif //CROSS_NT_INTERNAL
24
25#include "misc.h"
26
27#pragma pack(pop)
28
29extern "C"
35 );
36
37extern "C"
41 IN PCHAR pModuleName
42 );
43
44extern "C"
48 IN PVOID ptrInSection,
49 IN PCHAR ptrExportedName
50 );
51
52extern "C"
56 PVOID ModuleBase,
57 PCHAR pFunctionName
58 );
59
60#ifdef __GNUC__
61 #define DECL_FUNC_PTR(_type, _cconv, _name) _type _cconv ( * _name)
62#else
63 #define DECL_FUNC_PTR(_type, _cconv, _name) _type (_cconv * _name)
64#endif
65
70 PUNICODE_STRING CSDVersion OPTIONAL
71 );
72
73extern "C"
75
77 IN SYSTEM_INFORMATION_CLASS SystemInfoClass,
81 );
82
83extern "C"
85
86
87extern "C" {
88
89extern ULONG MajorVersion;
90extern ULONG MinorVersion;
91extern ULONG BuildNumber;
92extern ULONG SPVersion;
93
94extern HANDLE g_hNtosKrnl;
95extern HANDLE g_hHal;
96
97};
98
99#define WinVer_Is351 (MajorVersion==0x03)
100#define WinVer_IsNT (MajorVersion==0x04)
101#define WinVer_Is2k (MajorVersion==0x05 && MinorVersion==0x00)
102#define WinVer_IsXP (MajorVersion==0x05 && MinorVersion==0x01)
103#define WinVer_IsXPp (MajorVersion==0x05 && MinorVersion>=0x01)
104#define WinVer_IsdNET (MajorVersion==0x05 && MinorVersion==0x02)
105#define WinVer_IsdNETp ((MajorVersion==0x05 && MinorVersion>=0x02) || (MajorVersion>0x05))
106#define WinVer_IsVista (MajorVersion==0x06 && MinorVersion==0x00)
107
108#define WinVer_Id() ((MajorVersion << 8) | MinorVersion)
109
110#define WinVer_351 (0x0351)
111#define WinVer_NT (0x0400)
112#define WinVer_ROS (0x0401)
113#define WinVer_2k (0x0500)
114#define WinVer_XP (0x0501)
115#define WinVer_dNET (0x0502)
116#define WinVer_Vista (0x0600)
117
118#ifdef _DEBUG
119
120// NT3.51 doesn't export strlen() and strcmp()
121// The same time, Release build doesn't depend no these functions since they are inlined
122
123#ifndef USE_REACTOS_DDK
124
125size_t __cdecl CrNtstrlen (
126 const char * str
127 );
128
129int __cdecl CrNtstrcmp (
130 const char * src,
131 const char * dst
132 );
133
134#define strlen CrNtstrlen
135#define strcmp CrNtstrcmp
136
137#endif // !USE_REACTOS_DDK
138
139#endif //_DEBUG
140
141#define CROSSNT_DECL_API
142
143#include "CrNtDecl.h"
144#include "CrNtStubs.h"
145
146#undef CROSSNT_DECL_API
147
148}; // end extern "C"
149
150#endif //__CROSS_VERSION_LIB_NT__H__
unsigned char BOOLEAN
#define __cdecl
Definition: accygwin.h:79
LONG NTSTATUS
Definition: precomp.h:26
PVOID CrNtGetProcAddress(PVOID ModuleBase, PCHAR pFunctionName)
NTSTATUS CrNtInit(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
PVOID CrNtFindModuleBaseByPtr(IN PVOID ptrInSection, IN PCHAR ptrExportedName)
PVOID CrNtGetModuleBase(IN PCHAR pModuleName)
ptrCrNtNtQuerySystemInformation CrNtNtQuerySystemInformation
Definition: CrossNt.h:78
ULONG BuildNumber
Definition: ros_glue.cpp:6
NTSTATUS(__stdcall * ptrCrNtNtQuerySystemInformation)(IN SYSTEM_INFORMATION_CLASS SystemInfoClass, OUT PVOID SystemInfoBuffer, IN ULONG SystemInfoBufferSize, OUT PULONG BytesReturned OPTIONAL)
Definition: CrossNt.h:70
HANDLE g_hNtosKrnl
ptrCrNtPsGetVersion CrNtPsGetVersion
Definition: CrossNt.h:68
ULONG SPVersion
ULONG MajorVersion
Definition: ros_glue.cpp:4
ULONG MinorVersion
Definition: ros_glue.cpp:5
HANDLE g_hHal
BOOLEAN(__stdcall * ptrCrNtPsGetVersion)(PULONG MajorVersion OPTIONAL, PULONG MinorVersion OPTIONAL, PULONG BuildNumber OPTIONAL, PUNICODE_STRING CSDVersion OPTIONAL)
Definition: CrossNt.h:60
enum _SYSTEM_INFORMATION_CLASS SYSTEM_INFORMATION_CLASS
GLenum src
Definition: glext.h:6340
GLenum GLenum dst
Definition: glext.h:6340
const WCHAR * str
OUT PVOID IN ULONG SystemInfoBufferSize
Definition: CrossNt.h:79
#define DECL_FUNC_PTR(_type, _cconv, _name)
Definition: CrossNt.h:63
OUT PVOID SystemInfoBuffer
Definition: CrossNt.h:78
#define OPTIONAL
Definition: typedefs.h:41
uint32_t * PULONG
Definition: typedefs.h:59
#define NTAPI
Definition: typedefs.h:36
#define __stdcall
Definition: typedefs.h:25
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
char * PCHAR
Definition: typedefs.h:51
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
Definition: wdfdriver.h:215
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesReturned
Definition: wdfiotarget.h:1052