sys: renamed "main stream" to "main file"

This commit is contained in:
Bill Zissimopoulos 2016-10-02 16:57:15 -07:00
parent 5c3a82a074
commit 03df0a9c26
6 changed files with 78 additions and 78 deletions

View File

@ -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(

View File

@ -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);
/*

View File

@ -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;

View File

@ -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);

View File

@ -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)

View File

@ -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));
}