2387273032f80e0ba5775bb6aaef61b5dfbfb140
[reactos.git] / reactos / include / napi / shared_data.h
1 #ifndef __INCLUDE_NAPI_SHARED_DATA_H
2 #define __INCLUDE_NAPI_SHARED_DATA_H
3
4 #define PROCESSOR_FEATURES_MAX 64
5
6 typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE
7 {
8 StandardDesign,
9 NEC98x86,
10 EndAlternatives
11 } ALTERNATIVE_ARCHITECTURE_TYPE;
12
13
14 typedef struct _KUSER_SHARED_DATA
15 {
16 volatile ULONG TickCountLow;
17 ULONG TickCountMultiplier;
18 volatile KSYSTEM_TIME InterruptTime;
19 volatile KSYSTEM_TIME SystemTime;
20 volatile KSYSTEM_TIME TimeZoneBias;
21 USHORT ImageNumberLow;
22 USHORT ImageNumberHigh;
23 WCHAR NtSystemRoot[260];
24 ULONG DosDeviceMap;
25 ULONG CryptoExponent;
26 ULONG TimeZoneId;
27 UCHAR DosDeviceDriveType[32];
28 NT_PRODUCT_TYPE NtProductType;
29 BOOLEAN ProductTypeIsValid;
30 ULONG NtMajorVersion;
31 ULONG NtMinorVersion;
32 BOOLEAN ProcessorFeatures[PROCESSOR_FEATURES_MAX];
33
34 // NT5 / Win2k specific ??
35 ULONG Reserved1;
36 ULONG Reserved3;
37 volatile ULONG TimeSlip;
38 ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture;
39 ULONG SuiteMask;
40 #ifdef REMOTE_BOOT
41 ULONG SystemFlags;
42 UCHAR RemoteBootServerPath[260];
43 #endif
44 BOOLEAN KdDebuggerEnabled;
45 } KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
46
47 /* Values for DosDeviceDriveType */
48 #define DOSDEVICE_DRIVE_UNKNOWN 0
49 #define DOSDEVICE_DRIVE_CALCULATE 1
50 #define DOSDEVICE_DRIVE_REMOVABLE 2
51 #define DOSDEVICE_DRIVE_FIXED 3
52 #define DOSDEVICE_DRIVE_REMOTE 4
53 #define DOSDEVICE_DRIVE_CDROM 5
54 #define DOSDEVICE_DRIVE_RAMDISK 6
55
56
57 #define KERNEL_SHARED_DATA (0xFFDF0000)
58 #define USER_SHARED_DATA (0x7FFE0000)
59
60 #if defined(__NTOSKRNL__) || defined(__NTDRIVER__) || defined(__NTHAL__)
61 #define KI_USER_SHARED_DATA (0xFFDF0000)
62 #define SharedUserData ((KUSER_SHARED_DATA * const)KI_USER_SHARED_DATA)
63 #else
64 #define SharedUserData ((KUSER_SHARED_DATA * const)USER_SHARED_DATA)
65 #endif
66
67
68 #endif /* __INCLUDE_NAPI_SHARED_DATA_H */