diff --git a/build/VStudio/winfsp_sys.vcxproj b/build/VStudio/winfsp_sys.vcxproj
index 64a63e52..2b7e4d5f 100644
--- a/build/VStudio/winfsp_sys.vcxproj
+++ b/build/VStudio/winfsp_sys.vcxproj
@@ -146,7 +146,7 @@
-
+
diff --git a/build/VStudio/winfsp_sys.vcxproj.filters b/build/VStudio/winfsp_sys.vcxproj.filters
index 6e8c242a..ce080be4 100644
--- a/build/VStudio/winfsp_sys.vcxproj.filters
+++ b/build/VStudio/winfsp_sys.vcxproj.filters
@@ -77,7 +77,7 @@
Source
-
+
Source
diff --git a/src/sys/cleanup.c b/src/sys/cleanup.c
index d3c07a1f..314a9d6d 100644
--- a/src/sys/cleanup.c
+++ b/src/sys/cleanup.c
@@ -13,7 +13,7 @@ static NTSTATUS FspFsvrtCleanup(
static NTSTATUS FspFsvolCleanup(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspCleanup;
-FSP_IOCOMPLETION_DISPATCH FspCleanupComplete;
+FSP_IOPROC_DISPATCH FspCleanupComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsctlCleanup)
diff --git a/src/sys/close.c b/src/sys/close.c
index c1ab0452..30659b98 100644
--- a/src/sys/close.c
+++ b/src/sys/close.c
@@ -13,7 +13,7 @@ static NTSTATUS FspFsvrtClose(
static NTSTATUS FspFsvolClose(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspClose;
-FSP_IOCOMPLETION_DISPATCH FspCloseComplete;
+FSP_IOPROC_DISPATCH FspCloseComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsctlClose)
diff --git a/src/sys/create.c b/src/sys/create.c
index d50ccb9c..a03f9997 100644
--- a/src/sys/create.c
+++ b/src/sys/create.c
@@ -13,7 +13,7 @@ static NTSTATUS FspFsvrtCreate(
static NTSTATUS FspFsvolCreate(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspCreate;
-FSP_IOCOMPLETION_DISPATCH FspCreateComplete;
+FSP_IOPROC_DISPATCH FspCreateComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsctlCreate)
diff --git a/src/sys/devctl.c b/src/sys/devctl.c
index 9dabad4c..92caa427 100644
--- a/src/sys/devctl.c
+++ b/src/sys/devctl.c
@@ -9,7 +9,7 @@
static NTSTATUS FspFsvolDeviceControl(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspDeviceControl;
-FSP_IOCOMPLETION_DISPATCH FspDeviceControlComplete;
+FSP_IOPROC_DISPATCH FspDeviceControlComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsvolDeviceControl)
diff --git a/src/sys/dirctl.c b/src/sys/dirctl.c
index f7a19a67..88c78178 100644
--- a/src/sys/dirctl.c
+++ b/src/sys/dirctl.c
@@ -9,7 +9,7 @@
static NTSTATUS FspFsvolDirectoryControl(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspDirectoryControl;
-FSP_IOCOMPLETION_DISPATCH FspDirectoryControlComplete;
+FSP_IOPROC_DISPATCH FspDirectoryControlComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsvolDirectoryControl)
diff --git a/src/sys/driver.c b/src/sys/driver.c
index a51cafd4..f21076b6 100644
--- a/src/sys/driver.c
+++ b/src/sys/driver.c
@@ -67,25 +67,25 @@ DriverEntry(
DriverObject->MajorFunction[IRP_MJ_SET_SECURITY] = FspSetSecurity;
/* setup the I/O completion functions */
- FspIoCompletionFunction[IRP_MJ_CREATE] = FspCreateComplete;
- FspIoCompletionFunction[IRP_MJ_CLOSE] = FspCloseComplete;
- FspIoCompletionFunction[IRP_MJ_READ] = FspReadComplete;
- FspIoCompletionFunction[IRP_MJ_WRITE] = FspWriteComplete;
- FspIoCompletionFunction[IRP_MJ_QUERY_INFORMATION] = FspQueryInformationComplete;
- FspIoCompletionFunction[IRP_MJ_SET_INFORMATION] = FspSetInformationComplete;
- FspIoCompletionFunction[IRP_MJ_QUERY_EA] = FspQueryEaComplete;
- FspIoCompletionFunction[IRP_MJ_SET_EA] = FspSetEaComplete;
- FspIoCompletionFunction[IRP_MJ_FLUSH_BUFFERS] = FspFlushBuffersComplete;
- FspIoCompletionFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = FspQueryVolumeInformationComplete;
- FspIoCompletionFunction[IRP_MJ_SET_VOLUME_INFORMATION] = FspSetVolumeInformationComplete;
- FspIoCompletionFunction[IRP_MJ_DIRECTORY_CONTROL] = FspDirectoryControlComplete;
- FspIoCompletionFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = FspFileSystemControlComplete;
- FspIoCompletionFunction[IRP_MJ_DEVICE_CONTROL] = FspDeviceControlComplete;
- FspIoCompletionFunction[IRP_MJ_SHUTDOWN] = FspShutdownComplete;
- FspIoCompletionFunction[IRP_MJ_LOCK_CONTROL] = FspLockControlComplete;
- FspIoCompletionFunction[IRP_MJ_CLEANUP] = FspCleanupComplete;
- FspIoCompletionFunction[IRP_MJ_QUERY_SECURITY] = FspQuerySecurityComplete;
- FspIoCompletionFunction[IRP_MJ_SET_SECURITY] = FspSetSecurityComplete;
+ FspIoProcessFunction[IRP_MJ_CREATE] = FspCreateComplete;
+ FspIoProcessFunction[IRP_MJ_CLOSE] = FspCloseComplete;
+ FspIoProcessFunction[IRP_MJ_READ] = FspReadComplete;
+ FspIoProcessFunction[IRP_MJ_WRITE] = FspWriteComplete;
+ FspIoProcessFunction[IRP_MJ_QUERY_INFORMATION] = FspQueryInformationComplete;
+ FspIoProcessFunction[IRP_MJ_SET_INFORMATION] = FspSetInformationComplete;
+ FspIoProcessFunction[IRP_MJ_QUERY_EA] = FspQueryEaComplete;
+ FspIoProcessFunction[IRP_MJ_SET_EA] = FspSetEaComplete;
+ FspIoProcessFunction[IRP_MJ_FLUSH_BUFFERS] = FspFlushBuffersComplete;
+ FspIoProcessFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = FspQueryVolumeInformationComplete;
+ FspIoProcessFunction[IRP_MJ_SET_VOLUME_INFORMATION] = FspSetVolumeInformationComplete;
+ FspIoProcessFunction[IRP_MJ_DIRECTORY_CONTROL] = FspDirectoryControlComplete;
+ FspIoProcessFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = FspFileSystemControlComplete;
+ FspIoProcessFunction[IRP_MJ_DEVICE_CONTROL] = FspDeviceControlComplete;
+ FspIoProcessFunction[IRP_MJ_SHUTDOWN] = FspShutdownComplete;
+ FspIoProcessFunction[IRP_MJ_LOCK_CONTROL] = FspLockControlComplete;
+ FspIoProcessFunction[IRP_MJ_CLEANUP] = FspCleanupComplete;
+ FspIoProcessFunction[IRP_MJ_QUERY_SECURITY] = FspQuerySecurityComplete;
+ FspIoProcessFunction[IRP_MJ_SET_SECURITY] = FspSetSecurityComplete;
/* setup fast I/O and resource acquisition */
static FAST_IO_DISPATCH FspFastIoDispatch = { 0 };
diff --git a/src/sys/driver.h b/src/sys/driver.h
index 9c7bb094..0058c95d 100644
--- a/src/sys/driver.h
+++ b/src/sys/driver.h
@@ -160,11 +160,8 @@ _Function_class_(DRIVER_DISPATCH)
_IRQL_requires_max_(APC_LEVEL)
/* see https://msdn.microsoft.com/en-us/library/windows/hardware/ff540124(v=vs.85).aspx */
_IRQL_requires_same_
-typedef
-NTSTATUS
-FSP_DRIVER_DISPATCH(
- _In_ struct _DEVICE_OBJECT *DeviceObject,
- _Inout_ struct _IRP *Irp);
+typedef NTSTATUS FSP_DRIVER_DISPATCH(
+ _In_ struct _DEVICE_OBJECT *DeviceObject, _Inout_ struct _IRP *Irp);
_Dispatch_type_(IRP_MJ_CLEANUP) FSP_DRIVER_DISPATCH FspCleanup;
_Dispatch_type_(IRP_MJ_CLOSE) FSP_DRIVER_DISPATCH FspClose;
_Dispatch_type_(IRP_MJ_CREATE) FSP_DRIVER_DISPATCH FspCreate;
@@ -188,30 +185,27 @@ _Dispatch_type_(IRP_MJ_WRITE) FSP_DRIVER_DISPATCH FspWrite;
/* I/O completion functions */
_IRQL_requires_max_(APC_LEVEL)
_IRQL_requires_same_
-typedef
-VOID
-FSP_IOCOMPLETION_DISPATCH(
- _Inout_ PIRP Irp,
- _In_ FSP_FSCTL_TRANSACT_RSP *Response);
-FSP_IOCOMPLETION_DISPATCH FspCleanupComplete;
-FSP_IOCOMPLETION_DISPATCH FspCloseComplete;
-FSP_IOCOMPLETION_DISPATCH FspCreateComplete;
-FSP_IOCOMPLETION_DISPATCH FspDeviceControlComplete;
-FSP_IOCOMPLETION_DISPATCH FspDirectoryControlComplete;
-FSP_IOCOMPLETION_DISPATCH FspFileSystemControlComplete;
-FSP_IOCOMPLETION_DISPATCH FspFlushBuffersComplete;
-FSP_IOCOMPLETION_DISPATCH FspLockControlComplete;
-FSP_IOCOMPLETION_DISPATCH FspQueryEaComplete;
-FSP_IOCOMPLETION_DISPATCH FspQueryInformationComplete;
-FSP_IOCOMPLETION_DISPATCH FspQuerySecurityComplete;
-FSP_IOCOMPLETION_DISPATCH FspQueryVolumeInformationComplete;
-FSP_IOCOMPLETION_DISPATCH FspReadComplete;
-FSP_IOCOMPLETION_DISPATCH FspSetEaComplete;
-FSP_IOCOMPLETION_DISPATCH FspSetInformationComplete;
-FSP_IOCOMPLETION_DISPATCH FspSetSecurityComplete;
-FSP_IOCOMPLETION_DISPATCH FspSetVolumeInformationComplete;
-FSP_IOCOMPLETION_DISPATCH FspShutdownComplete;
-FSP_IOCOMPLETION_DISPATCH FspWriteComplete;
+typedef VOID FSP_IOPROC_DISPATCH(
+ _Inout_ PIRP Irp, _In_ FSP_FSCTL_TRANSACT_RSP *Response);
+FSP_IOPROC_DISPATCH FspCleanupComplete;
+FSP_IOPROC_DISPATCH FspCloseComplete;
+FSP_IOPROC_DISPATCH FspCreateComplete;
+FSP_IOPROC_DISPATCH FspDeviceControlComplete;
+FSP_IOPROC_DISPATCH FspDirectoryControlComplete;
+FSP_IOPROC_DISPATCH FspFileSystemControlComplete;
+FSP_IOPROC_DISPATCH FspFlushBuffersComplete;
+FSP_IOPROC_DISPATCH FspLockControlComplete;
+FSP_IOPROC_DISPATCH FspQueryEaComplete;
+FSP_IOPROC_DISPATCH FspQueryInformationComplete;
+FSP_IOPROC_DISPATCH FspQuerySecurityComplete;
+FSP_IOPROC_DISPATCH FspQueryVolumeInformationComplete;
+FSP_IOPROC_DISPATCH FspReadComplete;
+FSP_IOPROC_DISPATCH FspSetEaComplete;
+FSP_IOPROC_DISPATCH FspSetInformationComplete;
+FSP_IOPROC_DISPATCH FspSetSecurityComplete;
+FSP_IOPROC_DISPATCH FspSetVolumeInformationComplete;
+FSP_IOPROC_DISPATCH FspShutdownComplete;
+FSP_IOPROC_DISPATCH FspWriteComplete;
/* fast I/O */
FAST_IO_CHECK_IF_POSSIBLE FspFastIoCheckIfPossible;
@@ -310,6 +304,6 @@ const char *IoctlCodeSym(ULONG ControlCode);
/* extern */
extern PDEVICE_OBJECT FspFsctlDiskDeviceObject;
extern PDEVICE_OBJECT FspFsctlNetDeviceObject;
-extern FSP_IOCOMPLETION_DISPATCH *FspIoCompletionFunction[];
+extern FSP_IOPROC_DISPATCH *FspIoProcessFunction[];
#endif
diff --git a/src/sys/ea.c b/src/sys/ea.c
index 34e6add4..492dc15c 100644
--- a/src/sys/ea.c
+++ b/src/sys/ea.c
@@ -12,8 +12,8 @@ static NTSTATUS FspFsvolSetEa(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspQueryEa;
FSP_DRIVER_DISPATCH FspSetEa;
-FSP_IOCOMPLETION_DISPATCH FspQueryEaComplete;
-FSP_IOCOMPLETION_DISPATCH FspSetEaComplete;
+FSP_IOPROC_DISPATCH FspQueryEaComplete;
+FSP_IOPROC_DISPATCH FspSetEaComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsvolQueryEa)
diff --git a/src/sys/fileinfo.c b/src/sys/fileinfo.c
index 1d1049f9..b6acff68 100644
--- a/src/sys/fileinfo.c
+++ b/src/sys/fileinfo.c
@@ -12,8 +12,8 @@ static NTSTATUS FspFsvolSetInformation(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspQueryInformation;
FSP_DRIVER_DISPATCH FspSetInformation;
-FSP_IOCOMPLETION_DISPATCH FspQueryInformationComplete;
-FSP_IOCOMPLETION_DISPATCH FspSetInformationComplete;
+FSP_IOPROC_DISPATCH FspQueryInformationComplete;
+FSP_IOPROC_DISPATCH FspSetInformationComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsvolQueryInformation)
diff --git a/src/sys/flush.c b/src/sys/flush.c
index 5a04cb8f..44d0bd66 100644
--- a/src/sys/flush.c
+++ b/src/sys/flush.c
@@ -9,7 +9,7 @@
static NTSTATUS FspFsvolFlushBuffers(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspFlushBuffers;
-FSP_IOCOMPLETION_DISPATCH FspFlushBuffersComplete;
+FSP_IOPROC_DISPATCH FspFlushBuffersComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsvolFlushBuffers)
diff --git a/src/sys/fsctl.c b/src/sys/fsctl.c
index ccf24581..cf3baeb4 100644
--- a/src/sys/fsctl.c
+++ b/src/sys/fsctl.c
@@ -19,7 +19,7 @@ static NTSTATUS FspFsvrtFileSystemControl(
static NTSTATUS FspFsvolFileSystemControl(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspFileSystemControl;
-FSP_IOCOMPLETION_DISPATCH FspFileSystemControlComplete;
+FSP_IOPROC_DISPATCH FspFileSystemControlComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsctlCreateVolume)
diff --git a/src/sys/ioc.c b/src/sys/iop.c
similarity index 79%
rename from src/sys/ioc.c
rename to src/sys/iop.c
index df8ce079..770540e0 100644
--- a/src/sys/ioc.c
+++ b/src/sys/iop.c
@@ -1,5 +1,5 @@
/**
- * @file sys/ioc.c
+ * @file sys/iop.c
*
* @copyright 2015 Bill Zissimopoulos
*/
@@ -37,9 +37,9 @@ VOID FspDispatchProcessedIrp(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response)
PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp);
ASSERT(IRP_MJ_MAXIMUM_FUNCTION >= IrpSp->MajorFunction);
- ASSERT(0 != FspIoCompletionFunction[IrpSp->MajorFunction]);
+ ASSERT(0 != FspIoProcessFunction[IrpSp->MajorFunction]);
- FspIoCompletionFunction[IrpSp->MajorFunction](Irp, Response);
+ FspIoProcessFunction[IrpSp->MajorFunction](Irp, Response);
}
-
-FSP_IOCOMPLETION_DISPATCH *FspIoCompletionFunction[IRP_MJ_MAXIMUM_FUNCTION + 1];
+
+FSP_IOPROC_DISPATCH *FspIoProcessFunction[IRP_MJ_MAXIMUM_FUNCTION + 1];
diff --git a/src/sys/lockctl.c b/src/sys/lockctl.c
index e8d39ea6..21be5613 100644
--- a/src/sys/lockctl.c
+++ b/src/sys/lockctl.c
@@ -9,7 +9,7 @@
static NTSTATUS FspFsvolLockControl(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspLockControl;
-FSP_IOCOMPLETION_DISPATCH FspLockControlComplete;
+FSP_IOPROC_DISPATCH FspLockControlComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsvolLockControl)
diff --git a/src/sys/read.c b/src/sys/read.c
index 3608f620..5c99c0a3 100644
--- a/src/sys/read.c
+++ b/src/sys/read.c
@@ -9,7 +9,7 @@
static NTSTATUS FspFsvolRead(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspRead;
-FSP_IOCOMPLETION_DISPATCH FspReadComplete;
+FSP_IOPROC_DISPATCH FspReadComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsvolRead)
diff --git a/src/sys/security.c b/src/sys/security.c
index 28fa2790..4789c077 100644
--- a/src/sys/security.c
+++ b/src/sys/security.c
@@ -12,8 +12,8 @@ static NTSTATUS FspFsvolSetSecurity(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspQuerySecurity;
FSP_DRIVER_DISPATCH FspSetSecurity;
-FSP_IOCOMPLETION_DISPATCH FspQuerySecurityComplete;
-FSP_IOCOMPLETION_DISPATCH FspSetSecurityComplete;
+FSP_IOPROC_DISPATCH FspQuerySecurityComplete;
+FSP_IOPROC_DISPATCH FspSetSecurityComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsvolQuerySecurity)
diff --git a/src/sys/shutdown.c b/src/sys/shutdown.c
index 690801f2..04dd97c7 100644
--- a/src/sys/shutdown.c
+++ b/src/sys/shutdown.c
@@ -9,7 +9,7 @@
static NTSTATUS FspFsvolShutdown(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspShutdown;
-FSP_IOCOMPLETION_DISPATCH FspShutdownComplete;
+FSP_IOPROC_DISPATCH FspShutdownComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsvolShutdown)
diff --git a/src/sys/volinfo.c b/src/sys/volinfo.c
index 9de33de1..13a4388b 100644
--- a/src/sys/volinfo.c
+++ b/src/sys/volinfo.c
@@ -12,8 +12,8 @@ static NTSTATUS FspFsvolSetVolumeInformation(
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
FSP_DRIVER_DISPATCH FspQueryVolumeInformation;
FSP_DRIVER_DISPATCH FspSetVolumeInformation;
-FSP_IOCOMPLETION_DISPATCH FspQueryVolumeInformationComplete;
-FSP_IOCOMPLETION_DISPATCH FspSetVolumeInformationComplete;
+FSP_IOPROC_DISPATCH FspQueryVolumeInformationComplete;
+FSP_IOPROC_DISPATCH FspSetVolumeInformationComplete;
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsvolQueryVolumeInformation)