2005-06-18 23:33:40 +00:00
|
|
|
/*
|
|
|
|
* PROJECT: ReactOS Native Headers
|
|
|
|
* FILE: include/ndk/obtypes.h
|
|
|
|
* PURPOSE: Defintions for Object Manager Types not defined in DDK/IFS
|
|
|
|
* PROGRAMMER: Alex Ionescu (alex@relsoft.net)
|
|
|
|
* UPDATE HISTORY:
|
|
|
|
* Created 06/10/04
|
|
|
|
*/
|
|
|
|
#ifndef _OBTYPES_H
|
|
|
|
#define _OBTYPES_H
|
|
|
|
|
|
|
|
/* DEPENDENCIES **************************************************************/
|
|
|
|
|
|
|
|
/* CONSTANTS *****************************************************************/
|
|
|
|
|
|
|
|
/* Values for DosDeviceDriveType */
|
|
|
|
#define DOSDEVICE_DRIVE_UNKNOWN 0
|
|
|
|
#define DOSDEVICE_DRIVE_CALCULATE 1
|
|
|
|
#define DOSDEVICE_DRIVE_REMOVABLE 2
|
|
|
|
#define DOSDEVICE_DRIVE_FIXED 3
|
|
|
|
#define DOSDEVICE_DRIVE_REMOTE 4
|
|
|
|
#define DOSDEVICE_DRIVE_CDROM 5
|
|
|
|
#define DOSDEVICE_DRIVE_RAMDISK 6
|
|
|
|
|
|
|
|
/* ENUMERATIONS **************************************************************/
|
|
|
|
|
|
|
|
/* TYPES *********************************************************************/
|
|
|
|
|
|
|
|
typedef struct _OBJECT_BASIC_INFORMATION
|
|
|
|
{
|
|
|
|
ULONG Attributes;
|
|
|
|
ACCESS_MASK GrantedAccess;
|
|
|
|
ULONG HandleCount;
|
|
|
|
ULONG PointerCount;
|
|
|
|
ULONG PagedPoolUsage;
|
|
|
|
ULONG NonPagedPoolUsage;
|
|
|
|
ULONG Reserved[3];
|
|
|
|
ULONG NameInformationLength;
|
|
|
|
ULONG TypeInformationLength;
|
|
|
|
ULONG SecurityDescriptorLength;
|
|
|
|
LARGE_INTEGER CreateTime;
|
|
|
|
} OBJECT_BASIC_INFORMATION, *POBJECT_BASIC_INFORMATION;
|
|
|
|
|
|
|
|
/* FIXME: Add Object Structures Here */
|
2005-06-23 05:07:25 +00:00
|
|
|
/*
|
|
|
|
* FIXME: These will eventually become centerfold in the compliant Ob Manager
|
|
|
|
* For now, they are only here so Device Map is properly defined before the header
|
|
|
|
* changes
|
|
|
|
*/
|
|
|
|
typedef struct _OBJECT_DIRECTORY_ENTRY
|
|
|
|
{
|
|
|
|
struct _OBJECT_DIRECTORY_ENTRY *ChainLink;
|
|
|
|
PVOID Object;
|
|
|
|
ULONG HashValue;
|
|
|
|
} OBJECT_DIRECTORY_ENTRY, *POBJECT_DIRECTORY_ENTRY;
|
|
|
|
|
|
|
|
#define NUMBER_HASH_BUCKETS 37
|
|
|
|
typedef struct _OBJECT_DIRECTORY
|
|
|
|
{
|
|
|
|
struct _OBJECT_DIRECTORY_ENTRY *HashBuckets[NUMBER_HASH_BUCKETS];
|
|
|
|
struct _EX_PUSH_LOCK *Lock;
|
|
|
|
struct _DEVICE_MAP *DeviceMap;
|
|
|
|
ULONG SessionId;
|
|
|
|
} OBJECT_DIRECTORY, *POBJECT_DIRECTORY;
|
|
|
|
|
|
|
|
typedef struct _DEVICE_MAP
|
|
|
|
{
|
|
|
|
POBJECT_DIRECTORY DosDevicesDirectory;
|
|
|
|
POBJECT_DIRECTORY GlobalDosDevicesDirectory;
|
|
|
|
ULONG ReferenceCount;
|
|
|
|
ULONG DriveMap;
|
|
|
|
UCHAR DriveType[32];
|
|
|
|
} DEVICE_MAP, *PDEVICE_MAP;
|
|
|
|
|
|
|
|
/* EXPORTED DATA *************************************************************/
|
|
|
|
|
|
|
|
extern NTOSAPI POBJECT_TYPE ObDirectoryType;
|
|
|
|
extern NTOSAPI PDEVICE_MAP ObSystemDeviceMap;
|
2005-06-18 23:33:40 +00:00
|
|
|
|
|
|
|
#endif
|