mirror of
https://github.com/winfsp/winfsp.git
synced 2025-06-08 04:52:10 -05:00
sys: static analysis fixes
This commit is contained in:
parent
9e9e93238b
commit
0db1f0614b
@ -12,7 +12,7 @@ static NTSTATUS FspFsvrtCleanup(
|
|||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
static NTSTATUS FspFsvolCleanup(
|
static NTSTATUS FspFsvolCleanup(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspCleanup;
|
FSP_DRIVER_DISPATCH FspCleanup;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspCleanupComplete;
|
FSP_IOCOMPLETION_DISPATCH FspCleanupComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
@ -26,6 +26,8 @@ FSP_IOCOMPLETION_DISPATCH FspCleanupComplete;
|
|||||||
static NTSTATUS FspFsctlCleanup(
|
static NTSTATUS FspFsctlCleanup(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
NTSTATUS Result = STATUS_SUCCESS;
|
NTSTATUS Result = STATUS_SUCCESS;
|
||||||
Irp->IoStatus.Information = 0;
|
Irp->IoStatus.Information = 0;
|
||||||
return Result;
|
return Result;
|
||||||
@ -34,6 +36,8 @@ static NTSTATUS FspFsctlCleanup(
|
|||||||
static NTSTATUS FspFsvrtCleanup(
|
static NTSTATUS FspFsvrtCleanup(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
NTSTATUS Result = STATUS_SUCCESS;
|
NTSTATUS Result = STATUS_SUCCESS;
|
||||||
Irp->IoStatus.Information = 0;
|
Irp->IoStatus.Information = 0;
|
||||||
return Result;
|
return Result;
|
||||||
@ -42,13 +46,13 @@ static NTSTATUS FspFsvrtCleanup(
|
|||||||
static NTSTATUS FspFsvolCleanup(
|
static NTSTATUS FspFsvolCleanup(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspCleanup(
|
||||||
FspCleanup(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -69,7 +73,8 @@ FspCleanup(
|
|||||||
FSP_LEAVE_MJ("FileObject=%p", IrpSp->FileObject);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ static NTSTATUS FspFsvrtClose(
|
|||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
static NTSTATUS FspFsvolClose(
|
static NTSTATUS FspFsvolClose(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspClose;
|
FSP_DRIVER_DISPATCH FspClose;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspCloseComplete;
|
FSP_IOCOMPLETION_DISPATCH FspCloseComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
@ -26,6 +26,8 @@ FSP_IOCOMPLETION_DISPATCH FspCloseComplete;
|
|||||||
static NTSTATUS FspFsctlClose(
|
static NTSTATUS FspFsctlClose(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
NTSTATUS Result = STATUS_SUCCESS;
|
NTSTATUS Result = STATUS_SUCCESS;
|
||||||
Irp->IoStatus.Information = 0;
|
Irp->IoStatus.Information = 0;
|
||||||
return Result;
|
return Result;
|
||||||
@ -34,6 +36,8 @@ static NTSTATUS FspFsctlClose(
|
|||||||
static NTSTATUS FspFsvrtClose(
|
static NTSTATUS FspFsvrtClose(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
NTSTATUS Result = STATUS_SUCCESS;
|
NTSTATUS Result = STATUS_SUCCESS;
|
||||||
Irp->IoStatus.Information = 0;
|
Irp->IoStatus.Information = 0;
|
||||||
return Result;
|
return Result;
|
||||||
@ -42,13 +46,13 @@ static NTSTATUS FspFsvrtClose(
|
|||||||
static NTSTATUS FspFsvolClose(
|
static NTSTATUS FspFsvolClose(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspClose(
|
||||||
FspClose(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -69,7 +73,8 @@ FspClose(
|
|||||||
FSP_LEAVE_MJ("FileObject=%p", IrpSp->FileObject);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ static NTSTATUS FspFsvrtCreate(
|
|||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
static NTSTATUS FspFsvolCreate(
|
static NTSTATUS FspFsvolCreate(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspCreate;
|
FSP_DRIVER_DISPATCH FspCreate;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspCreateComplete;
|
FSP_IOCOMPLETION_DISPATCH FspCreateComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
@ -26,6 +26,8 @@ FSP_IOCOMPLETION_DISPATCH FspCreateComplete;
|
|||||||
static NTSTATUS FspFsctlCreate(
|
static NTSTATUS FspFsctlCreate(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
NTSTATUS Result = STATUS_SUCCESS;
|
NTSTATUS Result = STATUS_SUCCESS;
|
||||||
Irp->IoStatus.Information = FILE_OPENED;
|
Irp->IoStatus.Information = FILE_OPENED;
|
||||||
return Result;
|
return Result;
|
||||||
@ -34,6 +36,8 @@ static NTSTATUS FspFsctlCreate(
|
|||||||
static NTSTATUS FspFsvrtCreate(
|
static NTSTATUS FspFsvrtCreate(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
NTSTATUS Result = STATUS_SUCCESS;
|
NTSTATUS Result = STATUS_SUCCESS;
|
||||||
Irp->IoStatus.Information = FILE_OPENED;
|
Irp->IoStatus.Information = FILE_OPENED;
|
||||||
return Result;
|
return Result;
|
||||||
@ -42,13 +46,13 @@ static NTSTATUS FspFsvrtCreate(
|
|||||||
static NTSTATUS FspFsvolCreate(
|
static NTSTATUS FspFsvolCreate(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspCreate(
|
||||||
FspCreate(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -85,7 +89,8 @@ FspCreate(
|
|||||||
Irp->AssociatedIrp.SystemBuffer, IrpSp->Parameters.Create.EaLength);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
static NTSTATUS FspFsvolDeviceControl(
|
static NTSTATUS FspFsvolDeviceControl(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspDeviceControl;
|
FSP_DRIVER_DISPATCH FspDeviceControl;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspDeviceControlComplete;
|
FSP_IOCOMPLETION_DISPATCH FspDeviceControlComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
@ -20,13 +20,13 @@ FSP_IOCOMPLETION_DISPATCH FspDeviceControlComplete;
|
|||||||
static NTSTATUS FspFsvolDeviceControl(
|
static NTSTATUS FspFsvolDeviceControl(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspDeviceControl(
|
||||||
FspDeviceControl(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -43,7 +43,8 @@ FspDeviceControl(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
static NTSTATUS FspFsvolDirectoryControl(
|
static NTSTATUS FspFsvolDirectoryControl(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspDirectoryControl;
|
FSP_DRIVER_DISPATCH FspDirectoryControl;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspDirectoryControlComplete;
|
FSP_IOCOMPLETION_DISPATCH FspDirectoryControlComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
@ -20,13 +20,13 @@ FSP_IOCOMPLETION_DISPATCH FspDirectoryControlComplete;
|
|||||||
static NTSTATUS FspFsvolDirectoryControl(
|
static NTSTATUS FspFsvolDirectoryControl(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspDirectoryControl(
|
||||||
FspDirectoryControl(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -43,7 +43,8 @@ FspDirectoryControl(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -156,28 +156,43 @@
|
|||||||
#pragma warning(disable:4200) /* zero-sized array in struct/union */
|
#pragma warning(disable:4200) /* zero-sized array in struct/union */
|
||||||
|
|
||||||
/* driver major functions */
|
/* driver major functions */
|
||||||
DRIVER_DISPATCH FspCleanup;
|
_Function_class_(DRIVER_DISPATCH)
|
||||||
DRIVER_DISPATCH FspClose;
|
_IRQL_requires_max_(APC_LEVEL)
|
||||||
DRIVER_DISPATCH FspCreate;
|
/* see https://msdn.microsoft.com/en-us/library/windows/hardware/ff540124(v=vs.85).aspx */
|
||||||
DRIVER_DISPATCH FspDeviceControl;
|
_IRQL_requires_same_
|
||||||
DRIVER_DISPATCH FspDirectoryControl;
|
typedef
|
||||||
DRIVER_DISPATCH FspFileSystemControl;
|
NTSTATUS
|
||||||
DRIVER_DISPATCH FspFlushBuffers;
|
FSP_DRIVER_DISPATCH(
|
||||||
DRIVER_DISPATCH FspLockControl;
|
_In_ struct _DEVICE_OBJECT *DeviceObject,
|
||||||
DRIVER_DISPATCH FspQueryEa;
|
_Inout_ struct _IRP *Irp);
|
||||||
DRIVER_DISPATCH FspQueryInformation;
|
_Dispatch_type_(IRP_MJ_CLEANUP) FSP_DRIVER_DISPATCH FspCleanup;
|
||||||
DRIVER_DISPATCH FspQuerySecurity;
|
_Dispatch_type_(IRP_MJ_CLOSE) FSP_DRIVER_DISPATCH FspClose;
|
||||||
DRIVER_DISPATCH FspQueryVolumeInformation;
|
_Dispatch_type_(IRP_MJ_CREATE) FSP_DRIVER_DISPATCH FspCreate;
|
||||||
DRIVER_DISPATCH FspRead;
|
_Dispatch_type_(IRP_MJ_DEVICE_CONTROL) FSP_DRIVER_DISPATCH FspDeviceControl;
|
||||||
DRIVER_DISPATCH FspSetEa;
|
_Dispatch_type_(IRP_MJ_DIRECTORY_CONTROL) FSP_DRIVER_DISPATCH FspDirectoryControl;
|
||||||
DRIVER_DISPATCH FspSetInformation;
|
_Dispatch_type_(IRP_MJ_FILE_SYSTEM_CONTROL) FSP_DRIVER_DISPATCH FspFileSystemControl;
|
||||||
DRIVER_DISPATCH FspSetSecurity;
|
_Dispatch_type_(IRP_MJ_FLUSH_BUFFERS) FSP_DRIVER_DISPATCH FspFlushBuffers;
|
||||||
DRIVER_DISPATCH FspSetVolumeInformation;
|
_Dispatch_type_(IRP_MJ_LOCK_CONTROL) FSP_DRIVER_DISPATCH FspLockControl;
|
||||||
DRIVER_DISPATCH FspShutdown;
|
_Dispatch_type_(IRP_MJ_QUERY_EA) FSP_DRIVER_DISPATCH FspQueryEa;
|
||||||
DRIVER_DISPATCH FspWrite;
|
_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 */
|
/* 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 FspCleanupComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspCloseComplete;
|
FSP_IOCOMPLETION_DISPATCH FspCloseComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspCreateComplete;
|
FSP_IOCOMPLETION_DISPATCH FspCreateComplete;
|
||||||
|
26
src/sys/ea.c
26
src/sys/ea.c
@ -10,8 +10,8 @@ static NTSTATUS FspFsvolQueryEa(
|
|||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
static NTSTATUS FspFsvolSetEa(
|
static NTSTATUS FspFsvolSetEa(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspQueryEa;
|
FSP_DRIVER_DISPATCH FspQueryEa;
|
||||||
DRIVER_DISPATCH FspSetEa;
|
FSP_DRIVER_DISPATCH FspSetEa;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspQueryEaComplete;
|
FSP_IOCOMPLETION_DISPATCH FspQueryEaComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspSetEaComplete;
|
FSP_IOCOMPLETION_DISPATCH FspSetEaComplete;
|
||||||
|
|
||||||
@ -27,19 +27,21 @@ FSP_IOCOMPLETION_DISPATCH FspSetEaComplete;
|
|||||||
static NTSTATUS FspFsvolQueryEa(
|
static NTSTATUS FspFsvolQueryEa(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS FspFsvolSetEa(
|
static NTSTATUS FspFsvolSetEa(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspQueryEa(
|
||||||
FspQueryEa(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -56,10 +58,8 @@ FspQueryEa(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspSetEa(
|
||||||
FspSetEa(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -76,14 +76,16 @@ FspSetEa(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
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_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
FSP_LEAVE_IOC("", 0);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ static NTSTATUS FspFsvolQueryInformation(
|
|||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
static NTSTATUS FspFsvolSetInformation(
|
static NTSTATUS FspFsvolSetInformation(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspQueryInformation;
|
FSP_DRIVER_DISPATCH FspQueryInformation;
|
||||||
DRIVER_DISPATCH FspSetInformation;
|
FSP_DRIVER_DISPATCH FspSetInformation;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspQueryInformationComplete;
|
FSP_IOCOMPLETION_DISPATCH FspQueryInformationComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspSetInformationComplete;
|
FSP_IOCOMPLETION_DISPATCH FspSetInformationComplete;
|
||||||
|
|
||||||
@ -27,19 +27,21 @@ FSP_IOCOMPLETION_DISPATCH FspSetInformationComplete;
|
|||||||
static NTSTATUS FspFsvolQueryInformation(
|
static NTSTATUS FspFsvolQueryInformation(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS FspFsvolSetInformation(
|
static NTSTATUS FspFsvolSetInformation(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspQueryInformation(
|
||||||
FspQueryInformation(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -56,10 +58,8 @@ FspQueryInformation(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspSetInformation(
|
||||||
FspSetInformation(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -76,14 +76,16 @@ FspSetInformation(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
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_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
FSP_LEAVE_IOC("", 0);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
static NTSTATUS FspFsvolFlushBuffers(
|
static NTSTATUS FspFsvolFlushBuffers(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspFlushBuffers;
|
FSP_DRIVER_DISPATCH FspFlushBuffers;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspFlushBuffersComplete;
|
FSP_IOCOMPLETION_DISPATCH FspFlushBuffersComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
@ -20,13 +20,13 @@ FSP_IOCOMPLETION_DISPATCH FspFlushBuffersComplete;
|
|||||||
static NTSTATUS FspFsvolFlushBuffers(
|
static NTSTATUS FspFsvolFlushBuffers(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspFlushBuffers(
|
||||||
FspFlushBuffers(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -43,7 +43,8 @@ FspFlushBuffers(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ static NTSTATUS FspFsvrtFileSystemControl(
|
|||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
static NTSTATUS FspFsvolFileSystemControl(
|
static NTSTATUS FspFsvolFileSystemControl(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspFileSystemControl;
|
FSP_DRIVER_DISPATCH FspFileSystemControl;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspFileSystemControlComplete;
|
FSP_IOCOMPLETION_DISPATCH FspFileSystemControlComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
@ -35,6 +35,8 @@ FSP_IOCOMPLETION_DISPATCH FspFileSystemControlComplete;
|
|||||||
static NTSTATUS FspFsctlCreateVolume(
|
static NTSTATUS FspFsctlCreateVolume(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
/* check parameters */
|
/* check parameters */
|
||||||
ULONG InputBufferLength = IrpSp->Parameters.FileSystemControl.InputBufferLength;
|
ULONG InputBufferLength = IrpSp->Parameters.FileSystemControl.InputBufferLength;
|
||||||
ULONG OutputBufferLength = IrpSp->Parameters.FileSystemControl.OutputBufferLength;
|
ULONG OutputBufferLength = IrpSp->Parameters.FileSystemControl.OutputBufferLength;
|
||||||
@ -96,6 +98,8 @@ static NTSTATUS FspFsctlCreateVolume(
|
|||||||
static NTSTATUS FspFsvrtDeleteVolume(
|
static NTSTATUS FspFsvrtDeleteVolume(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
NTSTATUS Result;
|
NTSTATUS Result;
|
||||||
FSP_FSVRT_DEVICE_EXTENSION *FsvrtDeviceExtension = FspFsvrtDeviceExtension(DeviceObject);
|
FSP_FSVRT_DEVICE_EXTENSION *FsvrtDeviceExtension = FspFsvrtDeviceExtension(DeviceObject);
|
||||||
|
|
||||||
@ -111,6 +115,8 @@ static NTSTATUS FspFsvrtDeleteVolume(
|
|||||||
static NTSTATUS FspFsvrtTransact(
|
static NTSTATUS FspFsvrtTransact(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
/* check parameters */
|
/* check parameters */
|
||||||
ULONG InputBufferLength = IrpSp->Parameters.FileSystemControl.InputBufferLength;
|
ULONG InputBufferLength = IrpSp->Parameters.FileSystemControl.InputBufferLength;
|
||||||
ULONG OutputBufferLength = IrpSp->Parameters.FileSystemControl.OutputBufferLength;
|
ULONG OutputBufferLength = IrpSp->Parameters.FileSystemControl.OutputBufferLength;
|
||||||
@ -205,6 +211,8 @@ static NTSTATUS FspFsvrtTransact(
|
|||||||
static NTSTATUS FspFsctlFileSystemControl(
|
static NTSTATUS FspFsctlFileSystemControl(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
NTSTATUS Result = STATUS_INVALID_DEVICE_REQUEST;
|
NTSTATUS Result = STATUS_INVALID_DEVICE_REQUEST;
|
||||||
switch (IrpSp->MinorFunction)
|
switch (IrpSp->MinorFunction)
|
||||||
{
|
{
|
||||||
@ -222,6 +230,8 @@ static NTSTATUS FspFsctlFileSystemControl(
|
|||||||
static NTSTATUS FspFsvrtFileSystemControl(
|
static NTSTATUS FspFsvrtFileSystemControl(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
NTSTATUS Result = STATUS_INVALID_DEVICE_REQUEST;
|
NTSTATUS Result = STATUS_INVALID_DEVICE_REQUEST;
|
||||||
switch (IrpSp->MinorFunction)
|
switch (IrpSp->MinorFunction)
|
||||||
{
|
{
|
||||||
@ -243,6 +253,8 @@ static NTSTATUS FspFsvrtFileSystemControl(
|
|||||||
static NTSTATUS FspFsvolFileSystemControl(
|
static NTSTATUS FspFsvolFileSystemControl(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
NTSTATUS Result = STATUS_INVALID_DEVICE_REQUEST;
|
NTSTATUS Result = STATUS_INVALID_DEVICE_REQUEST;
|
||||||
switch (IrpSp->MinorFunction)
|
switch (IrpSp->MinorFunction)
|
||||||
{
|
{
|
||||||
@ -256,10 +268,8 @@ static NTSTATUS FspFsvolFileSystemControl(
|
|||||||
return Result;
|
return Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspFileSystemControl(
|
||||||
FspFileSystemControl(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -285,7 +295,8 @@ FspFileSystemControl(
|
|||||||
IoctlCodeSym(IrpSp->Parameters.FileSystemControl.FsControlCode) : "");
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
static NTSTATUS FspFsvolLockControl(
|
static NTSTATUS FspFsvolLockControl(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspLockControl;
|
FSP_DRIVER_DISPATCH FspLockControl;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspLockControlComplete;
|
FSP_IOCOMPLETION_DISPATCH FspLockControlComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
@ -20,13 +20,13 @@ FSP_IOCOMPLETION_DISPATCH FspLockControlComplete;
|
|||||||
static NTSTATUS FspFsvolLockControl(
|
static NTSTATUS FspFsvolLockControl(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspLockControl(
|
||||||
FspLockControl(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -43,7 +43,8 @@ FspLockControl(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
static NTSTATUS FspFsvolRead(
|
static NTSTATUS FspFsvolRead(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspRead;
|
FSP_DRIVER_DISPATCH FspRead;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspReadComplete;
|
FSP_IOCOMPLETION_DISPATCH FspReadComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
@ -20,13 +20,13 @@ FSP_IOCOMPLETION_DISPATCH FspReadComplete;
|
|||||||
static NTSTATUS FspFsvolRead(
|
static NTSTATUS FspFsvolRead(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspRead(
|
||||||
FspRead(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -43,7 +43,8 @@ FspRead(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ static NTSTATUS FspFsvolQuerySecurity(
|
|||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
static NTSTATUS FspFsvolSetSecurity(
|
static NTSTATUS FspFsvolSetSecurity(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspQuerySecurity;
|
FSP_DRIVER_DISPATCH FspQuerySecurity;
|
||||||
DRIVER_DISPATCH FspSetSecurity;
|
FSP_DRIVER_DISPATCH FspSetSecurity;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspQuerySecurityComplete;
|
FSP_IOCOMPLETION_DISPATCH FspQuerySecurityComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspSetSecurityComplete;
|
FSP_IOCOMPLETION_DISPATCH FspSetSecurityComplete;
|
||||||
|
|
||||||
@ -27,19 +27,21 @@ FSP_IOCOMPLETION_DISPATCH FspSetSecurityComplete;
|
|||||||
static NTSTATUS FspFsvolQuerySecurity(
|
static NTSTATUS FspFsvolQuerySecurity(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS FspFsvolSetSecurity(
|
static NTSTATUS FspFsvolSetSecurity(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspQuerySecurity(
|
||||||
FspQuerySecurity(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -56,10 +58,8 @@ FspQuerySecurity(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspSetSecurity(
|
||||||
FspSetSecurity(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -76,14 +76,16 @@ FspSetSecurity(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
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_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
FSP_LEAVE_IOC("", 0);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
static NTSTATUS FspFsvolShutdown(
|
static NTSTATUS FspFsvolShutdown(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspShutdown;
|
FSP_DRIVER_DISPATCH FspShutdown;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspShutdownComplete;
|
FSP_IOCOMPLETION_DISPATCH FspShutdownComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
@ -20,13 +20,13 @@ FSP_IOCOMPLETION_DISPATCH FspShutdownComplete;
|
|||||||
static NTSTATUS FspFsvolShutdown(
|
static NTSTATUS FspFsvolShutdown(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspShutdown(
|
||||||
FspShutdown(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -43,7 +43,8 @@ FspShutdown(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ static NTSTATUS FspFsvolQueryVolumeInformation(
|
|||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
static NTSTATUS FspFsvolSetVolumeInformation(
|
static NTSTATUS FspFsvolSetVolumeInformation(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
DRIVER_DISPATCH FspQueryVolumeInformation;
|
FSP_DRIVER_DISPATCH FspQueryVolumeInformation;
|
||||||
DRIVER_DISPATCH FspSetVolumeInformation;
|
FSP_DRIVER_DISPATCH FspSetVolumeInformation;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspQueryVolumeInformationComplete;
|
FSP_IOCOMPLETION_DISPATCH FspQueryVolumeInformationComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspSetVolumeInformationComplete;
|
FSP_IOCOMPLETION_DISPATCH FspSetVolumeInformationComplete;
|
||||||
|
|
||||||
@ -27,19 +27,21 @@ FSP_IOCOMPLETION_DISPATCH FspSetVolumeInformationComplete;
|
|||||||
static NTSTATUS FspFsvolQueryVolumeInformation(
|
static NTSTATUS FspFsvolQueryVolumeInformation(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS FspFsvolSetVolumeInformation(
|
static NTSTATUS FspFsvolSetVolumeInformation(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspQueryVolumeInformation(
|
||||||
FspQueryVolumeInformation(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -56,10 +58,8 @@ FspQueryVolumeInformation(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
FSP_LEAVE_MJ("", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspSetVolumeInformation(
|
||||||
FspSetVolumeInformation(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -76,14 +76,16 @@ FspSetVolumeInformation(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
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_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
FSP_LEAVE_IOC("", 0);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
static NTSTATUS FspFsvolWrite(
|
static NTSTATUS FspFsvolWrite(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
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);
|
VOID FspWriteComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response);
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
@ -20,13 +20,13 @@ VOID FspWriteComplete(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response);
|
|||||||
static NTSTATUS FspFsvolWrite(
|
static NTSTATUS FspFsvolWrite(
|
||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp)
|
||||||
{
|
{
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS FspWrite(
|
||||||
FspWrite(
|
PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||||
_In_ PDEVICE_OBJECT DeviceObject,
|
|
||||||
_In_ PIRP Irp)
|
|
||||||
{
|
{
|
||||||
FSP_ENTER_MJ(PAGED_CODE());
|
FSP_ENTER_MJ(PAGED_CODE());
|
||||||
|
|
||||||
@ -43,7 +43,8 @@ FspWrite(
|
|||||||
FSP_LEAVE_MJ("", 0);
|
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());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user