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: