mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-23 17:03:12 -05:00
sys: IRP_MJ_CREATE
This commit is contained in:
parent
171c8eff04
commit
a29506341c
@ -57,17 +57,17 @@ static NTSTATUS FspFsvolCreate(
|
||||
PFILE_OBJECT RelatedFileObject = FileObject->RelatedFileObject;
|
||||
UNICODE_STRING FileName = FileObject->FileName;
|
||||
ULONG Flags = IrpSp->Flags;
|
||||
KPROCESSOR_MODE RequestorMode = FlagOn(Flags, SL_FORCE_ACCESS_CHECK) ? UserMode : Irp->RequestorMode;
|
||||
PACCESS_STATE AccessState = IrpSp->Parameters.Create.SecurityContext->AccessState;
|
||||
ACCESS_MASK DesiredAccess = IrpSp->Parameters.Create.SecurityContext->DesiredAccess;
|
||||
USHORT ShareAccess = IrpSp->Parameters.Create.ShareAccess;
|
||||
ULONG CreateDisposition = IrpSp->Parameters.Create.Options >> 24;
|
||||
//KPROCESSOR_MODE RequestorMode = FlagOn(Flags, SL_FORCE_ACCESS_CHECK) ? UserMode : Irp->RequestorMode;
|
||||
//PACCESS_STATE AccessState = IrpSp->Parameters.Create.SecurityContext->AccessState;
|
||||
//ACCESS_MASK DesiredAccess = IrpSp->Parameters.Create.SecurityContext->DesiredAccess;
|
||||
//USHORT ShareAccess = IrpSp->Parameters.Create.ShareAccess;
|
||||
//ULONG CreateDisposition = IrpSp->Parameters.Create.Options >> 24;
|
||||
ULONG CreateOptions = IrpSp->Parameters.Create.Options & 0xffffff;
|
||||
USHORT FileAttributes = IrpSp->Parameters.Create.FileAttributes;
|
||||
LARGE_INTEGER AllocationSize = Irp->Overlay.AllocationSize;
|
||||
//USHORT FileAttributes = IrpSp->Parameters.Create.FileAttributes;
|
||||
//LARGE_INTEGER AllocationSize = Irp->Overlay.AllocationSize;
|
||||
PFILE_FULL_EA_INFORMATION EaBuffer = Irp->AssociatedIrp.SystemBuffer;
|
||||
ULONG EaLength = IrpSp->Parameters.Create.EaLength;
|
||||
BOOLEAN HasTraversePrivilege = BooleanFlagOn(AccessState->Flags, TOKEN_HAS_TRAVERSE_PRIVILEGE);
|
||||
//ULONG EaLength = IrpSp->Parameters.Create.EaLength;
|
||||
//BOOLEAN HasTraversePrivilege = BooleanFlagOn(AccessState->Flags, TOKEN_HAS_TRAVERSE_PRIVILEGE);
|
||||
BOOLEAN HasTrailingBackslash = FALSE;
|
||||
FSP_FILE_CONTEXT *FsContext = 0;
|
||||
FSP_FSCTL_TRANSACT_REQ *Request;
|
||||
|
@ -330,6 +330,8 @@ VOID FspDeviceDeleteAll(VOID);
|
||||
/* file objects */
|
||||
typedef struct
|
||||
{
|
||||
ERESOURCE Resource;
|
||||
ERESOURCE PagingIoResource;
|
||||
FAST_MUTEX HeaderFastMutex;
|
||||
} FSP_FILE_CONTEXT_NONPAGED;
|
||||
typedef struct
|
||||
|
@ -34,9 +34,16 @@ NTSTATUS FspFileContextCreate(ULONG ExtraSize, FSP_FILE_CONTEXT **PFsContext)
|
||||
}
|
||||
|
||||
RtlZeroMemory(NonPaged, sizeof *NonPaged);
|
||||
ExInitializeResourceLite(&NonPaged->Resource);
|
||||
ExInitializeResourceLite(&NonPaged->PagingIoResource);
|
||||
ExInitializeFastMutex(&NonPaged->HeaderFastMutex);
|
||||
|
||||
RtlZeroMemory(FsContext, sizeof *FsContext);
|
||||
FsContext->Header.NodeTypeCode = 'F';
|
||||
FsContext->Header.NodeByteSize = sizeof *FsContext;
|
||||
FsContext->Header.IsFastIoPossible = FastIoIsQuestionable;
|
||||
FsContext->Header.Resource = &NonPaged->Resource;
|
||||
FsContext->Header.PagingIoResource = &NonPaged->PagingIoResource;
|
||||
FsRtlSetupAdvancedHeader(&FsContext->Header, &NonPaged->HeaderFastMutex);
|
||||
FsContext->NonPaged = NonPaged;
|
||||
RtlInitEmptyUnicodeString(&FsContext->FileName, FsContext->FileNameBuf, (USHORT)ExtraSize);
|
||||
|
Loading…
x
Reference in New Issue
Block a user