[NTOS:LPC]: Code formatting, with hardocded_flags--;

svn path=/trunk/; revision=59965
This commit is contained in:
Hermès Bélusca-Maïto 2013-09-02 21:09:56 +00:00
parent cdb303dc54
commit f475efbd85
4 changed files with 59 additions and 45 deletions

View file

@ -57,6 +57,12 @@
#define LPCP_THREAD_FLAGS (LPCP_THREAD_FLAG_IS_PORT | \
LPCP_THREAD_FLAG_NO_IMPERSONATION)
//
// LPC Locking Flags
//
#define LPCP_LOCK_OWNED 1
#define LPCP_LOCK_RELEASE 2
//
// Internal Port Management
//
@ -86,7 +92,7 @@ VOID
NTAPI
LpcpFreeToPortZone(
IN PLPCP_MESSAGE Message,
IN ULONG Flags
IN ULONG LockFlags
);
VOID
@ -104,7 +110,7 @@ NTAPI
LpcpSaveDataInfoMessage(
IN PLPCP_PORT_OBJECT Port,
IN PLPCP_MESSAGE Message,
IN ULONG LockHeld
IN ULONG LockFlags
);
//

View file

@ -50,14 +50,17 @@ LpcExitThread(IN PETHREAD Thread)
VOID
NTAPI
LpcpFreeToPortZone(IN PLPCP_MESSAGE Message,
IN ULONG Flags)
IN ULONG LockFlags)
{
PLPCP_CONNECTION_MESSAGE ConnectMessage;
PLPCP_PORT_OBJECT ClientPort = NULL;
PETHREAD Thread = NULL;
BOOLEAN LockHeld = Flags & 1, ReleaseLock = Flags & 2;
BOOLEAN LockHeld = (LockFlags & LPCP_LOCK_OWNED);
BOOLEAN ReleaseLock = (LockFlags & LPCP_LOCK_RELEASE);
PAGED_CODE();
LPCTRACE(LPC_CLOSE_DEBUG, "Message: %p. Flags: %lx\n", Message, Flags);
LPCTRACE(LPC_CLOSE_DEBUG, "Message: %p. LockFlags: %lx\n", Message, LockFlags);
/* Acquire the lock if not already */
if (!LockHeld) KeAcquireGuardedMutex(&LpcpLock);
@ -183,7 +186,7 @@ LpcpDestroyPortQueue(IN PLPCP_PORT_OBJECT Port,
Thread->LpcReplyMessage = NULL;
/* And remove the message from the port zone */
LpcpFreeToPortZone(Message, 1);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED);
NextEntry = Port->LpcReplyChainHead.Flink;
}
@ -210,7 +213,7 @@ LpcpDestroyPortQueue(IN PLPCP_PORT_OBJECT Port,
InitializeListHead(&Message->Entry);
/* Remove it from the port zone */
LpcpFreeToPortZone(Message, 1);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED);
}
/* Release the lock */
@ -404,7 +407,7 @@ LpcpDeletePort(IN PVOID ObjectBody)
/* Free queued messages */
RemoveEntryList(&Message->Entry);
InitializeListHead(&Message->Entry);
LpcpFreeToPortZone(Message, 1);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED);
/* Restart at the head */
NextEntry = ListHead->Flink;
@ -417,7 +420,7 @@ LpcpDeletePort(IN PVOID ObjectBody)
/* Remove it */
RemoveEntryList(&Message->Entry);
InitializeListHead(&Message->Entry);
LpcpFreeToPortZone(Message, 1);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED);
/* Restart at the head */
NextEntry = ListHead->Flink;

View file

@ -48,7 +48,7 @@ LpcpFreeDataInfoMessage(IN PLPCP_PORT_OBJECT Port,
/* Unlink and free it */
RemoveEntryList(&Message->Entry);
InitializeListHead(&Message->Entry);
LpcpFreeToPortZone(Message, 1);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED);
break;
}
@ -61,8 +61,10 @@ VOID
NTAPI
LpcpSaveDataInfoMessage(IN PLPCP_PORT_OBJECT Port,
IN PLPCP_MESSAGE Message,
IN ULONG LockHeld)
IN ULONG LockFlags)
{
BOOLEAN LockHeld = (LockFlags & LPCP_LOCK_OWNED);
PAGED_CODE();
/* Acquire the lock */
@ -236,7 +238,7 @@ NtReplyPort(IN HANDLE PortHandle,
Request) != LPC_REQUEST)))
{
/* It isn't, fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
if (ConnectionPort) ObDereferenceObject(ConnectionPort);
ObDereferenceObject(WakeupThread);
ObDereferenceObject(Port);
@ -255,7 +257,7 @@ NtReplyPort(IN HANDLE PortHandle,
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
/* Fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
ObDereferenceObject(WakeupThread);
ObDereferenceObject(Port);
_SEH2_YIELD(return _SEH2_GetExceptionCode());
@ -480,7 +482,7 @@ NtReplyWaitReceivePortEx(IN HANDLE PortHandle,
Request) != LPC_REQUEST)))
{
/* It isn't, fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
if (ConnectionPort) ObDereferenceObject(ConnectionPort);
ObDereferenceObject(WakeupThread);
ObDereferenceObject(Port);
@ -637,7 +639,7 @@ NtReplyWaitReceivePortEx(IN HANDLE PortHandle,
if (Message->Request.u2.s2.DataInfoOffset)
{
/* It does, save it, and don't free the message below */
LpcpSaveDataInfoMessage(Port, Message, 1);
LpcpSaveDataInfoMessage(Port, Message, LPCP_LOCK_OWNED);
Message = NULL;
}
}
@ -659,7 +661,7 @@ NtReplyWaitReceivePortEx(IN HANDLE PortHandle,
if (Message)
{
/* Free it and release the lock */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
}
else
{

View file

@ -26,7 +26,10 @@ LpcRequestPort(IN PVOID PortObject,
ULONG MessageType;
PLPCP_MESSAGE Message;
KPROCESSOR_MODE PreviousMode = KeGetPreviousMode();
PETHREAD Thread = PsGetCurrentThread();
PAGED_CODE();
LPCTRACE(LPC_SEND_DEBUG, "Port: %p. Message: %p\n", Port, LpcMessage);
/* Check if this is a non-datagram message */
@ -59,7 +62,7 @@ LpcRequestPort(IN PVOID PortObject,
/* Can't have data information on this type of call */
if (LpcMessage->u2.s2.DataInfoOffset) return STATUS_INVALID_PARAMETER;
/* Validate message sizes */
/* Validate the message length */
if (((ULONG)LpcMessage->u1.s1.TotalLength > Port->MaxMessageLength) ||
((ULONG)LpcMessage->u1.s1.TotalLength <= (ULONG)LpcMessage->u1.s1.DataLength))
{
@ -80,7 +83,7 @@ LpcRequestPort(IN PVOID PortObject,
LpcMessage,
LpcMessage + 1,
MessageType,
&PsGetCurrentThread()->Cid);
&Thread->Cid);
/* Acquire the LPC lock */
KeAcquireGuardedMutex(&LpcpLock);
@ -101,7 +104,7 @@ LpcRequestPort(IN PVOID PortObject,
if (!ConnectionPort)
{
/* Fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
return STATUS_PORT_DISCONNECTED;
}
}
@ -112,7 +115,7 @@ LpcRequestPort(IN PVOID PortObject,
if (!ConnectionPort)
{
/* Fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
return STATUS_PORT_DISCONNECTED;
}
}
@ -136,7 +139,7 @@ LpcRequestPort(IN PVOID PortObject,
Message->Request.CallbackId = 0;
/* No Message ID for the thread */
PsGetCurrentThread()->LpcReplyMessageId = 0;
Thread->LpcReplyMessageId = 0;
/* Insert the message in our chain */
InsertTailList(&QueuePort->MsgQueue.ReceiveHead, &Message->Entry);
@ -161,7 +164,7 @@ LpcRequestPort(IN PVOID PortObject,
}
/* If we got here, then free the message and fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
if (ConnectionPort) ObDereferenceObject(ConnectionPort);
return STATUS_PORT_DISCONNECTED;
}
@ -281,7 +284,7 @@ LpcRequestWaitReplyPort(IN PVOID PortObject,
if (!QueuePort)
{
/* We have no connected port, fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
return STATUS_PORT_DISCONNECTED;
}
@ -297,7 +300,7 @@ LpcRequestWaitReplyPort(IN PVOID PortObject,
if (!ConnectionPort)
{
/* Fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
return STATUS_PORT_DISCONNECTED;
}
}
@ -309,7 +312,7 @@ LpcRequestWaitReplyPort(IN PVOID PortObject,
if (!ConnectionPort)
{
/* Fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
return STATUS_PORT_DISCONNECTED;
}
}
@ -409,9 +412,8 @@ LpcRequestWaitReplyPort(IN PVOID PortObject,
Message->RepliedToThread = NULL;
}
/* Free the message */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
}
else
{
@ -444,15 +446,16 @@ NTAPI
NtRequestPort(IN HANDLE PortHandle,
IN PPORT_MESSAGE LpcRequest)
{
PLPCP_PORT_OBJECT Port, QueuePort, ConnectionPort = NULL;
KPROCESSOR_MODE PreviousMode = KeGetPreviousMode();
NTSTATUS Status;
PLPCP_MESSAGE Message;
PETHREAD Thread = PsGetCurrentThread();
PKSEMAPHORE Semaphore;
PLPCP_PORT_OBJECT Port, QueuePort, ConnectionPort = NULL;
ULONG MessageType;
PLPCP_MESSAGE Message;
KPROCESSOR_MODE PreviousMode = KeGetPreviousMode();
PETHREAD Thread = PsGetCurrentThread();
PKSEMAPHORE Semaphore;
PAGED_CODE();
LPCTRACE(LPC_SEND_DEBUG,
"Handle: %p. Message: %p. Type: %lx\n",
PortHandle,
@ -505,10 +508,10 @@ NtRequestPort(IN HANDLE PortHandle,
{
/* Copy it */
LpcpMoveMessage(&Message->Request,
LpcRequest,
LpcRequest + 1,
MessageType,
&Thread->Cid);
LpcRequest,
LpcRequest + 1,
MessageType,
&Thread->Cid);
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
@ -533,7 +536,7 @@ NtRequestPort(IN HANDLE PortHandle,
if (!QueuePort)
{
/* We have no connected port, fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
ObDereferenceObject(Port);
return STATUS_PORT_DISCONNECTED;
}
@ -547,7 +550,7 @@ NtRequestPort(IN HANDLE PortHandle,
if (!ConnectionPort)
{
/* Fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
ObDereferenceObject(Port);
return STATUS_PORT_DISCONNECTED;
}
@ -560,7 +563,7 @@ NtRequestPort(IN HANDLE PortHandle,
if (!ConnectionPort)
{
/* Fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
ObDereferenceObject(Port);
return STATUS_PORT_DISCONNECTED;
}
@ -587,7 +590,7 @@ NtRequestPort(IN HANDLE PortHandle,
Message->Request.CallbackId = 0;
/* No Message ID for the thread */
PsGetCurrentThread()->LpcReplyMessageId = 0;
Thread->LpcReplyMessageId = 0;
/* Insert the message in our chain */
InsertTailList(&QueuePort->MsgQueue.ReceiveHead, &Message->Entry);
@ -626,7 +629,7 @@ NtRequestPort(IN HANDLE PortHandle,
Status);
/* The wait failed, free the message */
if (Message) LpcpFreeToPortZone(Message, 3);
if (Message) LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
ObDereferenceObject(Port);
if (ConnectionPort) ObDereferenceObject(ConnectionPort);
@ -759,7 +762,7 @@ NtRequestWaitReplyPort(IN HANDLE PortHandle,
if (!QueuePort)
{
/* We have no connected port, fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
ObDereferenceObject(Port);
return STATUS_PORT_DISCONNECTED;
}
@ -776,7 +779,7 @@ NtRequestWaitReplyPort(IN HANDLE PortHandle,
if (!ConnectionPort)
{
/* Fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
ObDereferenceObject(Port);
return STATUS_PORT_DISCONNECTED;
}
@ -789,7 +792,7 @@ NtRequestWaitReplyPort(IN HANDLE PortHandle,
if (!ConnectionPort)
{
/* Fail */
LpcpFreeToPortZone(Message, 3);
LpcpFreeToPortZone(Message, LPCP_LOCK_OWNED | LPCP_LOCK_RELEASE);
ObDereferenceObject(Port);
return STATUS_PORT_DISCONNECTED;
}