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

Function Ext2ProcessEntry

Ext4Fsd/dirctl.c:59–366  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57}
58
59NTSTATUS
60Ext2ProcessEntry(
61 IN PEXT2_IRP_CONTEXT IrpContext,
62 IN PEXT2_VCB Vcb,
63 IN PEXT2_FCB Dcb,
64 IN FILE_INFORMATION_CLASS FileInformationClass,
65 IN ULONG in,
66 IN PVOID Buffer,
67 IN ULONG UsedLength,
68 IN ULONG Length,
69 IN ULONG FileIndex,
70 IN PUNICODE_STRING pName,
71 OUT PULONG EntrySize,
72 IN BOOLEAN Single
73)
74{
75 PFILE_DIRECTORY_INFORMATION FDI = NULL;
76 PFILE_FULL_DIR_INFORMATION FFI = NULL;
77 PFILE_ID_FULL_DIR_INFORMATION FIF = NULL;
78
79 PFILE_BOTH_DIR_INFORMATION FBI = NULL;
80 PFILE_ID_BOTH_DIR_INFORMATION FIB = NULL;
81
82 PFILE_NAMES_INFORMATION FNI = NULL;
83
84 PEXT2_MCB Mcb = NULL;
85 PEXT2_MCB Target = NULL;
86
87 NTSTATUS Status = STATUS_SUCCESS;
88 struct inode Inode = { 0 };
89
90 ULONG InfoLength = 0;
91 ULONG NameLength = 0;
92 ULONG dwBytes = 0;
93 LONGLONG FileSize = 0;
94 LONGLONG AllocationSize;
95 ULONG FileAttributes = 0;
96
97 BOOLEAN IsEntrySymlink = FALSE;
98
99 *EntrySize = 0;
100 NameLength = pName->Length;
101 ASSERT((UsedLength & 7) == 0);
102
103 InfoLength = Ext2GetInfoLength(FileInformationClass);
104 if (InfoLength == 0) {
105 DEBUG(DL_ERR, ("Ext2ProcessDirEntry: Invalid Info Class %xh for %wZ in %wZ\n",
106 FileInformationClass, pName, &Dcb->Mcb->FullName ));
107 return STATUS_INVALID_INFO_CLASS;
108 }
109
110 if (InfoLength + NameLength > Length) {
111 DEBUG(DL_INF, ( "Ext2PricessDirEntry: Buffer is not enough.\n"));
112 Status = STATUS_BUFFER_OVERFLOW;
113 if (UsedLength || InfoLength > Length) {
114 DEBUG(DL_CP, ("Ext2ProcessDirEntry: Buffer overflows for %wZ in %wZ\n",
115 pName, &Dcb->Mcb->FullName ));
116 return Status;

Callers 2

Ext2FillEntryFunction · 0.85
Ext2QueryDirectoryFunction · 0.85

Calls 8

Ext2GetInfoLengthFunction · 0.85
Ext2SearchMcbFunction · 0.85
Ext2FollowLinkFunction · 0.85
Ext2LoadInodeFunction · 0.85
Ext2LookupFileFunction · 0.85
Ext2CheckInodeAccessFunction · 0.85
Ext2IsSpecialSystemFileFunction · 0.85
Ext2NtTimeFunction · 0.85

Tested by

no test coverage detected