#ifndef __INCLUDE_PS_H
#define __INCLUDE_PS_H
-#define THREAD_ALL_ACCESS (0x1f03ffL)
-#define THREAD_DIRECT_IMPERSONATION (512)
-#define THREAD_GET_CONTEXT (8)
-#define THREAD_IMPERSONATE (256)
-#define THREAD_QUERY_INFORMATION (64)
-#define THREAD_SET_CONTEXT (16)
-#define THREAD_SET_INFORMATION (32)
-#define THREAD_SET_THREAD_TOKEN (128)
-#define THREAD_SUSPEND_RESUME (2)
-#define THREAD_TERMINATE (1)
+/* Thread access rights */
+#define THREAD_TERMINATE (0x0001L)
+#define THREAD_SUSPEND_RESUME (0x0002L)
+#define THREAD_GET_CONTEXT (0x0008L)
+#define THREAD_SET_CONTEXT (0x0010L)
+#define THREAD_SET_INFORMATION (0x0020L)
+#define THREAD_QUERY_INFORMATION (0x0040L)
+#define THREAD_SET_THREAD_TOKEN (0x0080L)
+#define THREAD_IMPERSONATE (0x0100L)
+#define THREAD_DIRECT_IMPERSONATION (0x0200L)
-#define PROCESS_ALL_ACCESS (0x1f0fffL)
-#define PROCESS_CREATE_PROCESS (128)
-#define PROCESS_CREATE_THREAD (2)
-#define PROCESS_DUP_HANDLE (64)
-#define PROCESS_QUERY_INFORMATION (1024)
-#define PROCESS_SET_INFORMATION (512)
-#define PROCESS_TERMINATE (1)
-#define PROCESS_VM_OPERATION (8)
-#define PROCESS_VM_READ (16)
-#define PROCESS_VM_WRITE (32)
+#define THREAD_ALL_ACCESS (0x1f03ffL)
+#define THREAD_READ (0x020048L)
+#define THREAD_WRITE (0x020037L)
+#define THREAD_EXECUTE (0x120000L)
+/* Process access rights */
+#define PROCESS_TERMINATE (0x0001L)
+#define PROCESS_CREATE_THREAD (0x0002L)
+#define PROCESS_SET_SESSIONID (0x0004L)
+#define PROCESS_VM_OPERATION (0x0008L)
+#define PROCESS_VM_READ (0x0010L)
+#define PROCESS_VM_WRITE (0x0020L)
+#define PROCESS_DUP_HANDLE (0x0040L)
+#define PROCESS_CREATE_PROCESS (0x0080L)
+#define PROCESS_SET_QUOTA (0x0100L)
+#define PROCESS_SET_INFORMATION (0x0200L)
+#define PROCESS_QUERY_INFORMATION (0x0400L)
+
+#define PROCESS_ALL_ACCESS (0x1f0fffL)
+#define PROCESS_READ (0x020410L)
+#define PROCESS_WRITE (0x020bebL)
+#define PROCESS_EXECUTE (0x120000L)
+
+/* Thread priorities */
#define THREAD_PRIORITY_ABOVE_NORMAL (1)
#define THREAD_PRIORITY_BELOW_NORMAL (-1)
#define THREAD_PRIORITY_HIGHEST (2)
#include <ntos/types.h>
/* ACCESS_MASK */
-#define MAXIMUM_ALLOWED (0x2000000L)
-#define GENERIC_ALL (0x10000000L)
-#define GENERIC_EXECUTE (0x20000000L)
+#define MAXIMUM_ALLOWED (0x2000000L)
+#define GENERIC_ALL (0x10000000L)
+#define GENERIC_EXECUTE (0x20000000L)
#define SECURITY_STATIC_TRACKING (0)
#define SECURITY_DYNAMIC_TRACKING (1)
/* Standard rights */
#define STANDARD_RIGHTS_REQUIRED (0xf0000L)
-#define STANDARD_RIGHTS_WRITE (0x20000L)
-#define STANDARD_RIGHTS_READ (0x20000L)
-#define STANDARD_RIGHTS_EXECUTE (0x20000L)
-#define STANDARD_RIGHTS_ALL (0x1f0000L)
-#define SPECIFIC_RIGHTS_ALL (0xffffL)
-
+#define STANDARD_RIGHTS_WRITE (0x20000L)
+#define STANDARD_RIGHTS_READ (0x20000L)
+#define STANDARD_RIGHTS_EXECUTE (0x20000L)
+#define STANDARD_RIGHTS_ALL (0x1f0000L)
+#define SPECIFIC_RIGHTS_ALL (0xffffL)
+
+/* Token rights */
+#define TOKEN_ASSIGN_PRIMARY (0x0001L)
+#define TOKEN_DUPLICATE (0x0002L)
+#define TOKEN_IMPERSONATE (0x0004L)
+#define TOKEN_QUERY (0x0008L)
+#define TOKEN_QUERY_SOURCE (0x0010L)
+#define TOKEN_ADJUST_PRIVILEGES (0x0020L)
+#define TOKEN_ADJUST_GROUPS (0x0040L)
+#define TOKEN_ADJUST_DEFAULT (0x0080L)
+
+#define TOKEN_ALL_ACCESS (0xf00ffL)
+#define TOKEN_READ (0x20008L)
+#define TOKEN_WRITE (0x200e0L)
+#define TOKEN_EXECUTE (0x20000L)
typedef BOOL SECURITY_CONTEXT_TRACKING_MODE;
-typedef ULONG SECURITY_INFORMATION, *PSECURITY_INFORMATION;
+typedef ULONG SECURITY_INFORMATION, *PSECURITY_INFORMATION;
typedef enum _TOKEN_INFORMATION_CLASS {
TokenUser = 1,
-/* $Id: file.c,v 1.11 2000/09/03 14:49:17 ekohl Exp $
+/* $Id: file.c,v 1.12 2001/01/28 17:37:48 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
}
-PGENERIC_MAPPING
-STDCALL
-IoGetFileObjectGenericMapping(VOID)
-{
- UNIMPLEMENTED;
-}
-
-
NTSTATUS
STDCALL
NtQueryAttributesFile (
-/* $Id: iomgr.c,v 1.16 2000/10/05 19:15:50 ekohl Exp $
+/* $Id: iomgr.c,v 1.17 2001/01/28 17:37:48 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
ULONG EXPORTED IoWriteTransferCount = 0; /* FIXME: unknown type */
ULONG EXPORTED IoStatisticsLock = 0; /* FIXME: unknown type */
+static GENERIC_MAPPING IopFileMapping = {FILE_GENERIC_READ,
+ FILE_GENERIC_WRITE,
+ FILE_GENERIC_EXECUTE,
+ FILE_ALL_ACCESS};
+
/* FUNCTIONS ****************************************************************/
VOID IopCloseFile(PVOID ObjectBody, ULONG HandleCount)
IoDeviceObjectType->MaxHandles = ULONG_MAX;
IoDeviceObjectType->PagedPoolCharge = 0;
IoDeviceObjectType->NonpagedPoolCharge = sizeof (DEVICE_OBJECT);
+ IoDeviceObjectType->Mapping = &IopFileMapping;
IoDeviceObjectType->Dump = NULL;
IoDeviceObjectType->Open = NULL;
IoDeviceObjectType->Close = NULL;
IoFileObjectType->MaxHandles = ULONG_MAX;
IoFileObjectType->PagedPoolCharge = 0;
IoFileObjectType->NonpagedPoolCharge = sizeof(FILE_OBJECT);
+ IoFileObjectType->Mapping = &IopFileMapping;
IoFileObjectType->Dump = NULL;
IoFileObjectType->Open = NULL;
IoFileObjectType->Close = IopCloseFile;
&DeviceName);
}
+
+PGENERIC_MAPPING STDCALL
+IoGetFileObjectGenericMapping(VOID)
+{
+ return &IopFileMapping;
+}
+
/* EOF */
-/* $Id: symlink.c,v 1.17 2000/10/22 16:36:50 ekohl Exp $
+/* $Id: symlink.c,v 1.18 2001/01/28 17:37:48 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
POBJECT_TYPE IoSymbolicLinkType = NULL;
+static GENERIC_MAPPING IopSymbolicLinkMapping = {
+ STANDARD_RIGHTS_READ|SYMBOLIC_LINK_QUERY,
+ STANDARD_RIGHTS_WRITE,
+ STANDARD_RIGHTS_EXECUTE|SYMBOLIC_LINK_QUERY,
+ SYMBOLIC_LINK_ALL_ACCESS};
+
/* FUNCTIONS *****************************************************************/
IoSymbolicLinkType->MaxHandles = ULONG_MAX;
IoSymbolicLinkType->PagedPoolCharge = 0;
IoSymbolicLinkType->NonpagedPoolCharge = sizeof (SYMLNK_OBJECT);
+ IoSymbolicLinkType->Mapping = &IopSymbolicLinkMapping;
IoSymbolicLinkType->Dump = NULL;
IoSymbolicLinkType->Open = NULL;
IoSymbolicLinkType->Close = NULL;
IoSymbolicLinkType->QueryName = NULL;
IoSymbolicLinkType->OkayToClose = NULL;
IoSymbolicLinkType->Create = IopCreateSymbolicLink;
-
+
RtlInitUnicodeString(&IoSymbolicLinkType->TypeName,
L"SymbolicLink");
}
-/* $Id: port.c,v 1.3 2000/10/22 16:36:51 ekohl Exp $
+/* $Id: port.c,v 1.4 2001/01/28 17:38:12 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
POBJECT_TYPE ExPortType = NULL;
ULONG EiNextLpcMessageId = 0;
+static GENERIC_MAPPING ExpPortMapping = {
+ STANDARD_RIGHTS_READ,
+ STANDARD_RIGHTS_WRITE,
+ 0,
+ PORT_ALL_ACCESS};
+
/* FUNCTIONS *****************************************************************/
ExPortType->TotalHandles = 0;
ExPortType->PagedPoolCharge = 0;
ExPortType->NonpagedPoolCharge = sizeof(EPORT);
+ ExPortType->Mapping = &ExpPortMapping;
ExPortType->Dump = NULL;
ExPortType->Open = NULL;
ExPortType->Close = NiClosePort;
PDIRECTORY_OBJECT NameSpaceRoot = NULL;
+static GENERIC_MAPPING ObpDirectoryMapping = {
+ STANDARD_RIGHTS_READ|DIRECTORY_QUERY|DIRECTORY_TRAVERSE,
+ STANDARD_RIGHTS_WRITE|DIRECTORY_CREATE_OBJECT|DIRECTORY_CREATE_SUBDIRECTORY,
+ STANDARD_RIGHTS_EXECUTE|DIRECTORY_QUERY|DIRECTORY_TRAVERSE,
+ DIRECTORY_ALL_ACCESS};
+
/* FUNCTIONS **************************************************************/
NTSTATUS STDCALL
* ...
* ObjectType
* ...
- * Unknown3
- * ???
+ * ParseContext
+ * ...
* AccessMode
* ...
* DesiredAccess
NTSTATUS STDCALL
ObOpenObjectByName(POBJECT_ATTRIBUTES ObjectAttributes,
POBJECT_TYPE ObjectType,
- ULONG Unknown3, /* ?? */
+ PVOID ParseContext,
KPROCESSOR_MODE AccessMode,
ACCESS_MASK DesiredAccess,
PACCESS_STATE PassedAccessState,
ObDirectoryType->MaxHandles = ULONG_MAX;
ObDirectoryType->PagedPoolCharge = 0;
ObDirectoryType->NonpagedPoolCharge = sizeof(DIRECTORY_OBJECT);
+ ObDirectoryType->Mapping = &ObpDirectoryMapping;
ObDirectoryType->Dump = NULL;
ObDirectoryType->Open = NULL;
ObDirectoryType->Close = NULL;
-/* $Id: process.c,v 1.55 2001/01/21 14:54:29 dwelch Exp $
+/* $Id: process.c,v 1.56 2001/01/28 17:38:40 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
static KSPIN_LOCK PsProcessListLock;
static ULONG PiNextProcessUniqueId = 0;
+static GENERIC_MAPPING PiProcessMapping = {PROCESS_READ,
+ PROCESS_WRITE,
+ PROCESS_EXECUTE,
+ PROCESS_ALL_ACCESS};
+
/* FUNCTIONS *****************************************************************/
PsProcessType->MaxHandles = ULONG_MAX;
PsProcessType->PagedPoolCharge = 0;
PsProcessType->NonpagedPoolCharge = sizeof(EPROCESS);
+ PsProcessType->Mapping = &PiProcessMapping;
PsProcessType->Dump = NULL;
PsProcessType->Open = NULL;
PsProcessType->Close = NULL;
}
-#if 0
/**********************************************************************
* NAME INTERNAL
- * PiSnapshotProcessTable
+ * PiQuerySystemProcessInformation
*
* DESCRIPTION
* Compute the size of a process+thread snapshot as
* We assume (sizeof (PVOID) == sizeof (ULONG)) holds.
*/
NTSTATUS
-STDCALL
-PiSnapshotProcessTable (
- IN PVOID SnapshotBuffer,
- IN ULONG Size,
- IN PULONG pRequiredSize
- )
+PiQuerySystemProcessInformation(PVOID Buffer,
+ ULONG Size,
+ PULONG ReqSize)
{
+ return STATUS_NOT_IMPLEMENTED;
+
+#if 0
KIRQL OldIrql;
PLIST_ENTRY CurrentEntryP;
PEPROCESS CurrentP;
PSYSTEM_THREAD_INFO pInfoT = NULL;
- /*
- * Lock the process list.
- */
- KeAcquireSpinLock (
- & PsProcessListLock,
- & OldIrql
- );
+ /* Lock the process list. */
+ KeAcquireSpinLock(&PsProcessListLock,
+ &OldIrql);
+
/*
* Scan the process list. Since the
* list is circular, the guard is false
pInfoP->RelativeOffset = 0L;
/* OK */
return STATUS_SUCCESS;
-}
#endif
+}
/* EOF */
-/* $Id: thread.c,v 1.67 2001/01/21 14:54:30 dwelch Exp $
+/* $Id: thread.c,v 1.68 2001/01/28 17:38:40 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
static PETHREAD CurrentThread = NULL;
+static GENERIC_MAPPING PiThreadMapping = {THREAD_READ,
+ THREAD_WRITE,
+ THREAD_EXECUTE,
+ THREAD_ALL_ACCESS};
+
/* FUNCTIONS ***************************************************************/
PKTHREAD STDCALL KeGetCurrentThread(VOID)
PsThreadType->MaxHandles = 0;
PsThreadType->PagedPoolCharge = 0;
PsThreadType->NonpagedPoolCharge = sizeof(ETHREAD);
+ PsThreadType->Mapping = &PiThreadMapping;
PsThreadType->Dump = NULL;
PsThreadType->Open = NULL;
PsThreadType->Close = PiCloseThread;
-/* $Id: token.c,v 1.8 2000/07/01 22:38:15 ekohl Exp $
+/* $Id: token.c,v 1.9 2001/01/28 17:42:56 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
POBJECT_TYPE EXPORTED SeTokenType = NULL;
+static GENERIC_MAPPING SepTokenMapping = {TOKEN_READ,
+ TOKEN_WRITE,
+ TOKEN_EXECUTE,
+ TOKEN_ALL_ACCESS};
+
/* FUNCTIONS *****************************************************************/
VOID SepFreeProxyData(PVOID ProxyData)
SeTokenType->TotalHandles = 0;
SeTokenType->PagedPoolCharge = 0;
SeTokenType->NonpagedPoolCharge = 0;
+ SeTokenType->Mapping = &SepTokenMapping;
SeTokenType->Dump = NULL;
SeTokenType->Open = NULL;
SeTokenType->Close = NULL;