STDCALL
PspInheritQuota(PEPROCESS Process, PEPROCESS ParentProcess)
{
- PEPROCESS_QUOTA_BLOCK QuotaBlock;
-
if (ParentProcess != NULL)
- QuotaBlock = ParentProcess->QuotaBlock;
- else
- QuotaBlock = &PspDefaultQuotaBlock;
-
- ASSERT(QuotaBlock != NULL);
+ {
+ PEPROCESS_QUOTA_BLOCK QuotaBlock = ParentProcess->QuotaBlock;
+
+ ASSERT(QuotaBlock != NULL);
- InterlockedIncrement(&QuotaBlock->ReferenceCount);
- Process->QuotaBlock = QuotaBlock;
+ InterlockedIncrementUL(&QuotaBlock->ReferenceCount);
+
+ Process->QuotaBlock = QuotaBlock;
+ }
+ else
+ Process->QuotaBlock = &PspDefaultQuotaBlock;
}
VOID
{
PEPROCESS_QUOTA_BLOCK QuotaBlock = Process->QuotaBlock;
- if (InterlockedDecrement(&QuotaBlock->ReferenceCount) == 0)
+ if (QuotaBlock != &PspDefaultQuotaBlock &&
+ InterlockedDecrementUL(&QuotaBlock->ReferenceCount) == 0)
{
- if (QuotaBlock != &PspDefaultQuotaBlock)
- ExFreePool(QuotaBlock);
+ ExFreePool(QuotaBlock);
}
}