PLARGE_INTEGER UMaximumSize,
ULONG SectionPageProtection,
ULONG AllocationAttributes,
- HANDLE FileHandle)
+ PFILE_OBJECT FileObject)
/*
* Create a section backed by a data file
*/
PROS_SECTION_OBJECT Section;
NTSTATUS Status;
LARGE_INTEGER MaximumSize;
- PFILE_OBJECT FileObject;
PMM_SECTION_SEGMENT Segment;
- ULONG FileAccess;
FILE_STANDARD_INFORMATION FileInfo;
ULONG Length;
(PVOID*)&Section);
if (!NT_SUCCESS(Status))
{
+ ObDereferenceObject(FileObject);
return(Status);
}
/*
Section->SectionPageProtection = SectionPageProtection;
Section->AllocationAttributes = AllocationAttributes;
- /*
- * Reference the file handle
- */
- FileAccess = MiArm3GetCorrectFileAccessMask(SectionPageProtection);
- Status = ObReferenceObjectByHandle(FileHandle,
- FileAccess,
- IoFileObjectType,
- ExGetPreviousMode(),
- (PVOID*)(PVOID)&FileObject,
- NULL);
- if (!NT_SUCCESS(Status))
- {
- ObDereferenceObject(Section);
- return(Status);
- }
-
/*
* FIXME: This is propably not entirely correct. We can't look into
* the standard FCB header because it might not be initialized yet
MaximumSize,
SectionPageProtection,
AllocationAttributes,
- FileHandle);
- if (FileObject)
- ObDereferenceObject(FileObject);
+ FileObject);
}
#else
else if (FileHandle != NULL || FileObject != NULL)