From af1cecf26a5a4bfd1fc739641fb236000344a191 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Mon, 7 Dec 2015 23:39:34 -0800 Subject: [PATCH] sys: IRP_MJ_CLOSE --- src/sys/close.c | 20 ++++++++++---------- src/sys/driver.c | 2 +- src/sys/driver.h | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/sys/close.c b/src/sys/close.c index 86eabd18..4a1a96d1 100644 --- a/src/sys/close.c +++ b/src/sys/close.c @@ -12,15 +12,15 @@ static NTSTATUS FspFsvrtClose( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); static NTSTATUS FspFsvolClose( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); +FSP_IOCMPL_DISPATCH FspFsvolCloseComplete; FSP_DRIVER_DISPATCH FspClose; -FSP_IOCMPL_DISPATCH FspCloseComplete; #ifdef ALLOC_PRAGMA #pragma alloc_text(PAGE, FspFsctlClose) #pragma alloc_text(PAGE, FspFsvrtClose) #pragma alloc_text(PAGE, FspFsvolClose) +#pragma alloc_text(PAGE, FspFsvolCloseComplete) #pragma alloc_text(PAGE, FspClose) -#pragma alloc_text(PAGE, FspCloseComplete) #endif static NTSTATUS FspFsctlClose( @@ -51,6 +51,14 @@ static NTSTATUS FspFsvolClose( return STATUS_INVALID_DEVICE_REQUEST; } +VOID FspFsvolCloseComplete( + PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response) +{ + FSP_ENTER_IOC(PAGED_CODE()); + + FSP_LEAVE_IOC("FileObject=%p", IrpSp->FileObject); +} + NTSTATUS FspClose( PDEVICE_OBJECT DeviceObject, PIRP Irp) { @@ -72,11 +80,3 @@ NTSTATUS FspClose( FSP_LEAVE_MJ("FileObject=%p", IrpSp->FileObject); } - -VOID FspCloseComplete( - PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response) -{ - FSP_ENTER_IOC(PAGED_CODE()); - - FSP_LEAVE_IOC("FileObject=%p", IrpSp->FileObject); -} diff --git a/src/sys/driver.c b/src/sys/driver.c index 455fffa3..4e254929 100644 --- a/src/sys/driver.c +++ b/src/sys/driver.c @@ -68,7 +68,7 @@ NTSTATUS DriverEntry( /* setup the I/O completion functions */ FspIopCompleteFunction[IRP_MJ_CREATE] = FspFsvolCreateComplete; - FspIopCompleteFunction[IRP_MJ_CLOSE] = FspCloseComplete; + FspIopCompleteFunction[IRP_MJ_CLOSE] = FspFsvolCloseComplete; FspIopCompleteFunction[IRP_MJ_READ] = FspReadComplete; FspIopCompleteFunction[IRP_MJ_WRITE] = FspWriteComplete; FspIopCompleteFunction[IRP_MJ_QUERY_INFORMATION] = FspQueryInformationComplete; diff --git a/src/sys/driver.h b/src/sys/driver.h index dc3ebf67..2b802bff 100644 --- a/src/sys/driver.h +++ b/src/sys/driver.h @@ -212,7 +212,7 @@ typedef VOID FSP_IOCMPL_DISPATCH( _Inout_ PIRP Irp, _In_ const FSP_FSCTL_TRANSACT_RSP *Response); FSP_IOPREP_DISPATCH FspFsvolCreatePrepare; FSP_IOCMPL_DISPATCH FspFsvolCleanupComplete; -FSP_IOCMPL_DISPATCH FspCloseComplete; +FSP_IOCMPL_DISPATCH FspFsvolCloseComplete; FSP_IOCMPL_DISPATCH FspFsvolCreateComplete; FSP_IOCMPL_DISPATCH FspDeviceControlComplete; FSP_IOCMPL_DISPATCH FspDirectoryControlComplete;