- Use correct, documented, LPC Message structure (PORT_MESSAGE). Fix all caller code to use new member names and structure names. Modified: trunk/reactos/include/ndk/lpctypes.h Modified: trunk/reactos/include/ndk/zwfuncs.h Modified: trunk/reactos/include/subsys/csrss/csrss.h Modified: trunk/reactos/include/subsys/lsass/lsass.h Modified: trunk/reactos/include/subsys/sm/api.h Modified: trunk/reactos/lib/lsasrv/lsaport.c Modified: trunk/reactos/lib/ntdll/csr/lpc.c Modified: trunk/reactos/lib/ntdll/dbg/debug.c Modified: trunk/reactos/lib/secur32/lsa.c Modified: trunk/reactos/lib/smdll/query.c Modified: trunk/reactos/lib/smlib/compses.c Modified: trunk/reactos/lib/smlib/execpgm.c Modified: trunk/reactos/ntoskrnl/include/internal/port.h Modified: trunk/reactos/ntoskrnl/io/error.c Modified: trunk/reactos/ntoskrnl/lpc/close.c Modified: trunk/reactos/ntoskrnl/lpc/connect.c Modified: trunk/reactos/ntoskrnl/lpc/create.c Modified: trunk/reactos/ntoskrnl/lpc/listen.c Modified: trunk/reactos/ntoskrnl/lpc/port.c Modified: trunk/reactos/ntoskrnl/lpc/receive.c Modified: trunk/reactos/ntoskrnl/lpc/reply.c Modified: trunk/reactos/ntoskrnl/lpc/send.c Modified: trunk/reactos/subsys/csrss/api/process.c Modified: trunk/reactos/subsys/csrss/api/user.c Modified: trunk/reactos/subsys/csrss/api/wapi.c Modified: trunk/reactos/subsys/csrss/win32csr/conio.c Modified: trunk/reactos/subsys/csrss/win32csr/desktopbg.c Modified: trunk/reactos/subsys/csrss/win32csr/exitros.c Modified: trunk/reactos/subsys/smss/debug.c Modified: trunk/reactos/subsys/smss/smapi.c _____
Modified: trunk/reactos/include/ndk/lpctypes.h --- trunk/reactos/include/ndk/lpctypes.h 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/include/ndk/lpctypes.h 2005-08-11 02:58:54 UTC (rev 17275) @@ -9,7 +9,7 @@
#ifndef _LPCTYPES_H #define _LPCTYPES_H
-#define PORT_MESSAGE_TYPE(m) ((m).Header.MessageType) +#define LPC_MESSAGE_TYPE(m) ((m).Header.u2.s2.Type)
/* DEPENDENCIES **************************************************************/
@@ -18,8 +18,8 @@ /* CONSTANTS *****************************************************************/ #define LPC_MESSAGE_BASE_SIZE 24 #define MAX_MESSAGE_DATA (0x130) -#define PORT_MAX_DATA_LENGTH 0x104 -#define PORT_MAX_MESSAGE_LENGTH 0x148 +#define LPC_MAX_DATA_LENGTH 0x104 +#define LPC_MAX_MESSAGE_LENGTH 0x148
/* ENUMERATIONS **************************************************************/
@@ -42,17 +42,50 @@
/* TYPES *********************************************************************/
-/* FIXME: USE REAL DEFINITION */ -typedef struct _LPC_MESSAGE +#if defined(USE_LPC6432) +#define LPC_CLIENT_ID CLIENT_ID64 +#define LPC_SIZE_T ULONGLONG +#define LPC_PVOID ULONGLONG +#define LPC_HANDLE ULONGLONG +#else +#define LPC_CLIENT_ID CLIENT_ID +#define LPC_SIZE_T SIZE_T +#define LPC_PVOID PVOID +#define LPC_HANDLE HANDLE +#endif + +typedef struct _PORT_MESSAGE { - USHORT DataSize; - USHORT MessageSize; - USHORT MessageType; - USHORT VirtualRangesOffset; - CLIENT_ID ClientId; - ULONG MessageId; - ULONG SectionSize; -} LPC_MESSAGE, *PLPC_MESSAGE; + union + { + struct + { + CSHORT DataLength; + CSHORT TotalLength; + } s1; + ULONG Length; + } u1; + union + { + struct + { + CSHORT Type; + CSHORT DataInfoOffset; + } s2; + ULONG ZeroInit; + } u2; + union + { + LPC_CLIENT_ID ClientId; + double DoNotUseThisField; + }; + ULONG MessageId; + union + { + LPC_SIZE_T ClientViewSize; + ULONG CallbackId; + }; +} PORT_MESSAGE, *PPORT_MESSAGE;
/* FIXME: USE REAL DEFINITION */ typedef struct _LPC_SECTION_WRITE @@ -76,7 +109,7 @@ /* FIXME: USE REAL DEFINITION */ typedef struct _LPC_MAX_MESSAGE { - LPC_MESSAGE Header; + PORT_MESSAGE Header; BYTE Data[MAX_MESSAGE_DATA]; } LPC_MAX_MESSAGE, *PLPC_MAX_MESSAGE;
_____
Modified: trunk/reactos/include/ndk/zwfuncs.h --- trunk/reactos/include/ndk/zwfuncs.h 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/include/ndk/zwfuncs.h 2005-08-11 02:58:54 UTC (rev 17275) @@ -25,7 +25,7 @@
NtAcceptConnectPort( PHANDLE PortHandle, HANDLE NamedPortHandle, - PLPC_MESSAGE ServerReply, + PPORT_MESSAGE ServerReply, BOOLEAN AcceptIt, PLPC_SECTION_WRITE WriteMap, PLPC_SECTION_READ ReadMap @@ -1243,14 +1243,14 @@ STDCALL NtImpersonateClientOfPort( HANDLE PortHandle, - PLPC_MESSAGE ClientMessage + PPORT_MESSAGE ClientMessage );
NTSTATUS STDCALL ZwImpersonateClientOfPort( HANDLE PortHandle, - PLPC_MESSAGE ClientMessage + PPORT_MESSAGE ClientMessage );
NTSTATUS @@ -1316,13 +1316,13 @@ NTSTATUS STDCALL NtListenPort(HANDLE PortHandle, - PLPC_MESSAGE LpcMessage + PPORT_MESSAGE LpcMessage );
NTSTATUS STDCALL ZwListenPort(HANDLE PortHandle, - PLPC_MESSAGE LpcMessage + PPORT_MESSAGE LpcMessage );
NTSTATUS @@ -2825,7 +2825,7 @@ STDCALL NtReadRequestData( HANDLE PortHandle, - PLPC_MESSAGE Message, + PPORT_MESSAGE Message, ULONG Index, PVOID Buffer, ULONG BufferLength, @@ -2836,7 +2836,7 @@ STDCALL ZwReadRequestData( HANDLE PortHandle, - PLPC_MESSAGE Message, + PPORT_MESSAGE Message, ULONG Index, PVOID Buffer, ULONG BufferLength, @@ -2944,14 +2944,14 @@ STDCALL NtReplyPort( HANDLE PortHandle, - PLPC_MESSAGE LpcReply + PPORT_MESSAGE LpcReply );
NTSTATUS STDCALL ZwReplyPort( HANDLE PortHandle, - PLPC_MESSAGE LpcReply + PPORT_MESSAGE LpcReply );
NTSTATUS @@ -2959,8 +2959,8 @@ NtReplyWaitReceivePort( HANDLE PortHandle, PULONG PortId, - PLPC_MESSAGE MessageReply, - PLPC_MESSAGE MessageRequest + PPORT_MESSAGE MessageReply, + PPORT_MESSAGE MessageRequest );
NTSTATUS @@ -2968,51 +2968,51 @@ ZwReplyWaitReceivePort( HANDLE PortHandle, PULONG PortId, - PLPC_MESSAGE MessageReply, - PLPC_MESSAGE MessageRequest + PPORT_MESSAGE MessageReply, + PPORT_MESSAGE MessageRequest );
NTSTATUS STDCALL NtReplyWaitReplyPort( HANDLE PortHandle, - PLPC_MESSAGE ReplyMessage + PPORT_MESSAGE ReplyMessage );
NTSTATUS STDCALL ZwReplyWaitReplyPort( HANDLE PortHandle, - PLPC_MESSAGE ReplyMessage + PPORT_MESSAGE ReplyMessage );
NTSTATUS STDCALL NtRequestPort( HANDLE PortHandle, - PLPC_MESSAGE LpcMessage); + PPORT_MESSAGE LpcMessage);
NTSTATUS STDCALL ZwRequestPort( HANDLE PortHandle, - PLPC_MESSAGE LpcMessage + PPORT_MESSAGE LpcMessage );
NTSTATUS STDCALL NtRequestWaitReplyPort( HANDLE PortHandle, - PLPC_MESSAGE LpcReply, - PLPC_MESSAGE LpcRequest + PPORT_MESSAGE LpcReply, + PPORT_MESSAGE LpcRequest );
NTSTATUS STDCALL ZwRequestWaitReplyPort( HANDLE PortHandle, - PLPC_MESSAGE LpcReply, - PLPC_MESSAGE LpcRequest + PPORT_MESSAGE LpcReply, + PPORT_MESSAGE LpcRequest );
NTSTATUS @@ -3975,7 +3975,7 @@ STDCALL NtWriteRequestData( HANDLE PortHandle, - PLPC_MESSAGE Message, + PPORT_MESSAGE Message, ULONG Index, PVOID Buffer, ULONG BufferLength, @@ -3986,7 +3986,7 @@ STDCALL ZwWriteRequestData( HANDLE PortHandle, - PLPC_MESSAGE Message, + PPORT_MESSAGE Message, ULONG Index, PVOID Buffer, ULONG BufferLength, _____
Modified: trunk/reactos/include/subsys/csrss/csrss.h --- trunk/reactos/include/subsys/csrss/csrss.h 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/include/subsys/csrss/csrss.h 2005-08-11 02:58:54 UTC (rev 17275) @@ -491,7 +491,7 @@
{ union { - LPC_MESSAGE Header; + PORT_MESSAGE Header; struct { BYTE HeaderReserved[LPC_MESSAGE_BASE_SIZE]; _____
Modified: trunk/reactos/include/subsys/lsass/lsass.h --- trunk/reactos/include/subsys/lsass/lsass.h 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/include/subsys/lsass/lsass.h 2005-08-11 02:58:54 UTC (rev 17275) @@ -96,7 +96,7 @@
typedef union _LSASS_REQUEST { - LPC_MESSAGE Header; + PORT_MESSAGE Header; struct { UCHAR LpcHeader[LPC_MESSAGE_BASE_SIZE]; ULONG Type; @@ -115,7 +115,7 @@
typedef struct _LSASS_REPLY { - LPC_MESSAGE Header; + PORT_MESSAGE Header; NTSTATUS Status; union { _____
Modified: trunk/reactos/include/subsys/sm/api.h --- trunk/reactos/include/subsys/sm/api.h 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/include/subsys/sm/api.h 2005-08-11 02:58:54 UTC (rev 17275) @@ -110,7 +110,7 @@
typedef union _SM_PORT_MESSAGE { /*** LPC common header ***/ - LPC_MESSAGE Header; + PORT_MESSAGE Header; struct { UCHAR LpcHeader[LPC_MESSAGE_BASE_SIZE]; /*** SM common header ***/ @@ -138,7 +138,7 @@
/*** MACRO ***********************************************************/
-#define SM_CONNECT_DATA_SIZE(m) ((m).Header.DataSize-sizeof(USHORT)-sizeof(WORD)) +#define SM_CONNECT_DATA_SIZE(m) ((m).Header.u1.s1.DataLength-sizeof(USHORT)-sizeof(WORD)) #define SM_PORT_DATA_SIZE(c) (sizeof(DWORD)+sizeof(NTSTATUS)+sizeof(c)) #define SM_PORT_MESSAGE_SIZE (sizeof(SM_PORT_MESSAGE))
_____
Modified: trunk/reactos/lib/lsasrv/lsaport.c --- trunk/reactos/lib/lsasrv/lsaport.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/lib/lsasrv/lsaport.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -112,18 +112,18 @@
DPRINT("Received message\n");
- if (Request.Header.MessageType == LPC_PORT_CLOSED) + if (Request.Header.u2.s2.Type == LPC_PORT_CLOSED) { DPRINT("Port closed\n");
// return STATUS_UNSUCCESSFUL; } - if (Request.Header.MessageType == LPC_REQUEST) + if (Request.Header.u2.s2.Type == LPC_REQUEST) { DPRINT("Received request\n");
} - else if (Request.Header.MessageType == LPC_DATAGRAM) + else if (Request.Header.u2.s2.Type == LPC_DATAGRAM) { DPRINT("Received datagram\n");
_____
Modified: trunk/reactos/lib/ntdll/csr/lpc.c --- trunk/reactos/lib/ntdll/csr/lpc.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/lib/ntdll/csr/lpc.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -81,12 +81,12 @@
/* Fill out the header */ Request->Type = ApiNumber; - Request->Header.DataSize = RequestLength - LPC_MESSAGE_BASE_SIZE; - Request->Header.MessageSize = RequestLength; - DPRINT("CSR: API: %x, DataSize: %x, MessageSize: %x\n", + Request->Header.u1.s1.DataLength = RequestLength - LPC_MESSAGE_BASE_SIZE; + Request->Header.u1.s1.TotalLength = RequestLength; + DPRINT("CSR: API: %x, u1.s1.DataLength: %x, u1.s1.TotalLength: %x\n", ApiNumber, - Request->Header.DataSize, - Request->Header.MessageSize); + Request->Header.u1.s1.DataLength, + Request->Header.u1.s1.TotalLength);
/* Send the LPC Message */ Status = NtRequestWaitReplyPort(WindowsApiPort, _____
Modified: trunk/reactos/lib/ntdll/dbg/debug.c --- trunk/reactos/lib/ntdll/dbg/debug.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/lib/ntdll/dbg/debug.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -24,7 +24,7 @@
typedef struct _LPC_DBGSS_MESSAGE { - LPC_MESSAGE Header; + PORT_MESSAGE Header; ULONG Unknown1; ULONG Unknown2; ULONG Unknown3; @@ -45,7 +45,7 @@ Status = NtReplyWaitReceivePort (DbgSsApiPort, NULL, NULL, - (PLPC_MESSAGE)&Message); + (PPORT_MESSAGE)&Message); if (!NT_SUCCESS(Status)) { DbgPrint ("DbgSs: NtReplyWaitReceivePort failed - Status == %lx\n", _____
Modified: trunk/reactos/lib/secur32/lsa.c --- trunk/reactos/lib/secur32/lsa.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/lib/secur32/lsa.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -32,8 +32,8 @@
LSASS_REPLY Reply; NTSTATUS Status;
- Request.Header.DataSize = 0; - Request.Header.MessageSize = sizeof(LSASS_REQUEST); + Request.Header.u1.s1.DataLength = 0; + Request.Header.u1.s1.TotalLength = sizeof(LSASS_REQUEST); Request.Type = LSASS_REQUEST_DEREGISTER_LOGON_PROCESS; Status = NtRequestWaitReplyPort(LsaHandle, &Request.Header, @@ -82,10 +82,10 @@ Request = (PLSASS_REQUEST)RawRequest; Reply = (PLSASS_REPLY)RawReply;
- Request->Header.DataSize = sizeof(LSASS_REQUEST) + SubmitBufferLength - + Request->Header.u1.s1.DataLength = sizeof(LSASS_REQUEST) + SubmitBufferLength - LPC_MESSAGE_BASE_SIZE; - Request->Header.MessageSize = - Request->Header.DataSize + LPC_MESSAGE_BASE_SIZE; + Request->Header.u1.s1.TotalLength = + Request->Header.u1.s1.DataLength + LPC_MESSAGE_BASE_SIZE; Request->Type = LSASS_REQUEST_CALL_AUTHENTICATION_PACKAGE; Request->d.CallAuthenticationPackageRequest.AuthenticationPackage = AuthenticationPackage; @@ -145,9 +145,9 @@ LSASS_REPLY Reply;
Request = (PLSASS_REQUEST)RawRequest; - Request->Header.DataSize = sizeof(LSASS_REQUEST) + PackageName->Length - + Request->Header.u1.s1.DataLength = sizeof(LSASS_REQUEST) + PackageName->Length - LPC_MESSAGE_BASE_SIZE; - Request->Header.MessageSize = Request->Header.DataSize + + Request->Header.u1.s1.TotalLength = Request->Header.u1.s1.DataLength + LPC_MESSAGE_BASE_SIZE; Request->Type = LSASS_REQUEST_LOOKUP_AUTHENTICATION_PACKAGE;
@@ -236,8 +236,8 @@ Request->d.LogonUserRequest.SourceContext = *SourceContext;
Request->Type = LSASS_REQUEST_LOGON_USER; - Request->Header.DataSize = RequestLength - LPC_MESSAGE_BASE_SIZE; - Request->Header.MessageSize = RequestLength + LPC_MESSAGE_BASE_SIZE; + Request->Header.u1.s1.DataLength = RequestLength - LPC_MESSAGE_BASE_SIZE; + Request->Header.u1.s1.TotalLength = RequestLength + LPC_MESSAGE_BASE_SIZE;
Reply = (PLSASS_REPLY)RawReply;
@@ -302,9 +302,9 @@ }
Request.Type = LSASS_REQUEST_REGISTER_LOGON_PROCESS; - Request.Header.DataSize = sizeof(LSASS_REQUEST) - + Request.Header.u1.s1.DataLength = sizeof(LSASS_REQUEST) - LPC_MESSAGE_BASE_SIZE; - Request.Header.MessageSize = sizeof(LSASS_REQUEST); + Request.Header.u1.s1.TotalLength = sizeof(LSASS_REQUEST);
Request.d.RegisterLogonProcessRequest.Length = LsaLogonProcessName->Length; memcpy(Request.d.RegisterLogonProcessRequest.LogonProcessNameBuffer, _____
Modified: trunk/reactos/lib/smdll/query.c --- trunk/reactos/lib/smdll/query.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/lib/smdll/query.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -85,10 +85,10 @@
SmReqMsg.SmHeader.ApiIndex = SM_API_QUERY_INFORMATION;
/* Prepare the port request message */ - SmReqMsg.Header.MessageType = LPC_NEW_MESSAGE; - SmReqMsg.Header.DataSize = SM_PORT_DATA_SIZE(SmReqMsg.Request); - SmReqMsg.Header.MessageSize = SM_PORT_MESSAGE_SIZE; - Status = NtRequestWaitReplyPort (hSmApiPort, (PLPC_MESSAGE) & SmReqMsg, (PLPC_MESSAGE) & SmReqMsg); + SmReqMsg.Header.u2.s2.Type = LPC_NEW_MESSAGE; + SmReqMsg.Header.u1.s1.DataLength = SM_PORT_DATA_SIZE(SmReqMsg.Request); + SmReqMsg.Header.u1.s1.TotalLength = SM_PORT_MESSAGE_SIZE; + Status = NtRequestWaitReplyPort (hSmApiPort, (PPORT_MESSAGE) & SmReqMsg, (PPORT_MESSAGE) & SmReqMsg); if (NT_SUCCESS(Status)) { /* Unmarshal data */ _____
Modified: trunk/reactos/lib/smlib/compses.c --- trunk/reactos/lib/smlib/compses.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/lib/smlib/compses.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -50,10 +50,10 @@
SmReqMsg.SmHeader.ApiIndex = SM_API_COMPLETE_SESSION;
/* Port message */ - SmReqMsg.Header.MessageType = LPC_NEW_MESSAGE; - SmReqMsg.Header.DataSize = SM_PORT_DATA_SIZE(SmReqMsg.Request); - SmReqMsg.Header.MessageSize = SM_PORT_MESSAGE_SIZE; - Status = NtRequestWaitReplyPort (hSmApiPort, (PLPC_MESSAGE) & SmReqMsg, (PLPC_MESSAGE) & SmReqMsg); + SmReqMsg.Header.u2.s2.Type = LPC_NEW_MESSAGE; + SmReqMsg.Header.u1.s1.DataLength = SM_PORT_DATA_SIZE(SmReqMsg.Request); + SmReqMsg.Header.u1.s1.TotalLength = SM_PORT_MESSAGE_SIZE; + Status = NtRequestWaitReplyPort (hSmApiPort, (PPORT_MESSAGE) & SmReqMsg, (PPORT_MESSAGE) & SmReqMsg); if (NT_SUCCESS(Status)) { return SmReqMsg.SmHeader.Status; _____
Modified: trunk/reactos/lib/smlib/execpgm.c --- trunk/reactos/lib/smlib/execpgm.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/lib/smlib/execpgm.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -60,23 +60,23 @@
SmReqMsg.SmHeader.ApiIndex = SM_API_EXECUTE_PROGRAMME;
/* LPC message */ - SmReqMsg.Header.MessageType = LPC_NEW_MESSAGE; - SmReqMsg.Header.DataSize = SM_PORT_DATA_SIZE(SmReqMsg.Request); - SmReqMsg.Header.MessageSize = SM_PORT_MESSAGE_SIZE; + SmReqMsg.Header.u2.s2.Type = LPC_NEW_MESSAGE; + SmReqMsg.Header.u1.s1.DataLength = SM_PORT_DATA_SIZE(SmReqMsg.Request); + SmReqMsg.Header.u1.s1.TotalLength = SM_PORT_MESSAGE_SIZE;
DPRINT("SMLIB: %s:\n" - " MessageType = %d\n" - " DataSize = %d\n" - " MessageSize = %d\n" - " sizeof(LPC_MESSAGE)==%d\n", + " u2.s2.Type = %d\n" + " u1.s1.DataLength = %d\n" + " u1.s1.TotalLength = %d\n" + " sizeof(PORT_MESSAGE)==%d\n", __FUNCTION__, - SmReqMsg.Header.MessageType, - SmReqMsg.Header.DataSize, - SmReqMsg.Header.MessageSize, - sizeof(LPC_MESSAGE)); + SmReqMsg.Header.u2.s2.Type, + SmReqMsg.Header.u1.s1.DataLength, + SmReqMsg.Header.u1.s1.TotalLength, + sizeof(PORT_MESSAGE));
/* Call SM and wait for a reply */ - Status = NtRequestWaitReplyPort (hSmApiPort, (PLPC_MESSAGE) & SmReqMsg, (PLPC_MESSAGE) & SmReqMsg); + Status = NtRequestWaitReplyPort (hSmApiPort, (PPORT_MESSAGE) & SmReqMsg, (PPORT_MESSAGE) & SmReqMsg); if (NT_SUCCESS(Status)) { return SmReqMsg.SmHeader.Status; _____
Modified: trunk/reactos/ntoskrnl/include/internal/port.h --- trunk/reactos/ntoskrnl/include/internal/port.h 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/ntoskrnl/include/internal/port.h 2005-08-11 02:58:54 UTC (rev 17275) @@ -31,7 +31,7 @@
typedef struct _EPORT_CONNECT_REQUEST_MESSAGE { - LPC_MESSAGE MessageHeader; + PORT_MESSAGE MessageHeader; PEPROCESS ConnectingProcess; struct _SECTION_OBJECT* SendSectionObject; LARGE_INTEGER SendSectionOffset; @@ -42,7 +42,7 @@
typedef struct _EPORT_CONNECT_REPLY_MESSAGE { - LPC_MESSAGE MessageHeader; + PORT_MESSAGE MessageHeader; PVOID SendServerViewBase; ULONG ReceiveClientViewSize; PVOID ReceiveClientViewBase; @@ -58,7 +58,7 @@
NTSTATUS STDCALL LpcRequestPort (PEPORT Port, - PLPC_MESSAGE LpcMessage); + PPORT_MESSAGE LpcMessage); NTSTATUS STDCALL LpcSendTerminationPort (PEPORT Port, @@ -87,13 +87,13 @@ { PEPORT Sender; LIST_ENTRY QueueListEntry; - LPC_MESSAGE Message; + PORT_MESSAGE Message; UCHAR MessageData [MAX_MESSAGE_DATA]; } QUEUEDMESSAGE, *PQUEUEDMESSAGE;
typedef struct _LPC_DBG_MESSAGE { - LPC_MESSAGE Header; + PORT_MESSAGE Header; ULONG Type; ULONG Status; union @@ -142,7 +142,7 @@
typedef struct _LPC_TERMINATION_MESSAGE { - LPC_MESSAGE Header; + PORT_MESSAGE Header; LARGE_INTEGER CreationTime; } LPC_TERMINATION_MESSAGE, *PLPC_TERMINATION_MESSAGE;
@@ -196,7 +196,7 @@
NTSTATUS STDCALL EiReplyOrRequestPort (IN PEPORT Port, - IN PLPC_MESSAGE LpcReply, + IN PPORT_MESSAGE LpcReply, IN ULONG MessageType, IN PEPORT Sender);
_____
Modified: trunk/reactos/ntoskrnl/io/error.c --- trunk/reactos/ntoskrnl/io/error.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/ntoskrnl/io/error.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -265,7 +265,7 @@
/* Initialize the log message */ Message = (PIO_ERROR_LOG_MESSAGE)Request->Data; - Message->Type = 0xC; //IO_TYPE_ERROR_MESSAGE; + Message->Type = IO_TYPE_ERROR_MESSAGE; Message->Size = sizeof(IO_ERROR_LOG_MESSAGE) - sizeof(IO_ERROR_LOG_PACKET) + LogEntry->PacketSize + DriverNameLength; @@ -285,9 +285,9 @@
DPRINT ("SequenceNumber %lx\n", Packet->SequenceNumber);
- Request->Header.DataSize = Message->Size; - Request->Header.MessageSize = - Request->Header.DataSize + sizeof(LPC_MESSAGE); + Request->Header.u1.s1.DataLength = Message->Size; + Request->Header.u1.s1.TotalLength = + Request->Header.u1.s1.DataLength + sizeof(PPORT_MESSAGE);
/* Send the error message to the log port */ Status = ZwRequestPort (IopLogPort, _____
Modified: trunk/reactos/ntoskrnl/lpc/close.c --- trunk/reactos/ntoskrnl/lpc/close.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/ntoskrnl/lpc/close.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -31,7 +31,7 @@
LpcpClosePort (PVOID ObjectBody, ULONG HandleCount) { PEPORT Port = (PEPORT)ObjectBody; - LPC_MESSAGE Message; + PORT_MESSAGE Message;
/* FIXME Race conditions here! */
@@ -44,8 +44,8 @@ if (HandleCount == 1 && Port->State == EPORT_CONNECTED_CLIENT) { DPRINT("Informing server\n"); - Message.MessageSize = sizeof(LPC_MESSAGE); - Message.DataSize = 0; + Message.u1.s1.TotalLength = sizeof(PORT_MESSAGE); + Message.u1.s1.DataLength = 0; EiReplyOrRequestPort (Port->OtherPort, &Message, LPC_PORT_CLOSED, _____
Modified: trunk/reactos/ntoskrnl/lpc/connect.c --- trunk/reactos/ntoskrnl/lpc/connect.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/ntoskrnl/lpc/connect.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -90,14 +90,14 @@
/* * Initialize the request message. */ - RequestMessage->MessageHeader.DataSize = + RequestMessage->MessageHeader.u1.s1.DataLength = sizeof(EPORT_CONNECT_REQUEST_MESSAGE) + RequestConnectDataLength - - sizeof(LPC_MESSAGE); - RequestMessage->MessageHeader.MessageSize = + sizeof(PORT_MESSAGE); + RequestMessage->MessageHeader.u1.s1.TotalLength = sizeof(EPORT_CONNECT_REQUEST_MESSAGE) + RequestConnectDataLength; DPRINT("RequestMessageSize %d\n", - RequestMessage->MessageHeader.MessageSize); - RequestMessage->MessageHeader.SectionSize = 0; + RequestMessage->MessageHeader.u1.s1.TotalLength); + RequestMessage->MessageHeader.ClientViewSize = 0; RequestMessage->ConnectingProcess = PsGetCurrentProcess(); ObReferenceObjectByPointer(RequestMessage->ConnectingProcess, PROCESS_VM_OPERATION, @@ -148,7 +148,7 @@ /* * Check for connection refusal. */ - if (CReply->MessageHeader.MessageType == LPC_CONNECTION_REFUSED) + if (CReply->MessageHeader.u2.s2.Type == LPC_CONNECTION_REFUSED) { ObDereferenceObject(OurPort); ExFreePool(Reply); @@ -656,7 +656,7 @@ /*EXPORTED*/ NTSTATUS STDCALL NtAcceptConnectPort (PHANDLE ServerPortHandle, HANDLE NamedPortHandle, - PLPC_MESSAGE LpcMessage, + PPORT_MESSAGE LpcMessage, BOOLEAN AcceptIt, PLPC_SECTION_WRITE WriteMap, PLPC_SECTION_READ ReadMap) @@ -674,7 +674,7 @@ Size = sizeof(EPORT_CONNECT_REPLY_MESSAGE); if (LpcMessage) { - Size += LpcMessage->DataSize; + Size += LpcMessage->u1.s1.DataLength; }
CReply = ExAllocatePool(NonPagedPool, Size); @@ -746,20 +746,20 @@ */ if (LpcMessage != NULL) { - memcpy(&CReply->MessageHeader, LpcMessage, sizeof(LPC_MESSAGE)); + memcpy(&CReply->MessageHeader, LpcMessage, sizeof(PORT_MESSAGE)); memcpy(&CReply->ConnectData, (PVOID)(LpcMessage + 1), - LpcMessage->DataSize); - CReply->MessageHeader.MessageSize = - sizeof(EPORT_CONNECT_REPLY_MESSAGE) + LpcMessage->DataSize; - CReply->MessageHeader.DataSize = CReply->MessageHeader.MessageSize - - sizeof(LPC_MESSAGE); - CReply->ConnectDataLength = LpcMessage->DataSize; + LpcMessage->u1.s1.DataLength); + CReply->MessageHeader.u1.s1.TotalLength = + sizeof(EPORT_CONNECT_REPLY_MESSAGE) + LpcMessage->u1.s1.DataLength; + CReply->MessageHeader.u1.s1.DataLength = CReply->MessageHeader.u1.s1.TotalLength - + sizeof(PORT_MESSAGE); + CReply->ConnectDataLength = LpcMessage->u1.s1.DataLength; } else { - CReply->MessageHeader.MessageSize = sizeof(EPORT_CONNECT_REPLY_MESSAGE); - CReply->MessageHeader.DataSize = sizeof(EPORT_CONNECT_REPLY_MESSAGE) - - sizeof(LPC_MESSAGE); + CReply->MessageHeader.u1.s1.TotalLength = sizeof(EPORT_CONNECT_REPLY_MESSAGE); + CReply->MessageHeader.u1.s1.DataLength = sizeof(EPORT_CONNECT_REPLY_MESSAGE) - + sizeof(PORT_MESSAGE); CReply->ConnectDataLength = 0; } if (!AcceptIt) @@ -872,7 +872,7 @@ { CReply->ReceiveClientViewBase = WriteMap->TargetViewBase; } - CReply->MaximumMessageSize = PORT_MAX_MESSAGE_LENGTH; + CReply->MaximumMessageSize = LPC_MAX_MESSAGE_LENGTH;
/* @@ -881,7 +881,7 @@ OurPort->OtherPort = ConnectionRequest->Sender; OurPort->OtherPort->OtherPort = OurPort; EiReplyOrRequestPort(ConnectionRequest->Sender, - (PLPC_MESSAGE)CReply, + (PPORT_MESSAGE)CReply, LPC_REPLY, OurPort); ExFreePool(ConnectionRequest); _____
Modified: trunk/reactos/ntoskrnl/lpc/create.c --- trunk/reactos/ntoskrnl/lpc/create.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/ntoskrnl/lpc/create.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -49,11 +49,11 @@
{ return (STATUS_INVALID_PORT_ATTRIBUTES); } - if (MaxConnectInfoLength > PORT_MAX_DATA_LENGTH) + if (MaxConnectInfoLength > LPC_MAX_DATA_LENGTH) { return (STATUS_INVALID_PARAMETER_3); } - if (MaxDataLength > PORT_MAX_MESSAGE_LENGTH) + if (MaxDataLength > LPC_MAX_MESSAGE_LENGTH) { return (STATUS_INVALID_PARAMETER_4); } @@ -128,8 +128,8 @@ }
Status = LpcpInitializePort (Port, EPORT_TYPE_SERVER_RQST_PORT, NULL); - Port->MaxConnectInfoLength = PORT_MAX_DATA_LENGTH; - Port->MaxDataLength = PORT_MAX_MESSAGE_LENGTH; + Port->MaxConnectInfoLength = LPC_MAX_DATA_LENGTH; + Port->MaxDataLength = LPC_MAX_MESSAGE_LENGTH; Port->MaxPoolUsage = MaxPoolUsage;
ObDereferenceObject (Port); _____
Modified: trunk/reactos/ntoskrnl/lpc/listen.c --- trunk/reactos/ntoskrnl/lpc/listen.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/ntoskrnl/lpc/listen.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -40,7 +40,7 @@
*/ /*EXPORTED*/ NTSTATUS STDCALL NtListenPort (IN HANDLE PortHandle, - IN PLPC_MESSAGE ConnectMsg) + IN PPORT_MESSAGE ConnectMsg) { NTSTATUS Status;
@@ -58,12 +58,12 @@ * Drop any other message. */ if (!NT_SUCCESS(Status) || - LPC_CONNECTION_REQUEST == ConnectMsg->MessageType) + LPC_CONNECTION_REQUEST == ConnectMsg->u2.s2.Type) { DPRINT("Got message (type %x)\n", LPC_CONNECTION_REQUEST); break; } - DPRINT("Got message (type %x)\n", ConnectMsg->MessageType); + DPRINT("Got message (type %x)\n", ConnectMsg->u2.s2.Type); }
return (Status); _____
Modified: trunk/reactos/ntoskrnl/lpc/port.c --- trunk/reactos/ntoskrnl/lpc/port.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/ntoskrnl/lpc/port.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -121,7 +121,7 @@
*/ NTSTATUS STDCALL NtImpersonateClientOfPort (HANDLE PortHandle, - PLPC_MESSAGE ClientMessage) + PPORT_MESSAGE ClientMessage) { UNIMPLEMENTED; return(STATUS_NOT_IMPLEMENTED); _____
Modified: trunk/reactos/ntoskrnl/lpc/receive.c --- trunk/reactos/ntoskrnl/lpc/receive.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/ntoskrnl/lpc/receive.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -27,7 +27,7 @@
*/ NTSTATUS STDCALL NtReadRequestData (HANDLE PortHandle, - PLPC_MESSAGE Message, + PPORT_MESSAGE Message, ULONG Index, PVOID Buffer, ULONG BufferLength, _____
Modified: trunk/reactos/ntoskrnl/lpc/reply.c --- trunk/reactos/ntoskrnl/lpc/reply.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/ntoskrnl/lpc/reply.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -31,7 +31,7 @@
*/ NTSTATUS STDCALL EiReplyOrRequestPort (IN PEPORT Port, - IN PLPC_MESSAGE LpcReply, + IN PPORT_MESSAGE LpcReply, IN ULONG MessageType, IN PEPORT Sender) { @@ -49,12 +49,12 @@
if (LpcReply != NULL) { - memcpy(&MessageReply->Message, LpcReply, LpcReply->MessageSize); + memcpy(&MessageReply->Message, LpcReply, LpcReply->u1.s1.TotalLength); }
MessageReply->Message.ClientId.UniqueProcess = PsGetCurrentProcessId(); MessageReply->Message.ClientId.UniqueThread = PsGetCurrentThreadId(); - MessageReply->Message.MessageType = MessageType; + MessageReply->Message.u2.s2.Type = MessageType; MessageReply->Message.MessageId = InterlockedIncrementUL(&LpcpNextMessageId);
KeAcquireSpinLock(&Port->Lock, &oldIrql); @@ -78,7 +78,7 @@ */ NTSTATUS STDCALL NtReplyPort (IN HANDLE PortHandle, - IN PLPC_MESSAGE LpcReply) + IN PPORT_MESSAGE LpcReply) { NTSTATUS Status; PEPORT Port; @@ -137,8 +137,8 @@ NTSTATUS STDCALL NtReplyWaitReceivePortEx(IN HANDLE PortHandle, OUT PULONG PortId, - IN PLPC_MESSAGE LpcReply, - OUT PLPC_MESSAGE LpcMessage, + IN PPORT_MESSAGE LpcReply, + OUT PPORT_MESSAGE LpcMessage, IN PLARGE_INTEGER Timeout) { PEPORT Port; @@ -159,7 +159,7 @@ _SEH_TRY { ProbeForWrite(LpcMessage, - sizeof(LPC_MESSAGE), + sizeof(PORT_MESSAGE), 1); } _SEH_HANDLE @@ -252,15 +252,15 @@ Request = EiDequeueMessagePort(Port); KeReleaseSpinLock(&Port->Lock, oldIrql);
- if (Request->Message.MessageType == LPC_CONNECTION_REQUEST) + if (Request->Message.u2.s2.Type == LPC_CONNECTION_REQUEST) { - LPC_MESSAGE Header; + PORT_MESSAGE Header; PEPORT_CONNECT_REQUEST_MESSAGE CRequest;
CRequest = (PEPORT_CONNECT_REQUEST_MESSAGE)&Request->Message; - memcpy(&Header, &Request->Message, sizeof(LPC_MESSAGE)); - Header.DataSize = CRequest->ConnectDataLength; - Header.MessageSize = Header.DataSize + sizeof(LPC_MESSAGE); + memcpy(&Header, &Request->Message, sizeof(PORT_MESSAGE)); + Header.u1.s1.DataLength = CRequest->ConnectDataLength; + Header.u1.s1.TotalLength = Header.u1.s1.DataLength + sizeof(PORT_MESSAGE);
if (PreviousMode != KernelMode) { @@ -272,7 +272,7 @@
RtlCopyMemory(LpcMessage, &Header, - sizeof(LPC_MESSAGE)); + sizeof(PORT_MESSAGE)); RtlCopyMemory((PVOID)(LpcMessage + 1), CRequest->ConnectData, CRequest->ConnectDataLength); @@ -287,7 +287,7 @@ { RtlCopyMemory(LpcMessage, &Header, - sizeof(LPC_MESSAGE)); + sizeof(PORT_MESSAGE)); RtlCopyMemory((PVOID)(LpcMessage + 1), CRequest->ConnectData, CRequest->ConnectDataLength); @@ -300,12 +300,12 @@ _SEH_TRY { ProbeForWrite(LpcMessage, - Request->Message.MessageSize, + Request->Message.u1.s1.TotalLength, 1);
RtlCopyMemory(LpcMessage, &Request->Message, - Request->Message.MessageSize); + Request->Message.u1.s1.TotalLength); } _SEH_HANDLE { @@ -317,7 +317,7 @@ { RtlCopyMemory(LpcMessage, &Request->Message, - Request->Message.MessageSize); + Request->Message.u1.s1.TotalLength); } } if (!NT_SUCCESS(Status)) @@ -333,7 +333,7 @@ ObDereferenceObject(Port); return(Status); } - if (Request->Message.MessageType == LPC_CONNECTION_REQUEST) + if (Request->Message.u2.s2.Type == LPC_CONNECTION_REQUEST) { KeAcquireSpinLock(&Port->Lock, &oldIrql); EiEnqueueConnectMessagePort(Port, Request); @@ -372,8 +372,8 @@ NTSTATUS STDCALL NtReplyWaitReceivePort (IN HANDLE PortHandle, OUT PULONG PortId, - IN PLPC_MESSAGE LpcReply, - OUT PLPC_MESSAGE LpcMessage) + IN PPORT_MESSAGE LpcReply, + OUT PPORT_MESSAGE LpcMessage) { return(NtReplyWaitReceivePortEx (PortHandle, PortId, @@ -395,7 +395,7 @@ */ NTSTATUS STDCALL NtReplyWaitReplyPort (HANDLE PortHandle, - PLPC_MESSAGE ReplyMessage) + PPORT_MESSAGE ReplyMessage) { UNIMPLEMENTED; return(STATUS_NOT_IMPLEMENTED); @@ -408,8 +408,8 @@ STDCALL LpcRequestWaitReplyPort ( IN PEPORT Port, - IN PLPC_MESSAGE LpcMessageRequest, - OUT PLPC_MESSAGE LpcMessageReply + IN PPORT_MESSAGE LpcMessageRequest, + OUT PPORT_MESSAGE LpcMessageReply ) { UNIMPLEMENTED; _____
Modified: trunk/reactos/ntoskrnl/lpc/send.c --- trunk/reactos/ntoskrnl/lpc/send.c 2005-08-11 02:51:51 UTC (rev 17274) +++ trunk/reactos/ntoskrnl/lpc/send.c 2005-08-11 02:58:54 UTC (rev 17275) @@ -36,7 +36,7 @@
LPC_TERMINATION_MESSAGE Msg;
[truncated at 1000 lines; 1082 more skipped]