Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 920 of file pinsup.c.
{ if (RealBcb->RefCount <= 2) { RealBcb->Exclusive = FALSE; if (RealBcb->ExclusiveWaiter) { DPRINT("Triggering exclusive waiter\n"); KeSetEvent(&RealBcb->ExclusiveWait, IO_NO_INCREMENT, FALSE); return TRUE; } } if (RealBcb->RefCount == 2 && !ReleaseBit) return FALSE; if (RealBcb->RefCount > 1) { DPRINT("Removing one reference #%x\n", RealBcb - CcCacheSections); RealBcb->RefCount--; KeSetEvent(&CcDeleteEvent, IO_DISK_INCREMENT, FALSE); } if (RealBcb->RefCount == 1) { DPRINT("Clearing allocation bit #%x\n", RealBcb - CcCacheSections); RtlClearBit(CcCacheBitmap, RealBcb - CcCacheSections); #ifdef PIN_WRITE_ONLY PVOID BaseAddress = RealBcb->BaseAddress; SIZE_T NumberOfBytes = RealBcb->Length; ULONG OldProtect; MiProtectVirtualMemory(NULL, &BaseAddress, &NumberOfBytes, PAGE_READONLY, &OldProtect); #endif } return TRUE; }