MCPcopy Create free account
hub / github.com/bobranten/Ext4Fsd / Ext2FreeFcb

Function Ext2FreeFcb

Ext4Fsd/memory.c:239–273  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

237}
238
239VOID
240Ext2FreeFcb (IN PEXT2_FCB Fcb)
241{
242 PEXT2_VCB Vcb = Fcb->Vcb;
243
244 __try {
245
246 ASSERT((Fcb != NULL) && (Fcb->Identifier.Type == EXT2FCB) &&
247 (Fcb->Identifier.Size == sizeof(EXT2_FCB)));
248 ASSERT(0 == Fcb->ReferenceCount);
249
250#ifndef _WIN2K_TARGET_
251 FsRtlTeardownPerStreamContexts(&Fcb->Header);
252#endif
253
254 FsRtlUninitializeFileLock(&Fcb->FileLockAnchor);
255 FsRtlUninitializeOplock(&Fcb->Oplock);
256 ExDeleteResourceLite(&Fcb->MainResource);
257 ExDeleteResourceLite(&Fcb->PagingIoResource);
258
259 Fcb->Identifier.Type = 0;
260 Fcb->Identifier.Size = 0;
261
262 ExFreeToNPagedLookasideList(&(Ext2Global->Ext2FcbLookasideList), Fcb);
263 DEC_MEM_COUNT(PS_FCB, Fcb, sizeof(EXT2_FCB));
264
265 if (0 == Ext2DerefXcb(&Vcb->ReferenceCount)) {
266 if (!IsMounted(Vcb) || IsDispending(Vcb)) {
267 Ext2CheckDismount(NULL, Vcb, FALSE);
268 }
269 }
270
271 } __finally {
272 }
273}
274
275VOID
276Ext2ReleaseFcb (IN PEXT2_FCB Fcb)

Callers 1

Ext2FcbReaperThreadFunction · 0.85

Calls 1

Ext2CheckDismountFunction · 0.85

Tested by

no test coverage detected