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

Function Ext2AllocateFcb

Ext4Fsd/memory.c:130–199  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

128
129
130PEXT2_FCB
131Ext2AllocateFcb (
132 IN PEXT2_VCB Vcb,
133 IN PEXT2_MCB Mcb
134)
135{
136 PEXT2_FCB Fcb;
137
138 ASSERT(ExIsResourceAcquiredExclusiveLite(&Vcb->FcbLock));
139
140 Fcb = (PEXT2_FCB) ExAllocateFromNPagedLookasideList(
141 &(Ext2Global->Ext2FcbLookasideList));
142
143 if (!Fcb) {
144 return NULL;
145 }
146
147 RtlZeroMemory(Fcb, sizeof(EXT2_FCB));
148 Fcb->Identifier.Type = EXT2FCB;
149 Fcb->Identifier.Size = sizeof(EXT2_FCB);
150
151#ifndef _WIN2K_TARGET_
152 ExInitializeFastMutex(&Fcb->Mutex);
153 FsRtlSetupAdvancedHeader(&Fcb->Header, &Fcb->Mutex);
154#endif
155
156 FsRtlInitializeOplock(&Fcb->Oplock);
157 FsRtlInitializeFileLock (
158 &Fcb->FileLockAnchor,
159 NULL,
160 NULL );
161
162 Fcb->OpenHandleCount = 0;
163 Fcb->ReferenceCount = 0;
164 Fcb->Vcb = Vcb;
165 Fcb->Inode = &Mcb->Inode;
166
167 ASSERT(Mcb->Fcb == NULL);
168 Ext2ReferMcb(Mcb);
169 Fcb->Mcb = Mcb;
170 Mcb->Fcb = Fcb;
171
172 DEBUG(DL_RES, ("Ext2AllocateFcb: Fcb %p created: %wZ.\n",
173 Fcb, &Fcb->Mcb->FullName));
174
175 RtlZeroMemory(&Fcb->Header, sizeof(FSRTL_COMMON_FCB_HEADER));
176 Fcb->Header.NodeTypeCode = (USHORT) EXT2FCB;
177 Fcb->Header.NodeByteSize = sizeof(EXT2_FCB);
178 Fcb->Header.IsFastIoPossible = FastIoIsNotPossible;
179 Fcb->Header.Resource = &(Fcb->MainResource);
180 Fcb->Header.PagingIoResource = &(Fcb->PagingIoResource);
181
182 Fcb->Header.FileSize.QuadPart = Mcb->Inode.i_size;
183 Fcb->Header.ValidDataLength.QuadPart = Mcb->Inode.i_size;
184 Fcb->Header.AllocationSize.QuadPart = CEILING_ALIGNED(ULONGLONG,
185 Fcb->Header.FileSize.QuadPart, (ULONGLONG)Vcb->BlockSize);
186
187 Fcb->SectionObject.DataSectionObject = NULL;

Callers 6

Ext2SetReparsePointFunction · 0.85
Ext2DeleteReparsePointFunction · 0.85
Ext2SetRenameInfoFunction · 0.85
Ext2SetLinkInfoFunction · 0.85
Ext2DeleteFileFunction · 0.85
Ext2CreateFileFunction · 0.85

Calls 1

Ext2InsertFcbFunction · 0.85

Tested by

no test coverage detected