don't count references for the default quota block and fixed warnings

svn path=/trunk/; revision=16947
This commit is contained in:
Thomas Bluemel 2005-08-01 11:58:47 +00:00
parent f4ff4e648a
commit 1ae15efc80

View file

@ -19,17 +19,18 @@ VOID
STDCALL STDCALL
PspInheritQuota(PEPROCESS Process, PEPROCESS ParentProcess) PspInheritQuota(PEPROCESS Process, PEPROCESS ParentProcess)
{ {
PEPROCESS_QUOTA_BLOCK QuotaBlock;
if (ParentProcess != NULL) if (ParentProcess != NULL)
QuotaBlock = ParentProcess->QuotaBlock; {
else PEPROCESS_QUOTA_BLOCK QuotaBlock = ParentProcess->QuotaBlock;
QuotaBlock = &PspDefaultQuotaBlock;
ASSERT(QuotaBlock != NULL); ASSERT(QuotaBlock != NULL);
InterlockedIncrement(&QuotaBlock->ReferenceCount); InterlockedIncrementUL(&QuotaBlock->ReferenceCount);
Process->QuotaBlock = QuotaBlock; Process->QuotaBlock = QuotaBlock;
}
else
Process->QuotaBlock = &PspDefaultQuotaBlock;
} }
VOID VOID
@ -38,9 +39,9 @@ PspDestroyQuotaBlock(PEPROCESS Process)
{ {
PEPROCESS_QUOTA_BLOCK QuotaBlock = Process->QuotaBlock; 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);
} }
} }