diff --git a/src/sys/cleanup.c b/src/sys/cleanup.c index af7b878e..f27d23bc 100644 --- a/src/sys/cleanup.c +++ b/src/sys/cleanup.c @@ -168,7 +168,7 @@ static VOID FspFsvolCleanupRequestFini(FSP_FSCTL_TRANSACT_REQ *Request, PVOID Co PFILE_OBJECT FileObject = IrpSp->FileObject; FSP_FILE_NODE *FileNode = FileObject->FsContext; FSP_FILE_DESC *FileDesc = FileObject->FsContext2; - HANDLE MainStreamHandle; + HANDLE MainFileHandle; ASSERT(FileNode == FileDesc->FileNode); @@ -176,12 +176,12 @@ static VOID FspFsvolCleanupRequestFini(FSP_FSCTL_TRANSACT_REQ *Request, PVOID Co FspFileNodeCleanupComplete(FileNode, FileObject); - MainStreamHandle = FileDesc->MainStreamHandle; - FileDesc->MainStreamHandle = 0; + MainFileHandle = FileDesc->MainFileHandle; + FileDesc->MainFileHandle = 0; FspFileNodeReleaseOwner(FileNode, Main, Request); - FspMainStreamClose(MainStreamHandle, 0); + FspMainFileClose(MainFileHandle, 0); } NTSTATUS FspCleanup( diff --git a/src/sys/close.c b/src/sys/close.c index 5f35ba1b..4a69299e 100644 --- a/src/sys/close.c +++ b/src/sys/close.c @@ -77,7 +77,7 @@ static NTSTATUS FspFsvolClose( FspFileNodeClose(FileNode, FileObject); /* delete the FileDesc and deref the FileNode; order is important (FileDesc has FileNode ref) */ - FspFileDescDelete(FileDesc); /* this will also close the MainStreamObject if any */ + FspFileDescDelete(FileDesc); /* this will also close the MainFileObject if any */ FspFileNodeDereference(FileNode); /* diff --git a/src/sys/create.c b/src/sys/create.c index 4deebf6f..1465e61b 100644 --- a/src/sys/create.c +++ b/src/sys/create.c @@ -147,7 +147,7 @@ static NTSTATUS FspFsvolCreateNoLock( return STATUS_SUCCESS; } - UNICODE_STRING MainStreamName = { 0 }, StreamPart = { 0 }; + UNICODE_STRING MainFileName = { 0 }, StreamPart = { 0 }; PACCESS_STATE AccessState = IrpSp->Parameters.Create.SecurityContext->AccessState; ULONG CreateDisposition = (IrpSp->Parameters.Create.Options >> 24) & 0xff; ULONG CreateOptions = IrpSp->Parameters.Create.Options; @@ -232,9 +232,9 @@ static NTSTATUS FspFsvolCreateNoLock( (((PUINT8)StreamPart.Buffer + StreamPart.Length / sizeof(WCHAR)) - (PUINT8)FileName.Buffer - 1); - MainStreamName.Length = MainStreamName.MaximumLength = (USHORT) + MainFileName.Length = MainFileName.MaximumLength = (USHORT) ((PUINT8)StreamPart.Buffer - (PUINT8)FileName.Buffer - 1); - MainStreamName.Buffer = FileName.Buffer; + MainFileName.Buffer = FileName.Buffer; } /* is this a relative or absolute open? */ @@ -351,19 +351,19 @@ static NTSTATUS FspFsvolCreateNoLock( return Result; } - /* if we have a non-empty stream part, open the main stream */ + /* if we have a non-empty stream part, open the main file */ if (0 != StreamPart.Buffer) { - Result = FspMainStreamOpen(FsvolDeviceObject, - &MainStreamName, CaseSensitive, + Result = FspMainFileOpen(FsvolDeviceObject, + &MainFileName, CaseSensitive, CreateDisposition, - &FileDesc->MainStreamHandle, - &FileDesc->MainStreamObject); + &FileDesc->MainFileHandle, + &FileDesc->MainFileObject); if (!NT_SUCCESS(Result)) goto main_stream_exit; - /* check that the main stream is one we recognize */ - if (!FspFileNodeIsValid(FileDesc->MainStreamObject->FsContext)) + /* check that the main file is one we recognize */ + if (!FspFileNodeIsValid(FileDesc->MainFileObject->FsContext)) { Result = STATUS_OBJECT_NAME_NOT_FOUND; goto main_stream_exit; @@ -383,8 +383,8 @@ static NTSTATUS FspFsvolCreateNoLock( goto main_stream_exit; } - /* remember the the main stream node */ - FileNode->MainStreamFileNode = FileDesc->MainStreamObject->FsContext; + /* remember the main file node */ + FileNode->MainFileNode = FileDesc->MainFileObject->FsContext; Result = STATUS_SUCCESS; diff --git a/src/sys/driver.h b/src/sys/driver.h index 009d9d85..c3786455 100644 --- a/src/sys/driver.h +++ b/src/sys/driver.h @@ -431,15 +431,15 @@ VOID FspUnicodePathSuffix(PUNICODE_STRING Path, PUNICODE_STRING Remain, PUNICODE NTSTATUS FspCreateGuid(GUID *Guid); NTSTATUS FspGetDeviceObjectPointer(PUNICODE_STRING ObjectName, ACCESS_MASK DesiredAccess, PULONG PFileNameIndex, PFILE_OBJECT *PFileObject, PDEVICE_OBJECT *PDeviceObject); -NTSTATUS FspMainStreamOpen( +NTSTATUS FspMainFileOpen( PDEVICE_OBJECT DeviceObject, - PUNICODE_STRING MainStreamName, BOOLEAN CaseSensitive, + PUNICODE_STRING MainFileName, BOOLEAN CaseSensitive, ULONG Disposition, - PHANDLE PMainStreamHandle, - PFILE_OBJECT *PMainStreamObject); -NTSTATUS FspMainStreamClose( - HANDLE MainStreamHandle, - PFILE_OBJECT MainStreamObject); + PHANDLE PMainFileHandle, + PFILE_OBJECT *PMainFileObject); +NTSTATUS FspMainFileClose( + HANDLE MainFileHandle, + PFILE_OBJECT MainFileObject); NTSTATUS FspSendSetInformationIrp(PDEVICE_OBJECT DeviceObject, PFILE_OBJECT FileObject, FILE_INFORMATION_CLASS FileInformationClass, PVOID FileInformation, ULONG Length); NTSTATUS FspBufferUserBuffer(PIRP Irp, ULONG Length, LOCK_OPERATION Operation); @@ -916,8 +916,8 @@ typedef struct FSP_FILE_NODE LONG OpenCount; /* ContextTable ref count */ LONG HandleCount; /* HANDLE count (CREATE/CLEANUP) */ SHARE_ACCESS ShareAccess; - ULONG MainStreamDenyDeleteCount; /* number of times main stream is denying delete */ - ULONG StreamDenyDeleteCount; /* number of open streams that are denying delete */ + ULONG MainFileDenyDeleteCount; /* number of times main file is denying delete */ + ULONG StreamDenyDeleteCount; /* number of times open streams are denying delete */ FSP_DEVICE_CONTEXT_BY_NAME_TABLE_ELEMENT ContextByNameElementStorage; /* locked under FSP_FSVOL_DEVICE_EXTENSION::FileRenameResource or Header.Resource */ UNICODE_STRING FileName; @@ -952,7 +952,7 @@ typedef struct FSP_FILE_NODE UINT64 IndexNumber; BOOLEAN IsDirectory; BOOLEAN IsRootDirectory; - struct FSP_FILE_NODE *MainStreamFileNode; /* this becomes invalid after our last desc close */ + struct FSP_FILE_NODE *MainFileNode; /* this becomes invalid after our last desc close */ WCHAR FileNameBuf[]; } FSP_FILE_NODE; typedef struct @@ -968,8 +968,8 @@ typedef struct UINT64 DirInfo; ULONG DirInfoCacheHint; /* stream support */ - HANDLE MainStreamHandle; - PFILE_OBJECT MainStreamObject; + HANDLE MainFileHandle; + PFILE_OBJECT MainFileObject; } FSP_FILE_DESC; NTSTATUS FspFileNodeCopyList(PDEVICE_OBJECT DeviceObject, FSP_FILE_NODE ***PFileNodes, PULONG PFileNodeCount); diff --git a/src/sys/file.c b/src/sys/file.c index 1b17b408..374aadaf 100644 --- a/src/sys/file.c +++ b/src/sys/file.c @@ -427,13 +427,13 @@ FSP_FILE_NODE *FspFileNodeOpen(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject, FspFsvolDeviceLockContextTable(FsvolDeviceObject); /* - * If this is a named stream we must also check with our main stream. - * Note that FileNode->MainStreamFileNode and OpenedFileNode->MainStreamFileNode + * If this is a named stream we must also check with our main file. + * Note that FileNode->MainFileNode and OpenedFileNode->MainFileNode * will always be the same. */ - if (0 != FileNode->MainStreamFileNode) + if (0 != FileNode->MainFileNode) { - DeletePending = 0 != FileNode->MainStreamFileNode->DeletePending; + DeletePending = 0 != FileNode->MainFileNode->DeletePending; MemoryBarrier(); if (DeletePending) { @@ -441,7 +441,7 @@ FSP_FILE_NODE *FspFileNodeOpen(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject, goto exit; } - if (0 < FileNode->MainStreamFileNode->MainStreamDenyDeleteCount) + if (0 < FileNode->MainFileNode->MainFileDenyDeleteCount) { if (FlagOn(GrantedAccess, DELETE)) { @@ -474,7 +474,7 @@ FSP_FILE_NODE *FspFileNodeOpen(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject, * opening a prior FileNode that we found in the table. */ ASSERT(OpenedFileNode != FileNode); - ASSERT(OpenedFileNode->MainStreamFileNode == FileNode->MainStreamFileNode); + ASSERT(OpenedFileNode->MainFileNode == FileNode->MainFileNode); DeletePending = 0 != OpenedFileNode->DeletePending; MemoryBarrier(); @@ -484,11 +484,11 @@ FSP_FILE_NODE *FspFileNodeOpen(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject, goto exit; } - /* if this is a main stream check whether there is a named stream that denies delete */ + /* if this is a main file check whether there is a named stream that denies delete */ if (0 < OpenedFileNode->StreamDenyDeleteCount) { - /* we must be the main stream! */ - ASSERT(0 == OpenedFileNode->MainStreamFileNode); + /* we must be the main file! */ + ASSERT(0 == OpenedFileNode->MainFileNode); if (FlagOn(GrantedAccess, DELETE)) { @@ -529,10 +529,10 @@ FSP_FILE_NODE *FspFileNodeOpen(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject, if (FileObject->DeleteAccess && !FileObject->SharedDelete) { - if (0 == OpenedFileNode->MainStreamFileNode) - OpenedFileNode->MainStreamDenyDeleteCount++; + if (0 == OpenedFileNode->MainFileNode) + OpenedFileNode->MainFileDenyDeleteCount++; else - OpenedFileNode->MainStreamFileNode->StreamDenyDeleteCount++; + OpenedFileNode->MainFileNode->StreamDenyDeleteCount++; } Result = STATUS_SUCCESS; @@ -615,10 +615,10 @@ VOID FspFileNodeCleanupComplete(FSP_FILE_NODE *FileNode, PFILE_OBJECT FileObject if (FileObject->DeleteAccess && !FileObject->SharedDelete) { - if (0 == FileNode->MainStreamFileNode) - FileNode->MainStreamDenyDeleteCount--; + if (0 == FileNode->MainFileNode) + FileNode->MainFileDenyDeleteCount--; else - FileNode->MainStreamFileNode->StreamDenyDeleteCount--; + FileNode->MainFileNode->StreamDenyDeleteCount--; } IoRemoveShareAccess(FileObject, &FileNode->ShareAccess); @@ -1153,7 +1153,7 @@ VOID FspFileDescDelete(FSP_FILE_DESC *FileDesc) { PAGED_CODE(); - FspMainStreamClose(FileDesc->MainStreamHandle, FileDesc->MainStreamObject); + FspMainFileClose(FileDesc->MainFileHandle, FileDesc->MainFileObject); if (0 != FileDesc->DirectoryPattern.Buffer && FspFileDescDirectoryPatternMatchAll != FileDesc->DirectoryPattern.Buffer) diff --git a/src/sys/util.c b/src/sys/util.c index 28a1a52a..fb06b515 100644 --- a/src/sys/util.c +++ b/src/sys/util.c @@ -23,15 +23,15 @@ VOID FspUnicodePathSuffix(PUNICODE_STRING Path, PUNICODE_STRING Remain, PUNICODE NTSTATUS FspCreateGuid(GUID *Guid); NTSTATUS FspGetDeviceObjectPointer(PUNICODE_STRING ObjectName, ACCESS_MASK DesiredAccess, PULONG PFileNameIndex, PFILE_OBJECT *PFileObject, PDEVICE_OBJECT *PDeviceObject); -NTSTATUS FspMainStreamOpen( +NTSTATUS FspMainFileOpen( PDEVICE_OBJECT DeviceObject, - PUNICODE_STRING MainStreamName, BOOLEAN CaseSensitive, + PUNICODE_STRING MainFileName, BOOLEAN CaseSensitive, ULONG Disposition, - PHANDLE PMainStreamHandle, - PFILE_OBJECT *PMainStreamObject); -NTSTATUS FspMainStreamClose( - HANDLE MainStreamHandle, - PFILE_OBJECT MainStreamObject); + PHANDLE PMainFileHandle, + PFILE_OBJECT *PMainFileObject); +NTSTATUS FspMainFileClose( + HANDLE MainFileHandle, + PFILE_OBJECT MainFileObject); NTSTATUS FspSendSetInformationIrp(PDEVICE_OBJECT DeviceObject, PFILE_OBJECT FileObject, FILE_INFORMATION_CLASS FileInformationClass, PVOID FileInformation, ULONG Length); static NTSTATUS FspSendSetInformationIrpCompletion( @@ -102,8 +102,8 @@ NTSTATUS FspIrpHookNext(PDEVICE_OBJECT DeviceObject, PIRP Irp, PVOID Context); #pragma alloc_text(PAGE, FspUnicodePathSuffix) #pragma alloc_text(PAGE, FspCreateGuid) #pragma alloc_text(PAGE, FspGetDeviceObjectPointer) -#pragma alloc_text(PAGE, FspMainStreamOpen) -#pragma alloc_text(PAGE, FspMainStreamClose) +#pragma alloc_text(PAGE, FspMainFileOpen) +#pragma alloc_text(PAGE, FspMainFileClose) #pragma alloc_text(PAGE, FspSendSetInformationIrp) #pragma alloc_text(PAGE, FspBufferUserBuffer) #pragma alloc_text(PAGE, FspLockUserBuffer) @@ -384,25 +384,25 @@ NTSTATUS FspGetDeviceObjectPointer(PUNICODE_STRING ObjectName, ACCESS_MASK Desir return Result; } -NTSTATUS FspMainStreamOpen( +NTSTATUS FspMainFileOpen( PDEVICE_OBJECT DeviceObject, - PUNICODE_STRING MainStreamName, BOOLEAN CaseSensitive, + PUNICODE_STRING MainFileName, BOOLEAN CaseSensitive, ULONG Disposition, - PHANDLE PMainStreamHandle, - PFILE_OBJECT *PMainStreamObject) + PHANDLE PMainFileHandle, + PFILE_OBJECT *PMainFileObject) { PAGED_CODE(); OBJECT_ATTRIBUTES ObjectAttributes; IO_STATUS_BLOCK IoStatus; - HANDLE MainStreamHandle; - PFILE_OBJECT MainStreamObject; + HANDLE MainFileHandle; + PFILE_OBJECT MainFileObject; - /* assert that the supplied name is actually a main stream name */ - ASSERT(FspUnicodePathIsValid(MainStreamName, 0)); + /* assert that the supplied name is actually a main file name */ + ASSERT(FspUnicodePathIsValid(MainFileName, 0)); - *PMainStreamHandle = 0; - *PMainStreamObject = 0; + *PMainFileHandle = 0; + *PMainFileObject = 0; switch (Disposition) { @@ -422,13 +422,13 @@ NTSTATUS FspMainStreamOpen( InitializeObjectAttributes( &ObjectAttributes, - MainStreamName, + MainFileName, OBJ_KERNEL_HANDLE | OBJ_FORCE_ACCESS_CHECK | (CaseSensitive ? 0 : OBJ_CASE_INSENSITIVE), 0/*RootDirectory*/, 0/*SecurityDescriptor*/); IoStatus.Status = IoCreateFileSpecifyDeviceObjectHint( - &MainStreamHandle, + &MainFileHandle, FILE_READ_ATTRIBUTES, &ObjectAttributes, &IoStatus, @@ -447,38 +447,38 @@ NTSTATUS FspMainStreamOpen( return IoStatus.Status; IoStatus.Status = ObReferenceObjectByHandle( - MainStreamHandle, + MainFileHandle, 0/*DesiredAccess*/, *IoFileObjectType, KernelMode, - &MainStreamObject, + &MainFileObject, 0/*HandleInformation*/); if (!NT_SUCCESS(IoStatus.Status)) { - ObCloseHandle(MainStreamHandle, KernelMode); + ObCloseHandle(MainFileHandle, KernelMode); return IoStatus.Status; } - *PMainStreamHandle = MainStreamHandle; - *PMainStreamObject = MainStreamObject; + *PMainFileHandle = MainFileHandle; + *PMainFileObject = MainFileObject; return STATUS_SUCCESS; } -NTSTATUS FspMainStreamClose( - HANDLE MainStreamHandle, - PFILE_OBJECT MainStreamObject) +NTSTATUS FspMainFileClose( + HANDLE MainFileHandle, + PFILE_OBJECT MainFileObject) { PAGED_CODE(); NTSTATUS Result = STATUS_SUCCESS; - if (0 != MainStreamObject) - ObDereferenceObject(MainStreamObject); + if (0 != MainFileObject) + ObDereferenceObject(MainFileObject); - if (0 != MainStreamHandle) + if (0 != MainFileHandle) { - Result = ObCloseHandle(MainStreamHandle, KernelMode); + Result = ObCloseHandle(MainFileHandle, KernelMode); if (!NT_SUCCESS(Result)) DEBUGLOG("ObCloseHandle() = %s", NtStatusSym(Result)); }