Fix two more build issues caused by greatlod's d3d header change and ndk bug
[reactos.git] / reactos / include / ndk / obtypes.h
1 /*
2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/obtypes.h
4 * PURPOSE: Defintions for Object Manager Types not defined in DDK/IFS
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
6 * UPDATE HISTORY:
7 * Created 06/10/04
8 */
9 #ifndef _OBTYPES_H
10 #define _OBTYPES_H
11
12 /* DEPENDENCIES **************************************************************/
13
14 /* CONSTANTS *****************************************************************/
15
16 /* Values for DosDeviceDriveType */
17 #define DOSDEVICE_DRIVE_UNKNOWN 0
18 #define DOSDEVICE_DRIVE_CALCULATE 1
19 #define DOSDEVICE_DRIVE_REMOVABLE 2
20 #define DOSDEVICE_DRIVE_FIXED 3
21 #define DOSDEVICE_DRIVE_REMOTE 4
22 #define DOSDEVICE_DRIVE_CDROM 5
23 #define DOSDEVICE_DRIVE_RAMDISK 6
24
25 /* ENUMERATIONS **************************************************************/
26
27 /* TYPES *********************************************************************/
28
29 typedef struct _OBJECT_BASIC_INFORMATION
30 {
31 ULONG Attributes;
32 ACCESS_MASK GrantedAccess;
33 ULONG HandleCount;
34 ULONG PointerCount;
35 ULONG PagedPoolUsage;
36 ULONG NonPagedPoolUsage;
37 ULONG Reserved[3];
38 ULONG NameInformationLength;
39 ULONG TypeInformationLength;
40 ULONG SecurityDescriptorLength;
41 LARGE_INTEGER CreateTime;
42 } OBJECT_BASIC_INFORMATION, *POBJECT_BASIC_INFORMATION;
43
44 /* FIXME: Add Object Structures Here */
45 /*
46 * FIXME: These will eventually become centerfold in the compliant Ob Manager
47 * For now, they are only here so Device Map is properly defined before the header
48 * changes
49 */
50 typedef struct _OBJECT_DIRECTORY_ENTRY
51 {
52 struct _OBJECT_DIRECTORY_ENTRY *ChainLink;
53 PVOID Object;
54 ULONG HashValue;
55 } OBJECT_DIRECTORY_ENTRY, *POBJECT_DIRECTORY_ENTRY;
56
57 #define NUMBER_HASH_BUCKETS 37
58 typedef struct _OBJECT_DIRECTORY
59 {
60 struct _OBJECT_DIRECTORY_ENTRY *HashBuckets[NUMBER_HASH_BUCKETS];
61 struct _EX_PUSH_LOCK *Lock;
62 struct _DEVICE_MAP *DeviceMap;
63 ULONG SessionId;
64 } OBJECT_DIRECTORY, *POBJECT_DIRECTORY;
65
66 typedef struct _DEVICE_MAP
67 {
68 POBJECT_DIRECTORY DosDevicesDirectory;
69 POBJECT_DIRECTORY GlobalDosDevicesDirectory;
70 ULONG ReferenceCount;
71 ULONG DriveMap;
72 UCHAR DriveType[32];
73 } DEVICE_MAP, *PDEVICE_MAP;
74
75 /* EXPORTED DATA *************************************************************/
76
77 extern NTOSAPI POBJECT_TYPE ObDirectoryType;
78 extern NTOSAPI PDEVICE_MAP ObSystemDeviceMap;
79
80 #endif