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

Function Ext2CreateFile

Ext4Fsd/create.c:835–1839  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

833}
834
835NTSTATUS
836Ext2CreateFile(
837 PEXT2_IRP_CONTEXT IrpContext,
838 PEXT2_VCB Vcb,
839 PBOOLEAN OpPostIrp
840)
841{
842 NTSTATUS Status = STATUS_UNSUCCESSFUL;
843 PIO_STACK_LOCATION IrpSp;
844 PEXT2_FCB Fcb = NULL;
845 PEXT2_MCB Mcb = NULL;
846 PEXT2_MCB SymLink = NULL;
847 PEXT2_CCB Ccb = NULL;
848
849 PEXT2_FCB ParentFcb = NULL;
850 PEXT2_MCB ParentMcb = NULL;
851
852 UNICODE_STRING FileName;
853 PIRP Irp;
854
855 ULONG Options;
856 ULONG CreateDisposition;
857
858 BOOLEAN bParentFcbCreated = FALSE;
859 BOOLEAN bDir = FALSE;
860 BOOLEAN bFcbAllocated = FALSE;
861 BOOLEAN bCreated = FALSE;
862
863 BOOLEAN bMainResourceAcquired = FALSE;
864 BOOLEAN bFcbLockAcquired = FALSE;
865
866 BOOLEAN OpenDirectory;
867 BOOLEAN OpenTargetDirectory;
868 BOOLEAN CreateDirectory;
869 BOOLEAN SequentialOnly;
870 BOOLEAN NoIntermediateBuffering;
871 BOOLEAN IsPagingFile;
872 BOOLEAN DirectoryFile;
873 BOOLEAN NonDirectoryFile;
874 BOOLEAN NoEaKnowledge;
875 BOOLEAN DeleteOnClose;
876 BOOLEAN TemporaryFile;
877 BOOLEAN CaseSensitive;
878 BOOLEAN OpenReparsePoint;
879
880 ACCESS_MASK DesiredAccess;
881 ULONG ShareAccess;
882 ULONG CcbFlags = 0;
883
884 RtlZeroMemory(&FileName, sizeof(UNICODE_STRING));
885
886 Irp = IrpContext->Irp;
887 IrpSp = IoGetCurrentIrpStackLocation(Irp);
888
889 Options = IrpSp->Parameters.Create.Options;
890
891 DirectoryFile = IsFlagOn(Options, FILE_DIRECTORY_FILE);
892 OpenTargetDirectory = IsFlagOn(IrpSp->Flags, SL_OPEN_TARGET_DIRECTORY);

Callers 1

Ext2CreateFunction · 0.85

Calls 15

Ext2AllocatePoolFunction · 0.85
Ext2LookupFileFunction · 0.85
Ext2IsNameValidFunction · 0.85
Ext2AllocateFcbFunction · 0.85
Ext2CheckFileAccessFunction · 0.85
Ext2CreateInodeFunction · 0.85
Ext2IsFileRemovableFunction · 0.85
Ext2OverwriteEaFunction · 0.85
Ext2DeleteFileFunction · 0.85
Ext2AddDotEntriesFunction · 0.85
ext3_free_blocks_countFunction · 0.85
Ext2TotalBlocksFunction · 0.85

Tested by

no test coverage detected