Fix incorrect LPC Object export...we export pointers not the object itself! Also remove more TIME stuff to be properly compatible with real structures. Modified: trunk/reactos/include/napi/dbg.h Modified: trunk/reactos/include/ntos/zwtypes.h Modified: trunk/reactos/ntoskrnl/include/internal/port.h Modified: trunk/reactos/ntoskrnl/include/internal/ps.h Modified: trunk/reactos/ntoskrnl/lpc/complete.c Modified: trunk/reactos/ntoskrnl/lpc/connect.c Modified: trunk/reactos/ntoskrnl/lpc/create.c Modified: trunk/reactos/ntoskrnl/lpc/port.c Modified: trunk/reactos/ntoskrnl/lpc/query.c Modified: trunk/reactos/ntoskrnl/lpc/reply.c Modified: trunk/reactos/ntoskrnl/lpc/send.c Modified: trunk/reactos/ntoskrnl/ps/kill.c Modified: trunk/reactos/ntoskrnl/ps/process.c Modified: trunk/reactos/ntoskrnl/ps/tinfo.c _____
Modified: trunk/reactos/include/napi/dbg.h --- trunk/reactos/include/napi/dbg.h 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/include/napi/dbg.h 2005-01-03 05:17:16 UTC (rev 12748) @@ -62,7 +62,7 @@
typedef struct _LPC_TERMINATION_MESSAGE { LPC_MESSAGE Header; - TIME CreationTime; + LARGE_INTEGER CreationTime; } LPC_TERMINATION_MESSAGE, *PLPC_TERMINATION_MESSAGE;
#endif /* __INCLUDE_NAPI_DBG_H */ _____
Modified: trunk/reactos/include/ntos/zwtypes.h --- trunk/reactos/include/ntos/zwtypes.h 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/include/ntos/zwtypes.h 2005-01-03 05:17:16 UTC (rev 12748) @@ -729,10 +729,10 @@
// Information class 4 typedef struct _KERNEL_USER_TIMES { - TIME CreateTime; - TIME ExitTime; - TIME KernelTime; - TIME UserTime; + LARGE_INTEGER CreateTime; + LARGE_INTEGER ExitTime; + LARGE_INTEGER KernelTime; + LARGE_INTEGER UserTime; } KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;
// Information class 9 @@ -1324,9 +1324,9 @@ SIZE_T NextEntryDelta; ULONG ThreadCount; ULONG Reserved1[6]; - TIME CreateTime; - TIME UserTime; - TIME KernelTime; + LARGE_INTEGER CreateTime; + LARGE_INTEGER UserTime; + LARGE_INTEGER KernelTime; UNICODE_STRING ProcessName; KPRIORITY BasePriority; ULONG ProcessId; @@ -1342,9 +1342,9 @@ SIZE_T NextEntryDelta; ULONG ThreadCount; ULONG Reserved1[6]; - TIME CreateTime; - TIME UserTime; - TIME KernelTime; + LARGE_INTEGER CreateTime; + LARGE_INTEGER UserTime; + LARGE_INTEGER KernelTime; UNICODE_STRING ProcessName; KPRIORITY BasePriority; ULONG ProcessId; _____
Modified: trunk/reactos/ntoskrnl/include/internal/port.h --- trunk/reactos/ntoskrnl/include/internal/port.h 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/ntoskrnl/include/internal/port.h 2005-01-03 05:17:16 UTC (rev 12748) @@ -65,7 +65,7 @@
NTSTATUS STDCALL LpcSendTerminationPort (PEPORT Port, - TIME CreationTime); + LARGE_INTEGER CreationTime);
/* EPORT.Type */
@@ -140,7 +140,7 @@ NTSTATUS NiInitPort (VOID);
-extern OBJECT_TYPE LpcPortObjectType; +extern POBJECT_TYPE LpcPortObjectType; extern ULONG LpcpNextMessageId; extern FAST_MUTEX LpcpLock;
_____
Modified: trunk/reactos/ntoskrnl/include/internal/ps.h --- trunk/reactos/ntoskrnl/include/internal/ps.h 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/ntoskrnl/include/internal/ps.h 2005-01-03 05:17:16 UTC (rev 12748) @@ -160,11 +160,11 @@
{ KTHREAD Tcb; union { - TIME CreateTime; + LARGE_INTEGER CreateTime; UCHAR NestedFaultCount:2; UCHAR ApcNeeded:1; }; - TIME ExitTime; + LARGE_INTEGER ExitTime; LIST_ENTRY LpcReplyChain; NTSTATUS ExitStatus; PVOID OfsChain; @@ -316,14 +316,10 @@ ULONG LockCount; /* 07C */
/* Time of process creation. */ -#ifdef __USE_W32API - LARGE_INTEGER CreateTime; /* 080 */ -#else - TIME CreateTime; /* 080 */ -#endif + LARGE_INTEGER CreateTime; /* 080 */
/* Time of process exit. */ - TIME ExitTime; /* 088 */ + LARGE_INTEGER ExitTime; /* 088 */ /* Unknown. */ PKTHREAD LockOwner; /* 090 */ /* Process id. */ _____
Modified: trunk/reactos/ntoskrnl/lpc/complete.c --- trunk/reactos/ntoskrnl/lpc/complete.c 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/ntoskrnl/lpc/complete.c 2005-01-03 05:17:16 UTC (rev 12748) @@ -46,7 +46,7 @@
*/ Status = ObReferenceObjectByHandle (hServerSideCommPort, PORT_ALL_ACCESS, - & LpcPortObjectType, + LpcPortObjectType, UserMode, (PVOID*)&ReplyPort, NULL); _____
Modified: trunk/reactos/ntoskrnl/lpc/connect.c --- trunk/reactos/ntoskrnl/lpc/connect.c 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/ntoskrnl/lpc/connect.c 2005-01-03 05:17:16 UTC (rev 12748) @@ -66,7 +66,7 @@
* Create a port to represent our side of the connection */ Status = ObCreateObject (KernelMode, - & LpcPortObjectType, + LpcPortObjectType, NULL, KernelMode, NULL, @@ -333,7 +333,7 @@ 0, NULL, PORT_ALL_ACCESS, /* DesiredAccess */ - & LpcPortObjectType, + LpcPortObjectType, UserMode, NULL, (PVOID*)&NamedPort); @@ -547,7 +547,7 @@
Status = ObReferenceObjectByHandle(NamedPortHandle, PORT_ALL_ACCESS, - & LpcPortObjectType, + LpcPortObjectType, UserMode, (PVOID*)&NamedPort, NULL); @@ -563,7 +563,7 @@ if (AcceptIt) { Status = ObCreateObject(ExGetPreviousMode(), - & LpcPortObjectType, + LpcPortObjectType, NULL, ExGetPreviousMode(), NULL, _____
Modified: trunk/reactos/ntoskrnl/lpc/create.c --- trunk/reactos/ntoskrnl/lpc/create.c 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/ntoskrnl/lpc/create.c 2005-01-03 05:17:16 UTC (rev 12748) @@ -134,7 +134,7 @@
/* Ask Ob to create the object */ Status = ObCreateObject (ExGetPreviousMode(), - & LpcPortObjectType, + LpcPortObjectType, ObjectAttributes, ExGetPreviousMode(), NULL, _____
Modified: trunk/reactos/ntoskrnl/lpc/port.c --- trunk/reactos/ntoskrnl/lpc/port.c 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/ntoskrnl/lpc/port.c 2005-01-03 05:17:16 UTC (rev 12748) @@ -21,7 +21,7 @@
/* GLOBALS *******************************************************************/
-OBJECT_TYPE LpcPortObjectType = {0, }; +POBJECT_TYPE LpcPortObjectType = 0; ULONG LpcpNextMessageId = 0; /* 0 is not a valid ID */ FAST_MUTEX LpcpLock; /* global internal sync in LPC facility */
@@ -37,30 +37,32 @@ NTSTATUS INIT_FUNCTION NiInitPort (VOID) { - RtlZeroMemory (& LpcPortObjectType, sizeof (OBJECT_TYPE)); + /* Allocate Memory for the LPC Object */ + LpcPortObjectType = ExAllocatePool(NonPagedPool, sizeof(OBJECT_TYPE)); + RtlZeroMemory (LpcPortObjectType, sizeof (OBJECT_TYPE));
- RtlRosInitUnicodeStringFromLiteral(&LpcPortObjectType.TypeName,L"Port"); + RtlRosInitUnicodeStringFromLiteral(&LpcPortObjectType->TypeName,L"Port") ;
- LpcPortObjectType.Tag = TAG('L', 'P', 'R', 'T'); - LpcPortObjectType.MaxObjects = ULONG_MAX; - LpcPortObjectType.MaxHandles = ULONG_MAX; - LpcPortObjectType.TotalObjects = 0; - LpcPortObjectType.TotalHandles = 0; - LpcPortObjectType.PagedPoolCharge = 0; - LpcPortObjectType.NonpagedPoolCharge = sizeof(EPORT); - LpcPortObjectType.Mapping = &ExpPortMapping; - LpcPortObjectType.Dump = NULL; - LpcPortObjectType.Open = NULL; - LpcPortObjectType.Close = NiClosePort; - LpcPortObjectType.Delete = NiDeletePort; - LpcPortObjectType.Parse = NULL; - LpcPortObjectType.Security = NULL; - LpcPortObjectType.QueryName = NULL; - LpcPortObjectType.OkayToClose = NULL; - LpcPortObjectType.Create = NiCreatePort; - LpcPortObjectType.DuplicationNotify = NULL; + LpcPortObjectType->Tag = TAG('L', 'P', 'R', 'T'); + LpcPortObjectType->MaxObjects = ULONG_MAX; + LpcPortObjectType->MaxHandles = ULONG_MAX; + LpcPortObjectType->TotalObjects = 0; + LpcPortObjectType->TotalHandles = 0; + LpcPortObjectType->PagedPoolCharge = 0; + LpcPortObjectType->NonpagedPoolCharge = sizeof(EPORT); + LpcPortObjectType->Mapping = &ExpPortMapping; + LpcPortObjectType->Dump = NULL; + LpcPortObjectType->Open = NULL; + LpcPortObjectType->Close = NiClosePort; + LpcPortObjectType->Delete = NiDeletePort; + LpcPortObjectType->Parse = NULL; + LpcPortObjectType->Security = NULL; + LpcPortObjectType->QueryName = NULL; + LpcPortObjectType->OkayToClose = NULL; + LpcPortObjectType->Create = NiCreatePort; + LpcPortObjectType->DuplicationNotify = NULL;
- ObpCreateTypeObject(& LpcPortObjectType); + ObpCreateTypeObject(LpcPortObjectType);
LpcpNextMessageId = 0;
_____
Modified: trunk/reactos/ntoskrnl/lpc/query.c --- trunk/reactos/ntoskrnl/lpc/query.c 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/ntoskrnl/lpc/query.c 2005-01-03 05:17:16 UTC (rev 12748) @@ -50,7 +50,7 @@
Status = ObReferenceObjectByHandle (PortHandle, PORT_ALL_ACCESS, /* AccessRequired */ - & LpcPortObjectType, + LpcPortObjectType, UserMode, (PVOID *) & Port, NULL); _____
Modified: trunk/reactos/ntoskrnl/lpc/reply.c --- trunk/reactos/ntoskrnl/lpc/reply.c 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/ntoskrnl/lpc/reply.c 2005-01-03 05:17:16 UTC (rev 12748) @@ -88,7 +88,7 @@
Status = ObReferenceObjectByHandle(PortHandle, PORT_ALL_ACCESS, /* AccessRequired */ - & LpcPortObjectType, + LpcPortObjectType, UserMode, (PVOID*)&Port, NULL); @@ -154,7 +154,7 @@
Status = ObReferenceObjectByHandle(PortHandle, PORT_ALL_ACCESS, - & LpcPortObjectType, + LpcPortObjectType, UserMode, (PVOID*)&Port, NULL); _____
Modified: trunk/reactos/ntoskrnl/lpc/send.c --- trunk/reactos/ntoskrnl/lpc/send.c 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/ntoskrnl/lpc/send.c 2005-01-03 05:17:16 UTC (rev 12748) @@ -30,7 +30,7 @@
*/ NTSTATUS STDCALL LpcSendTerminationPort (IN PEPORT Port, - IN TIME CreationTime) + IN LARGE_INTEGER CreationTime) { NTSTATUS Status; LPC_TERMINATION_MESSAGE Msg; @@ -180,7 +180,7 @@
Status = ObReferenceObjectByHandle(PortHandle, PORT_ALL_ACCESS, - & LpcPortObjectType, + LpcPortObjectType, UserMode, (PVOID*)&Port, NULL); @@ -231,7 +231,7 @@
Status = ObReferenceObjectByHandle(PortHandle, PORT_ALL_ACCESS, - & LpcPortObjectType, + LpcPortObjectType, UserMode, (PVOID*)&Port, NULL); _____
Modified: trunk/reactos/ntoskrnl/ps/kill.c --- trunk/reactos/ntoskrnl/ps/kill.c 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/ntoskrnl/ps/kill.c 2005-01-03 05:17:16 UTC (rev 12748) @@ -448,7 +448,7 @@
Status = ObReferenceObjectByHandle(PortHandle, PORT_ALL_ACCESS, - & LpcPortObjectType, + LpcPortObjectType,
KeGetCurrentThread()->PreviousMode, (PVOID*)&TerminationPort, NULL); _____
Modified: trunk/reactos/ntoskrnl/ps/process.c --- trunk/reactos/ntoskrnl/ps/process.c 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/ntoskrnl/ps/process.c 2005-01-03 05:17:16 UTC (rev 12748) @@ -745,7 +745,7 @@
{ Status = ObReferenceObjectByHandle(DebugPort, PORT_ALL_ACCESS, - & LpcPortObjectType, + LpcPortObjectType, UserMode, (PVOID*)&pDebugPort, NULL); @@ -767,7 +767,7 @@ { Status = ObReferenceObjectByHandle(ExceptionPort, PORT_ALL_ACCESS, - & LpcPortObjectType, + LpcPortObjectType, UserMode, (PVOID*)&pExceptionPort, NULL); _____
Modified: trunk/reactos/ntoskrnl/ps/tinfo.c --- trunk/reactos/ntoskrnl/ps/tinfo.c 2005-01-03 04:06:24 UTC (rev 12747) +++ trunk/reactos/ntoskrnl/ps/tinfo.c 2005-01-03 05:17:16 UTC (rev 12748) @@ -253,9 +253,9 @@
case ThreadTimes: u.TTI.KernelTime.QuadPart = Thread->Tcb.KernelTime * 100000LL; u.TTI.UserTime.QuadPart = Thread->Tcb.UserTime * 100000LL; - u.TTI.CreateTime = (TIME) Thread->CreateTime; + u.TTI.CreateTime = Thread->CreateTime; /*This works*/ - u.TTI.ExitTime = (TIME) Thread->ExitTime; + u.TTI.ExitTime = Thread->ExitTime; break;
case ThreadQuerySetWin32StartAddress: