From 24890f517d6319fa07b3f94a6a889b3ecd014966 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Fri, 27 Nov 2015 12:40:12 -0800 Subject: [PATCH] sys: WIP --- src/sys/create.c | 2 ++ src/sys/driver.h | 8 ++++---- src/sys/iocompl.c | 3 +++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/sys/create.c b/src/sys/create.c index ad104d43..20344358 100644 --- a/src/sys/create.c +++ b/src/sys/create.c @@ -68,6 +68,7 @@ FspCreate( FSP_LEAVE_MJ( "FileObject=%p[%p:\"%wZ\"], " + "Flags=%x, " "DesiredAccess=%#lx, " "ShareAccess=%#x, " "Options=%#lx, " @@ -75,6 +76,7 @@ FspCreate( "AllocationSize=%#lx:%#lx, " "Ea=%p, EaLength=%ld", IrpSp->FileObject, IrpSp->FileObject->RelatedFileObject, IrpSp->FileObject->FileName, + IrpSp->Flags, IrpSp->Parameters.Create.SecurityContext->DesiredAccess, IrpSp->Parameters.Create.ShareAccess, IrpSp->Parameters.Create.Options, diff --git a/src/sys/driver.h b/src/sys/driver.h index 26378034..fe205c1b 100644 --- a/src/sys/driver.h +++ b/src/sys/driver.h @@ -70,15 +70,15 @@ FSP_ENTER_(__VA_ARGS__) #define FSP_LEAVE_MJ(fmt, ...) \ FSP_LEAVE_( \ - FSP_DEBUGLOG_("%c%c, %s%s, IrpSp->Flags=%x, " fmt, " = %s[%lld]",\ - FspDeviceExtension(DeviceObject)->Kind,\ + FSP_DEBUGLOG_("%p, %c%c, %s%s, " fmt, " = %s[%lld]",\ + Irp, \ + FspDeviceExtension(IrpSp->DeviceObject)->Kind,\ Irp->RequestorMode == KernelMode ? 'K' : 'U',\ IrpMajorFunctionSym(IrpSp->MajorFunction),\ IrpMinorFunctionSym(IrpSp->MajorFunction, IrpSp->MajorFunction),\ - IrpSp->Flags, \ __VA_ARGS__, \ NtStatusSym(Result), \ - !NT_SUCCESS(Result) ? 0 : Irp->IoStatus.Information);\ + (LONGLONG)Irp->IoStatus.Information); \ if (STATUS_PENDING == Result) \ { \ if (0 == (IrpSp->Control & SL_PENDING_RETURNED))\ diff --git a/src/sys/iocompl.c b/src/sys/iocompl.c index f46b7218..de1b255c 100644 --- a/src/sys/iocompl.c +++ b/src/sys/iocompl.c @@ -19,7 +19,10 @@ VOID FspCompleteRequest(PIRP Irp, NTSTATUS Result) ASSERT(STATUS_PENDING != Result); if (0 != Irp->Tail.Overlay.DriverContext[0]) + { ExFreePoolWithTag(Irp->Tail.Overlay.DriverContext[0], FSP_TAG); + Irp->Tail.Overlay.DriverContext[0] = 0; + } if (!NT_SUCCESS(Result)) Irp->IoStatus.Information = 0;