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

Function Ext2FreeCcb

Ext4Fsd/memory.c:355–384  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

353}
354
355VOID
356Ext2FreeCcb (IN PEXT2_VCB Vcb, IN PEXT2_CCB Ccb)
357{
358 ASSERT(Ccb != NULL);
359 ASSERT((Ccb->Identifier.Type == EXT2CCB) &&
360 (Ccb->Identifier.Size == sizeof(EXT2_CCB)));
361
362 DEBUG(DL_RES, ( "Ext2FreeCcb: Ccb = %ph.\n", Ccb));
363
364 if (Ccb->SymLink) {
365 DEBUG(DL_INF, ( "Ext2FreeCcb: Ccb SymLink: %wZ.\n",
366 &Ccb->SymLink->FullName));
367 if (IsFileDeleted(Ccb->SymLink->Target)) {
368 Ext2UnlinkMcb(Vcb, Ccb->SymLink);
369 Ext2DerefMcb(Ccb->SymLink);
370 Ext2LinkHeadMcb(Vcb, Ccb->SymLink);
371 } else {
372 Ext2DerefMcb(Ccb->SymLink);
373 }
374 }
375
376 if (Ccb->DirectorySearchPattern.Buffer != NULL) {
377 DEC_MEM_COUNT(PS_DIR_PATTERN, Ccb->DirectorySearchPattern.Buffer,
378 Ccb->DirectorySearchPattern.MaximumLength );
379 Ext2FreePool(Ccb->DirectorySearchPattern.Buffer, EXT2_DIRSP_MAGIC);
380 }
381
382 ExFreeToNPagedLookasideList(&(Ext2Global->Ext2CcbLookasideList), Ccb);
383 DEC_MEM_COUNT(PS_CCB, Ccb, sizeof(EXT2_CCB));
384}
385
386PEXT2_INODE
387Ext2AllocateInode (PEXT2_VCB Vcb)

Callers 2

Ext2CloseFunction · 0.85
Ext2CreateFileFunction · 0.85

Calls 3

Ext2UnlinkMcbFunction · 0.85
Ext2LinkHeadMcbFunction · 0.85
Ext2FreePoolFunction · 0.85

Tested by

no test coverage detected