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: