From 0db1f0614ba90513d1c11ce5abc0ebfc3b483cf8 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Fri, 27 Nov 2015 23:30:59 -0800 Subject: [PATCH] sys: static analysis fixes --- src/sys/cleanup.c | 17 +++++++++----- src/sys/close.c | 17 +++++++++----- src/sys/create.c | 17 +++++++++----- src/sys/devctl.c | 13 ++++++----- src/sys/dirctl.c | 13 ++++++----- src/sys/driver.h | 55 +++++++++++++++++++++++++++++----------------- src/sys/ea.c | 26 ++++++++++++---------- src/sys/fileinfo.c | 26 ++++++++++++---------- src/sys/flush.c | 13 ++++++----- src/sys/fsctl.c | 23 ++++++++++++++----- src/sys/lockctl.c | 13 ++++++----- src/sys/read.c | 13 ++++++----- src/sys/security.c | 26 ++++++++++++---------- src/sys/shutdown.c | 13 ++++++----- src/sys/volinfo.c | 26 ++++++++++++---------- src/sys/write.c | 13 ++++++----- 16 files changed, 190 insertions(+), 134 deletions(-) diff --git a/src/sys/cleanup.c b/src/sys/cleanup.c index bf32f799..d3c07a1f 100644 --- a/src/sys/cleanup.c +++ b/src/sys/cleanup.c @@ -12,7 +12,7 @@ static NTSTATUS FspFsvrtCleanup( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); static NTSTATUS FspFsvolCleanup( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspCleanup; +FSP_DRIVER_DISPATCH FspCleanup; FSP_IOCOMPLETION_DISPATCH FspCleanupComplete; #ifdef ALLOC_PRAGMA @@ -26,6 +26,8 @@ FSP_IOCOMPLETION_DISPATCH FspCleanupComplete; static NTSTATUS FspFsctlCleanup( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + NTSTATUS Result = STATUS_SUCCESS; Irp->IoStatus.Information = 0; return Result; @@ -34,6 +36,8 @@ static NTSTATUS FspFsctlCleanup( static NTSTATUS FspFsvrtCleanup( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + NTSTATUS Result = STATUS_SUCCESS; Irp->IoStatus.Information = 0; return Result; @@ -42,13 +46,13 @@ static NTSTATUS FspFsvrtCleanup( static NTSTATUS FspFsvolCleanup( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspCleanup( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspCleanup( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -69,7 +73,8 @@ FspCleanup( FSP_LEAVE_MJ("FileObject=%p", IrpSp->FileObject); } -VOID FspCleanupComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspCleanupComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/close.c b/src/sys/close.c index fa7cb294..c1ab0452 100644 --- a/src/sys/close.c +++ b/src/sys/close.c @@ -12,7 +12,7 @@ static NTSTATUS FspFsvrtClose( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); static NTSTATUS FspFsvolClose( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspClose; +FSP_DRIVER_DISPATCH FspClose; FSP_IOCOMPLETION_DISPATCH FspCloseComplete; #ifdef ALLOC_PRAGMA @@ -26,6 +26,8 @@ FSP_IOCOMPLETION_DISPATCH FspCloseComplete; static NTSTATUS FspFsctlClose( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + NTSTATUS Result = STATUS_SUCCESS; Irp->IoStatus.Information = 0; return Result; @@ -34,6 +36,8 @@ static NTSTATUS FspFsctlClose( static NTSTATUS FspFsvrtClose( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + NTSTATUS Result = STATUS_SUCCESS; Irp->IoStatus.Information = 0; return Result; @@ -42,13 +46,13 @@ static NTSTATUS FspFsvrtClose( static NTSTATUS FspFsvolClose( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspClose( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspClose( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -69,7 +73,8 @@ FspClose( FSP_LEAVE_MJ("FileObject=%p", IrpSp->FileObject); } -VOID FspCloseComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspCloseComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/create.c b/src/sys/create.c index 290c55d0..d50ccb9c 100644 --- a/src/sys/create.c +++ b/src/sys/create.c @@ -12,7 +12,7 @@ static NTSTATUS FspFsvrtCreate( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); static NTSTATUS FspFsvolCreate( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspCreate; +FSP_DRIVER_DISPATCH FspCreate; FSP_IOCOMPLETION_DISPATCH FspCreateComplete; #ifdef ALLOC_PRAGMA @@ -26,6 +26,8 @@ FSP_IOCOMPLETION_DISPATCH FspCreateComplete; static NTSTATUS FspFsctlCreate( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + NTSTATUS Result = STATUS_SUCCESS; Irp->IoStatus.Information = FILE_OPENED; return Result; @@ -34,6 +36,8 @@ static NTSTATUS FspFsctlCreate( static NTSTATUS FspFsvrtCreate( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + NTSTATUS Result = STATUS_SUCCESS; Irp->IoStatus.Information = FILE_OPENED; return Result; @@ -42,13 +46,13 @@ static NTSTATUS FspFsvrtCreate( static NTSTATUS FspFsvolCreate( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspCreate( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspCreate( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -85,7 +89,8 @@ FspCreate( Irp->AssociatedIrp.SystemBuffer, IrpSp->Parameters.Create.EaLength); } -VOID FspCreateComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspCreateComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/devctl.c b/src/sys/devctl.c index 2ccdd2b6..9dabad4c 100644 --- a/src/sys/devctl.c +++ b/src/sys/devctl.c @@ -8,7 +8,7 @@ static NTSTATUS FspFsvolDeviceControl( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspDeviceControl; +FSP_DRIVER_DISPATCH FspDeviceControl; FSP_IOCOMPLETION_DISPATCH FspDeviceControlComplete; #ifdef ALLOC_PRAGMA @@ -20,13 +20,13 @@ FSP_IOCOMPLETION_DISPATCH FspDeviceControlComplete; static NTSTATUS FspFsvolDeviceControl( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspDeviceControl( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspDeviceControl( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -43,7 +43,8 @@ FspDeviceControl( FSP_LEAVE_MJ("", 0); } -VOID FspDeviceControlComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspDeviceControlComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/dirctl.c b/src/sys/dirctl.c index 16c78ee0..f7a19a67 100644 --- a/src/sys/dirctl.c +++ b/src/sys/dirctl.c @@ -8,7 +8,7 @@ static NTSTATUS FspFsvolDirectoryControl( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspDirectoryControl; +FSP_DRIVER_DISPATCH FspDirectoryControl; FSP_IOCOMPLETION_DISPATCH FspDirectoryControlComplete; #ifdef ALLOC_PRAGMA @@ -20,13 +20,13 @@ FSP_IOCOMPLETION_DISPATCH FspDirectoryControlComplete; static NTSTATUS FspFsvolDirectoryControl( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspDirectoryControl( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspDirectoryControl( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -43,7 +43,8 @@ FspDirectoryControl( FSP_LEAVE_MJ("", 0); } -VOID FspDirectoryControlComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspDirectoryControlComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/driver.h b/src/sys/driver.h index 3d6d4f4c..9c7bb094 100644 --- a/src/sys/driver.h +++ b/src/sys/driver.h @@ -156,28 +156,43 @@ #pragma warning(disable:4200) /* zero-sized array in struct/union */ /* driver major functions */ -DRIVER_DISPATCH FspCleanup; -DRIVER_DISPATCH FspClose; -DRIVER_DISPATCH FspCreate; -DRIVER_DISPATCH FspDeviceControl; -DRIVER_DISPATCH FspDirectoryControl; -DRIVER_DISPATCH FspFileSystemControl; -DRIVER_DISPATCH FspFlushBuffers; -DRIVER_DISPATCH FspLockControl; -DRIVER_DISPATCH FspQueryEa; -DRIVER_DISPATCH FspQueryInformation; -DRIVER_DISPATCH FspQuerySecurity; -DRIVER_DISPATCH FspQueryVolumeInformation; -DRIVER_DISPATCH FspRead; -DRIVER_DISPATCH FspSetEa; -DRIVER_DISPATCH FspSetInformation; -DRIVER_DISPATCH FspSetSecurity; -DRIVER_DISPATCH FspSetVolumeInformation; -DRIVER_DISPATCH FspShutdown; -DRIVER_DISPATCH FspWrite; +_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); +_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; +_Dispatch_type_(IRP_MJ_DEVICE_CONTROL) FSP_DRIVER_DISPATCH FspDeviceControl; +_Dispatch_type_(IRP_MJ_DIRECTORY_CONTROL) FSP_DRIVER_DISPATCH FspDirectoryControl; +_Dispatch_type_(IRP_MJ_FILE_SYSTEM_CONTROL) FSP_DRIVER_DISPATCH FspFileSystemControl; +_Dispatch_type_(IRP_MJ_FLUSH_BUFFERS) FSP_DRIVER_DISPATCH FspFlushBuffers; +_Dispatch_type_(IRP_MJ_LOCK_CONTROL) FSP_DRIVER_DISPATCH FspLockControl; +_Dispatch_type_(IRP_MJ_QUERY_EA) FSP_DRIVER_DISPATCH FspQueryEa; +_Dispatch_type_(IRP_MJ_QUERY_INFORMATION) FSP_DRIVER_DISPATCH FspQueryInformation; +_Dispatch_type_(IRP_MJ_QUERY_SECURITY) FSP_DRIVER_DISPATCH FspQuerySecurity; +_Dispatch_type_(IRP_MJ_QUERY_VOLUME_INFORMATION) FSP_DRIVER_DISPATCH FspQueryVolumeInformation; +_Dispatch_type_(IRP_MJ_READ) FSP_DRIVER_DISPATCH FspRead; +_Dispatch_type_(IRP_MJ_SET_EA) FSP_DRIVER_DISPATCH FspSetEa; +_Dispatch_type_(IRP_MJ_SET_INFORMATION) FSP_DRIVER_DISPATCH FspSetInformation; +_Dispatch_type_(IRP_MJ_SET_SECURITY) FSP_DRIVER_DISPATCH FspSetSecurity; +_Dispatch_type_(IRP_MJ_SET_VOLUME_INFORMATION) FSP_DRIVER_DISPATCH FspSetVolumeInformation; +_Dispatch_type_(IRP_MJ_SHUTDOWN) FSP_DRIVER_DISPATCH FspShutdown; +_Dispatch_type_(IRP_MJ_WRITE) FSP_DRIVER_DISPATCH FspWrite; /* I/O completion functions */ -typedef VOID FSP_IOCOMPLETION_DISPATCH(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response); +_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; diff --git a/src/sys/ea.c b/src/sys/ea.c index 43e57dfa..34e6add4 100644 --- a/src/sys/ea.c +++ b/src/sys/ea.c @@ -10,8 +10,8 @@ static NTSTATUS FspFsvolQueryEa( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); static NTSTATUS FspFsvolSetEa( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspQueryEa; -DRIVER_DISPATCH FspSetEa; +FSP_DRIVER_DISPATCH FspQueryEa; +FSP_DRIVER_DISPATCH FspSetEa; FSP_IOCOMPLETION_DISPATCH FspQueryEaComplete; FSP_IOCOMPLETION_DISPATCH FspSetEaComplete; @@ -27,19 +27,21 @@ FSP_IOCOMPLETION_DISPATCH FspSetEaComplete; static NTSTATUS FspFsvolQueryEa( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } static NTSTATUS FspFsvolSetEa( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspQueryEa( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspQueryEa( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -56,10 +58,8 @@ FspQueryEa( FSP_LEAVE_MJ("", 0); } -NTSTATUS -FspSetEa( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspSetEa( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -76,14 +76,16 @@ FspSetEa( FSP_LEAVE_MJ("", 0); } -VOID FspQueryEaComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspQueryEaComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); FSP_LEAVE_IOC("", 0); } -VOID FspSetEaComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspSetEaComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/fileinfo.c b/src/sys/fileinfo.c index 12d0a6cc..1d1049f9 100644 --- a/src/sys/fileinfo.c +++ b/src/sys/fileinfo.c @@ -10,8 +10,8 @@ static NTSTATUS FspFsvolQueryInformation( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); static NTSTATUS FspFsvolSetInformation( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspQueryInformation; -DRIVER_DISPATCH FspSetInformation; +FSP_DRIVER_DISPATCH FspQueryInformation; +FSP_DRIVER_DISPATCH FspSetInformation; FSP_IOCOMPLETION_DISPATCH FspQueryInformationComplete; FSP_IOCOMPLETION_DISPATCH FspSetInformationComplete; @@ -27,19 +27,21 @@ FSP_IOCOMPLETION_DISPATCH FspSetInformationComplete; static NTSTATUS FspFsvolQueryInformation( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } static NTSTATUS FspFsvolSetInformation( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspQueryInformation( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspQueryInformation( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -56,10 +58,8 @@ FspQueryInformation( FSP_LEAVE_MJ("", 0); } -NTSTATUS -FspSetInformation( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspSetInformation( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -76,14 +76,16 @@ FspSetInformation( FSP_LEAVE_MJ("", 0); } -VOID FspQueryInformationComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspQueryInformationComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); FSP_LEAVE_IOC("", 0); } -VOID FspSetInformationComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspSetInformationComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/flush.c b/src/sys/flush.c index 13f5ac8b..5a04cb8f 100644 --- a/src/sys/flush.c +++ b/src/sys/flush.c @@ -8,7 +8,7 @@ static NTSTATUS FspFsvolFlushBuffers( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspFlushBuffers; +FSP_DRIVER_DISPATCH FspFlushBuffers; FSP_IOCOMPLETION_DISPATCH FspFlushBuffersComplete; #ifdef ALLOC_PRAGMA @@ -20,13 +20,13 @@ FSP_IOCOMPLETION_DISPATCH FspFlushBuffersComplete; static NTSTATUS FspFsvolFlushBuffers( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspFlushBuffers( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspFlushBuffers( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -43,7 +43,8 @@ FspFlushBuffers( FSP_LEAVE_MJ("", 0); } -VOID FspFlushBuffersComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspFlushBuffersComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/fsctl.c b/src/sys/fsctl.c index 9e0df139..ccf24581 100644 --- a/src/sys/fsctl.c +++ b/src/sys/fsctl.c @@ -18,7 +18,7 @@ static NTSTATUS FspFsvrtFileSystemControl( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); static NTSTATUS FspFsvolFileSystemControl( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspFileSystemControl; +FSP_DRIVER_DISPATCH FspFileSystemControl; FSP_IOCOMPLETION_DISPATCH FspFileSystemControlComplete; #ifdef ALLOC_PRAGMA @@ -35,6 +35,8 @@ FSP_IOCOMPLETION_DISPATCH FspFileSystemControlComplete; static NTSTATUS FspFsctlCreateVolume( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + /* check parameters */ ULONG InputBufferLength = IrpSp->Parameters.FileSystemControl.InputBufferLength; ULONG OutputBufferLength = IrpSp->Parameters.FileSystemControl.OutputBufferLength; @@ -96,6 +98,8 @@ static NTSTATUS FspFsctlCreateVolume( static NTSTATUS FspFsvrtDeleteVolume( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + NTSTATUS Result; FSP_FSVRT_DEVICE_EXTENSION *FsvrtDeviceExtension = FspFsvrtDeviceExtension(DeviceObject); @@ -111,6 +115,8 @@ static NTSTATUS FspFsvrtDeleteVolume( static NTSTATUS FspFsvrtTransact( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + /* check parameters */ ULONG InputBufferLength = IrpSp->Parameters.FileSystemControl.InputBufferLength; ULONG OutputBufferLength = IrpSp->Parameters.FileSystemControl.OutputBufferLength; @@ -205,6 +211,8 @@ static NTSTATUS FspFsvrtTransact( static NTSTATUS FspFsctlFileSystemControl( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + NTSTATUS Result = STATUS_INVALID_DEVICE_REQUEST; switch (IrpSp->MinorFunction) { @@ -222,6 +230,8 @@ static NTSTATUS FspFsctlFileSystemControl( static NTSTATUS FspFsvrtFileSystemControl( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + NTSTATUS Result = STATUS_INVALID_DEVICE_REQUEST; switch (IrpSp->MinorFunction) { @@ -243,6 +253,8 @@ static NTSTATUS FspFsvrtFileSystemControl( static NTSTATUS FspFsvolFileSystemControl( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + NTSTATUS Result = STATUS_INVALID_DEVICE_REQUEST; switch (IrpSp->MinorFunction) { @@ -256,10 +268,8 @@ static NTSTATUS FspFsvolFileSystemControl( return Result; } -NTSTATUS -FspFileSystemControl( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspFileSystemControl( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -285,7 +295,8 @@ FspFileSystemControl( IoctlCodeSym(IrpSp->Parameters.FileSystemControl.FsControlCode) : ""); } -VOID FspFileSystemControlComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspFileSystemControlComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/lockctl.c b/src/sys/lockctl.c index 095eb9e3..e8d39ea6 100644 --- a/src/sys/lockctl.c +++ b/src/sys/lockctl.c @@ -8,7 +8,7 @@ static NTSTATUS FspFsvolLockControl( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspLockControl; +FSP_DRIVER_DISPATCH FspLockControl; FSP_IOCOMPLETION_DISPATCH FspLockControlComplete; #ifdef ALLOC_PRAGMA @@ -20,13 +20,13 @@ FSP_IOCOMPLETION_DISPATCH FspLockControlComplete; static NTSTATUS FspFsvolLockControl( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspLockControl( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspLockControl( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -43,7 +43,8 @@ FspLockControl( FSP_LEAVE_MJ("", 0); } -VOID FspLockControlComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspLockControlComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/read.c b/src/sys/read.c index b6c300ba..3608f620 100644 --- a/src/sys/read.c +++ b/src/sys/read.c @@ -8,7 +8,7 @@ static NTSTATUS FspFsvolRead( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspRead; +FSP_DRIVER_DISPATCH FspRead; FSP_IOCOMPLETION_DISPATCH FspReadComplete; #ifdef ALLOC_PRAGMA @@ -20,13 +20,13 @@ FSP_IOCOMPLETION_DISPATCH FspReadComplete; static NTSTATUS FspFsvolRead( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspRead( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspRead( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -43,7 +43,8 @@ FspRead( FSP_LEAVE_MJ("", 0); } -VOID FspReadComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspReadComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/security.c b/src/sys/security.c index 86eb56a9..28fa2790 100644 --- a/src/sys/security.c +++ b/src/sys/security.c @@ -10,8 +10,8 @@ static NTSTATUS FspFsvolQuerySecurity( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); static NTSTATUS FspFsvolSetSecurity( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspQuerySecurity; -DRIVER_DISPATCH FspSetSecurity; +FSP_DRIVER_DISPATCH FspQuerySecurity; +FSP_DRIVER_DISPATCH FspSetSecurity; FSP_IOCOMPLETION_DISPATCH FspQuerySecurityComplete; FSP_IOCOMPLETION_DISPATCH FspSetSecurityComplete; @@ -27,19 +27,21 @@ FSP_IOCOMPLETION_DISPATCH FspSetSecurityComplete; static NTSTATUS FspFsvolQuerySecurity( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } static NTSTATUS FspFsvolSetSecurity( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspQuerySecurity( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspQuerySecurity( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -56,10 +58,8 @@ FspQuerySecurity( FSP_LEAVE_MJ("", 0); } -NTSTATUS -FspSetSecurity( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspSetSecurity( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -76,14 +76,16 @@ FspSetSecurity( FSP_LEAVE_MJ("", 0); } -VOID FspQuerySecurityComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspQuerySecurityComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); FSP_LEAVE_IOC("", 0); } -VOID FspSetSecurityComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspSetSecurityComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/shutdown.c b/src/sys/shutdown.c index 3e66250b..690801f2 100644 --- a/src/sys/shutdown.c +++ b/src/sys/shutdown.c @@ -8,7 +8,7 @@ static NTSTATUS FspFsvolShutdown( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspShutdown; +FSP_DRIVER_DISPATCH FspShutdown; FSP_IOCOMPLETION_DISPATCH FspShutdownComplete; #ifdef ALLOC_PRAGMA @@ -20,13 +20,13 @@ FSP_IOCOMPLETION_DISPATCH FspShutdownComplete; static NTSTATUS FspFsvolShutdown( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspShutdown( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspShutdown( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -43,7 +43,8 @@ FspShutdown( FSP_LEAVE_MJ("", 0); } -VOID FspShutdownComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspShutdownComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/volinfo.c b/src/sys/volinfo.c index 6a665a3f..9de33de1 100644 --- a/src/sys/volinfo.c +++ b/src/sys/volinfo.c @@ -10,8 +10,8 @@ static NTSTATUS FspFsvolQueryVolumeInformation( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); static NTSTATUS FspFsvolSetVolumeInformation( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspQueryVolumeInformation; -DRIVER_DISPATCH FspSetVolumeInformation; +FSP_DRIVER_DISPATCH FspQueryVolumeInformation; +FSP_DRIVER_DISPATCH FspSetVolumeInformation; FSP_IOCOMPLETION_DISPATCH FspQueryVolumeInformationComplete; FSP_IOCOMPLETION_DISPATCH FspSetVolumeInformationComplete; @@ -27,19 +27,21 @@ FSP_IOCOMPLETION_DISPATCH FspSetVolumeInformationComplete; static NTSTATUS FspFsvolQueryVolumeInformation( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } static NTSTATUS FspFsvolSetVolumeInformation( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspQueryVolumeInformation( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspQueryVolumeInformation( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -56,10 +58,8 @@ FspQueryVolumeInformation( FSP_LEAVE_MJ("", 0); } -NTSTATUS -FspSetVolumeInformation( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspSetVolumeInformation( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -76,14 +76,16 @@ FspSetVolumeInformation( FSP_LEAVE_MJ("", 0); } -VOID FspQueryVolumeInformationComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspQueryVolumeInformationComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); FSP_LEAVE_IOC("", 0); } -VOID FspSetVolumeInformationComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspSetVolumeInformationComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE()); diff --git a/src/sys/write.c b/src/sys/write.c index 55c9993b..878ca69b 100644 --- a/src/sys/write.c +++ b/src/sys/write.c @@ -8,7 +8,7 @@ static NTSTATUS FspFsvolWrite( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); -DRIVER_DISPATCH FspWrite; +FSP_DRIVER_DISPATCH FspWrite; VOID FspWriteComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response); #ifdef ALLOC_PRAGMA @@ -20,13 +20,13 @@ VOID FspWriteComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response); static NTSTATUS FspFsvolWrite( PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp) { + PAGED_CODE(); + return STATUS_INVALID_DEVICE_REQUEST; } -NTSTATUS -FspWrite( - _In_ PDEVICE_OBJECT DeviceObject, - _In_ PIRP Irp) +NTSTATUS FspWrite( + PDEVICE_OBJECT DeviceObject, PIRP Irp) { FSP_ENTER_MJ(PAGED_CODE()); @@ -43,7 +43,8 @@ FspWrite( FSP_LEAVE_MJ("", 0); } -VOID FspWriteComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) +VOID FspWriteComplete( + PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response) { FSP_ENTER_IOC(PAGED_CODE());