mirror of
https://github.com/reactos/reactos.git
synced 2025-04-05 13:11:22 +00:00
Minor changes for NT compatibility.
svn path=/trunk/; revision=7504
This commit is contained in:
parent
eda6d2e794
commit
f6f1650b2b
1 changed files with 41 additions and 6 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $Id: send.c,v 1.13 2003/12/14 17:44:02 hbirr Exp $
|
||||
/* $Id: send.c,v 1.14 2004/01/07 21:13:22 ea Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -23,6 +23,7 @@
|
|||
|
||||
/**********************************************************************
|
||||
* NAME
|
||||
* LpcSendTerminationPort/2
|
||||
*
|
||||
* DESCRIPTION
|
||||
*
|
||||
|
@ -38,7 +39,10 @@ LpcSendTerminationPort (IN PEPORT Port,
|
|||
{
|
||||
NTSTATUS Status;
|
||||
LPC_TERMINATION_MESSAGE Msg;
|
||||
|
||||
|
||||
#ifdef __USE_NT_LPC__
|
||||
Msg.Header.MessageType = LPC_NEW_MESSAGE;
|
||||
#endif
|
||||
Msg.CreationTime = CreationTime;
|
||||
Status = LpcRequestPort (Port, &Msg.Header);
|
||||
return(Status);
|
||||
|
@ -47,6 +51,7 @@ LpcSendTerminationPort (IN PEPORT Port,
|
|||
|
||||
/**********************************************************************
|
||||
* NAME
|
||||
* LpcSendDebugMessagePort/3
|
||||
*
|
||||
* DESCRIPTION
|
||||
*
|
||||
|
@ -100,7 +105,8 @@ LpcSendDebugMessagePort (IN PEPORT Port,
|
|||
|
||||
/**********************************************************************
|
||||
* NAME
|
||||
*
|
||||
* LpcRequestPort/2
|
||||
*
|
||||
* DESCRIPTION
|
||||
*
|
||||
* ARGUMENTS
|
||||
|
@ -108,6 +114,11 @@ LpcSendDebugMessagePort (IN PEPORT Port,
|
|||
* RETURN VALUE
|
||||
*
|
||||
* REVISIONS
|
||||
* 2002-03-01 EA
|
||||
* I investigated this function a bit more in depth.
|
||||
* It looks like the legal values for the MessageType field in the
|
||||
* message to send are in the range LPC_NEW_MESSAGE .. LPC_CLIENT_DIED,
|
||||
* but LPC_DATAGRAM is explicitly forbidden.
|
||||
*
|
||||
* @implemented
|
||||
*/
|
||||
|
@ -116,8 +127,29 @@ NTSTATUS STDCALL LpcRequestPort (IN PEPORT Port,
|
|||
{
|
||||
NTSTATUS Status;
|
||||
|
||||
DPRINT("LpcRequestPort(PortHandle %x LpcMessage %x)\n", Port, LpcMessage);
|
||||
|
||||
DPRINT("LpcRequestPort(PortHandle %08x, LpcMessage %08x)\n", Port, LpcMessage);
|
||||
|
||||
#ifdef __USE_NT_LPC__
|
||||
/* Check the message's type */
|
||||
if (LPC_NEW_MESSAGE == LpcMessage->MessageType)
|
||||
{
|
||||
LpcMessage->MessageType = LPC_DATAGRAM;
|
||||
}
|
||||
else if (LPC_DATAGRAM == LpcMessage->MessageType)
|
||||
{
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
else if (LpcMessage->MessageType > LPC_CLIENT_DIED)
|
||||
{
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
/* Check the range offset */
|
||||
if (0 != LpcMessage->VirtualRangesOffset)
|
||||
{
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
#endif
|
||||
|
||||
Status = EiReplyOrRequestPort(Port,
|
||||
LpcMessage,
|
||||
LPC_DATAGRAM,
|
||||
|
@ -130,6 +162,7 @@ NTSTATUS STDCALL LpcRequestPort (IN PEPORT Port,
|
|||
|
||||
/**********************************************************************
|
||||
* NAME
|
||||
* NtRequestPort/2
|
||||
*
|
||||
* DESCRIPTION
|
||||
*
|
||||
|
@ -172,6 +205,7 @@ NTSTATUS STDCALL NtRequestPort (IN HANDLE PortHandle,
|
|||
|
||||
/**********************************************************************
|
||||
* NAME
|
||||
* NtRequestWaitReplyPort/3
|
||||
*
|
||||
* DESCRIPTION
|
||||
*
|
||||
|
@ -308,7 +342,8 @@ NtRequestWaitReplyPort (IN HANDLE PortHandle,
|
|||
|
||||
/**********************************************************************
|
||||
* NAME
|
||||
*
|
||||
* NtWriteRequestData/6
|
||||
*
|
||||
* DESCRIPTION
|
||||
*
|
||||
* ARGUMENTS
|
||||
|
|
Loading…
Reference in a new issue