From 6d8e820067bc32e788f92516688e09cdbb9cff77 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Thu, 19 Nov 2015 22:05:52 -0800 Subject: [PATCH] sys: FSP_ENTER_MJ, FSP_LEAVE_MJ overhaul --- src/sys/driver.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/sys/driver.h b/src/sys/driver.h index 64022665..98356c7a 100644 --- a/src/sys/driver.h +++ b/src/sys/driver.h @@ -62,21 +62,29 @@ FSP_ENTER_(__VA_ARGS__) #define FSP_LEAVE_MJ(fmt, ...) \ FSP_LEAVE_( \ - FSP_DEBUGLOG_("%c%c, %s%s, IrpSp->Flags=%x, " fmt, " = %s",\ + FSP_DEBUGLOG_("%c%c, %s%s, IrpSp->Flags=%x, " fmt, " = %s%s%lld%s",\ FspDeviceExtension(DeviceObject)->Kind,\ Irp->RequestorMode == KernelMode ? 'K' : 'U',\ IrpMajorFunctionSym(IrpSp->MajorFunction),\ IrpMinorFunctionSym(IrpSp->MajorFunction, IrpSp->MajorFunction),\ IrpSp->Flags, \ __VA_ARGS__, \ - NtStatusSym(Result)); \ + NtStatusSym(Result), \ + NT_SUCCESS(Result) ? "[" : "",\ + Irp->IoStatus.Information, \ + NT_SUCCESS(Result) ? "]" : "");\ if (STATUS_PENDING != Result) \ { \ if (!NT_SUCCESS(Result)) \ Irp->IoStatus.Information = 0;\ Irp->IoStatus.Status = Result;\ IoCompleteRequest(Irp, FSP_IO_INCREMENT);\ - }); \ + } \ + else \ + { \ + IoMarkIrpPending(Irp); \ + } \ + ); \ return Result #define FSP_ENTER_BOOL(...) \ BOOLEAN Result = TRUE; FSP_ENTER_(__VA_ARGS__)