* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-/* $Id: message.c,v 1.24 2003/07/24 05:51:26 gvg Exp $
+/* $Id: message.c,v 1.25 2003/07/25 23:53:36 dwelch Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
RtlCopyMemory(Msg, &Message->Msg, sizeof(MSG));
if (RemoveMessages)
{
- ExFreePool(Message);
+ MsqDestroyMessage(Message);
}
return TRUE;
}
RtlCopyMemory(Msg, &Message->Msg, sizeof(MSG));
if (RemoveMessages)
{
- ExFreePool(Message);
+ MsqDestroyMessage(Message);
}
return TRUE;
}
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-/* $Id: msgqueue.c,v 1.10 2003/07/05 16:04:01 chorns Exp $
+/* $Id: msgqueue.c,v 1.11 2003/07/25 23:53:36 dwelch Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
static KEVENT HardwareMessageEvent;
+static PAGED_LOOKASIDE_LIST MessageLookasideList;
+
/* FUNCTIONS *****************************************************************/
VOID FASTCALL
KeInitializeEvent(&HardwareMessageEvent, NotificationEvent, 0);
KeInitializeSpinLock(&SystemMessageQueueLock);
ExInitializeFastMutex(&HardwareMessageQueueLock);
+
+ ExInitializePagedLookasideList(&MessageLookasideList,
+ NULL,
+ NULL,
+ 0,
+ sizeof(USER_MESSAGE),
+ 0,
+ 256);
+
return(STATUS_SUCCESS);
}
(SystemMessageQueueHead + 1) % SYSTEM_MESSAGE_QUEUE_SIZE;
SystemMessageQueueCount--;
KeReleaseSpinLock(&SystemMessageQueueLock, OldIrql);
- UserMsg = ExAllocatePool(NonPagedPool, sizeof(USER_MESSAGE));
+ UserMsg = ExAllocateFromPagedLookasideList(&MessageLookasideList);
UserMsg->Msg = Msg;
InsertTailList(&HardwareMessageQueueHead, &UserMsg->ListEntry);
KeAcquireSpinLock(&SystemMessageQueueLock, &OldIrql);
{
PUSER_MESSAGE Message;
- Message = (PUSER_MESSAGE)ExAllocatePool(PagedPool, sizeof(USER_MESSAGE));
+ Message = ExAllocateFromPagedLookasideList(&MessageLookasideList);
if (!Message)
{
return NULL;
VOID FASTCALL
MsqDestroyMessage(PUSER_MESSAGE Message)
{
- ExFreePool(Message);
+ ExFreeToPagedLookasideList(&MessageLookasideList, Message);
}
VOID FASTCALL
CurrentMessage = CONTAINING_RECORD(CurrentEntry, USER_MESSAGE,
ListEntry);
CurrentEntry = CurrentEntry->Flink;
- ExFreePool(CurrentMessage);
+ MsqDestroyMessage(CurrentMessage);
}
}