sys: IRP_MJ_CREATE: FspFsvolCreateRetryComplete: refactoring

This commit is contained in:
Bill Zissimopoulos
2016-01-27 10:55:22 -08:00
parent e86f4b0836
commit c9fb46ff11
4 changed files with 89 additions and 64 deletions

View File

@ -23,6 +23,8 @@ BOOLEAN FspFileNodeTryGetFileInfo(FSP_FILE_NODE *FileNode, FSP_FSCTL_FILE_INFO *
VOID FspFileNodeSetFileInfo(FSP_FILE_NODE *FileNode, const FSP_FSCTL_FILE_INFO *FileInfo);
NTSTATUS FspFileDescCreate(FSP_FILE_DESC **PFileDesc);
VOID FspFileDescDelete(FSP_FILE_DESC *FileDesc);
VOID FspFileObjectSetSizes(PFILE_OBJECT FileObject,
UINT64 AllocationSize, UINT64 FileSize);
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFileNodeCreate)
@ -39,6 +41,7 @@ VOID FspFileDescDelete(FSP_FILE_DESC *FileDesc);
#pragma alloc_text(PAGE, FspFileNodeSetFileInfo)
#pragma alloc_text(PAGE, FspFileDescCreate)
#pragma alloc_text(PAGE, FspFileDescDelete)
#pragma alloc_text(PAGE, FspFileObjectSetSizes)
#endif
NTSTATUS FspFileNodeCreate(PDEVICE_OBJECT DeviceObject,
@ -430,3 +433,18 @@ VOID FspFileDescDelete(FSP_FILE_DESC *FileDesc)
FspFree(FileDesc);
}
VOID FspFileObjectSetSizes(PFILE_OBJECT FileObject,
UINT64 AllocationSize, UINT64 FileSize)
{
PAGED_CODE();
FSP_FILE_NODE *FileNode = FileObject->FsContext;
ASSERT(ExIsResourceAcquiredExclusiveLite(FileNode->Header.PagingIoResource));
FileNode->Header.AllocationSize.QuadPart = AllocationSize;
FileNode->Header.FileSize.QuadPart = FileSize;
FileNode->CcStatus = FspCcSetFileSizes(
FileObject, (PCC_FILE_SIZES)&FileNode->Header.AllocationSize);
}