KeAcquireSpinLock(&AllocationListLock, &oldIrql);
if (MmGetReferenceCountPage(Page) == 1)
{
- InterlockedDecrement(&MiMemoryConsumers[Consumer].PagesUsed);
- InterlockedIncrement(&MiNrAvailablePages);
- InterlockedDecrement(&MiPagesRequired);
+ InterlockedDecrement((LONG *)&MiMemoryConsumers[Consumer].PagesUsed);
+ InterlockedIncrement((LONG *)&MiNrAvailablePages);
+ InterlockedDecrement((LONG *)&MiPagesRequired);
if (IsListEmpty(&AllocationListHead))
{
KeReleaseSpinLock(&AllocationListLock, oldIrql);
/*
* Make sure we don't exceed our individual target.
*/
- OldUsed = InterlockedIncrement(&MiMemoryConsumers[Consumer].PagesUsed);
+ OldUsed = InterlockedIncrement((LONG *)&MiMemoryConsumers[Consumer].PagesUsed);
if (OldUsed >= (MiMemoryConsumers[Consumer].PagesTarget - 1) &&
WorkerThreadId != PsGetCurrentThreadId())
{
if (!CanWait)
{
- InterlockedDecrement(&MiMemoryConsumers[Consumer].PagesUsed);
+ InterlockedDecrement((LONG *)&MiMemoryConsumers[Consumer].PagesUsed);
return(STATUS_NO_MEMORY);
}
MiTrimMemoryConsumer(Consumer);
/*
* Make sure we don't exceed global targets.
*/
- OldAvailable = InterlockedDecrement(&MiNrAvailablePages);
+ OldAvailable = InterlockedDecrement((LONG *)&MiNrAvailablePages);
if (OldAvailable < MiMinimumAvailablePages)
{
MM_ALLOCATION_REQUEST Request;
if (!CanWait)
{
- InterlockedIncrement(&MiNrAvailablePages);
- InterlockedDecrement(&MiMemoryConsumers[Consumer].PagesUsed);
+ InterlockedIncrement((LONG *)&MiNrAvailablePages);
+ InterlockedDecrement((LONG *)&MiMemoryConsumers[Consumer].PagesUsed);
return(STATUS_NO_MEMORY);
}
/* Insert an allocation request. */
Request.Page.QuadPart = 0LL;
KeInitializeEvent(&Request.Event, NotificationEvent, FALSE);
- InterlockedIncrement(&MiPagesRequired);
+ InterlockedIncrement((LONG *)&MiPagesRequired);
KeAcquireSpinLock(&AllocationListLock, &oldIrql);
if (NrWorkingThreads == 0)