mirror of
https://github.com/winfsp/winfsp.git
synced 2025-06-07 20:42:09 -05:00
sys: WIP
This commit is contained in:
parent
0db1f0614b
commit
97c98ac265
@ -146,7 +146,7 @@
|
|||||||
<ClCompile Include="..\..\src\sys\fileinfo.c" />
|
<ClCompile Include="..\..\src\sys\fileinfo.c" />
|
||||||
<ClCompile Include="..\..\src\sys\flush.c" />
|
<ClCompile Include="..\..\src\sys\flush.c" />
|
||||||
<ClCompile Include="..\..\src\sys\fsctl.c" />
|
<ClCompile Include="..\..\src\sys\fsctl.c" />
|
||||||
<ClCompile Include="..\..\src\sys\ioc.c" />
|
<ClCompile Include="..\..\src\sys\iop.c" />
|
||||||
<ClCompile Include="..\..\src\sys\ioq.c" />
|
<ClCompile Include="..\..\src\sys\ioq.c" />
|
||||||
<ClCompile Include="..\..\src\sys\lockctl.c" />
|
<ClCompile Include="..\..\src\sys\lockctl.c" />
|
||||||
<ClCompile Include="..\..\src\sys\misc.c" />
|
<ClCompile Include="..\..\src\sys\misc.c" />
|
||||||
|
@ -77,7 +77,7 @@
|
|||||||
<ClCompile Include="..\..\src\sys\ioq.c">
|
<ClCompile Include="..\..\src\sys\ioq.c">
|
||||||
<Filter>Source</Filter>
|
<Filter>Source</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\sys\ioc.c">
|
<ClCompile Include="..\..\src\sys\iop.c">
|
||||||
<Filter>Source</Filter>
|
<Filter>Source</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -13,7 +13,7 @@ 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);
|
||||||
FSP_DRIVER_DISPATCH FspCleanup;
|
FSP_DRIVER_DISPATCH FspCleanup;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspCleanupComplete;
|
FSP_IOPROC_DISPATCH FspCleanupComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsctlCleanup)
|
#pragma alloc_text(PAGE, FspFsctlCleanup)
|
||||||
|
@ -13,7 +13,7 @@ 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);
|
||||||
FSP_DRIVER_DISPATCH FspClose;
|
FSP_DRIVER_DISPATCH FspClose;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspCloseComplete;
|
FSP_IOPROC_DISPATCH FspCloseComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsctlClose)
|
#pragma alloc_text(PAGE, FspFsctlClose)
|
||||||
|
@ -13,7 +13,7 @@ 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);
|
||||||
FSP_DRIVER_DISPATCH FspCreate;
|
FSP_DRIVER_DISPATCH FspCreate;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspCreateComplete;
|
FSP_IOPROC_DISPATCH FspCreateComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsctlCreate)
|
#pragma alloc_text(PAGE, FspFsctlCreate)
|
||||||
|
@ -9,7 +9,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);
|
||||||
FSP_DRIVER_DISPATCH FspDeviceControl;
|
FSP_DRIVER_DISPATCH FspDeviceControl;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspDeviceControlComplete;
|
FSP_IOPROC_DISPATCH FspDeviceControlComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsvolDeviceControl)
|
#pragma alloc_text(PAGE, FspFsvolDeviceControl)
|
||||||
|
@ -9,7 +9,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);
|
||||||
FSP_DRIVER_DISPATCH FspDirectoryControl;
|
FSP_DRIVER_DISPATCH FspDirectoryControl;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspDirectoryControlComplete;
|
FSP_IOPROC_DISPATCH FspDirectoryControlComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsvolDirectoryControl)
|
#pragma alloc_text(PAGE, FspFsvolDirectoryControl)
|
||||||
|
@ -67,25 +67,25 @@ DriverEntry(
|
|||||||
DriverObject->MajorFunction[IRP_MJ_SET_SECURITY] = FspSetSecurity;
|
DriverObject->MajorFunction[IRP_MJ_SET_SECURITY] = FspSetSecurity;
|
||||||
|
|
||||||
/* setup the I/O completion functions */
|
/* setup the I/O completion functions */
|
||||||
FspIoCompletionFunction[IRP_MJ_CREATE] = FspCreateComplete;
|
FspIoProcessFunction[IRP_MJ_CREATE] = FspCreateComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_CLOSE] = FspCloseComplete;
|
FspIoProcessFunction[IRP_MJ_CLOSE] = FspCloseComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_READ] = FspReadComplete;
|
FspIoProcessFunction[IRP_MJ_READ] = FspReadComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_WRITE] = FspWriteComplete;
|
FspIoProcessFunction[IRP_MJ_WRITE] = FspWriteComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_QUERY_INFORMATION] = FspQueryInformationComplete;
|
FspIoProcessFunction[IRP_MJ_QUERY_INFORMATION] = FspQueryInformationComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_SET_INFORMATION] = FspSetInformationComplete;
|
FspIoProcessFunction[IRP_MJ_SET_INFORMATION] = FspSetInformationComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_QUERY_EA] = FspQueryEaComplete;
|
FspIoProcessFunction[IRP_MJ_QUERY_EA] = FspQueryEaComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_SET_EA] = FspSetEaComplete;
|
FspIoProcessFunction[IRP_MJ_SET_EA] = FspSetEaComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_FLUSH_BUFFERS] = FspFlushBuffersComplete;
|
FspIoProcessFunction[IRP_MJ_FLUSH_BUFFERS] = FspFlushBuffersComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = FspQueryVolumeInformationComplete;
|
FspIoProcessFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = FspQueryVolumeInformationComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_SET_VOLUME_INFORMATION] = FspSetVolumeInformationComplete;
|
FspIoProcessFunction[IRP_MJ_SET_VOLUME_INFORMATION] = FspSetVolumeInformationComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_DIRECTORY_CONTROL] = FspDirectoryControlComplete;
|
FspIoProcessFunction[IRP_MJ_DIRECTORY_CONTROL] = FspDirectoryControlComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = FspFileSystemControlComplete;
|
FspIoProcessFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = FspFileSystemControlComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_DEVICE_CONTROL] = FspDeviceControlComplete;
|
FspIoProcessFunction[IRP_MJ_DEVICE_CONTROL] = FspDeviceControlComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_SHUTDOWN] = FspShutdownComplete;
|
FspIoProcessFunction[IRP_MJ_SHUTDOWN] = FspShutdownComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_LOCK_CONTROL] = FspLockControlComplete;
|
FspIoProcessFunction[IRP_MJ_LOCK_CONTROL] = FspLockControlComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_CLEANUP] = FspCleanupComplete;
|
FspIoProcessFunction[IRP_MJ_CLEANUP] = FspCleanupComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_QUERY_SECURITY] = FspQuerySecurityComplete;
|
FspIoProcessFunction[IRP_MJ_QUERY_SECURITY] = FspQuerySecurityComplete;
|
||||||
FspIoCompletionFunction[IRP_MJ_SET_SECURITY] = FspSetSecurityComplete;
|
FspIoProcessFunction[IRP_MJ_SET_SECURITY] = FspSetSecurityComplete;
|
||||||
|
|
||||||
/* setup fast I/O and resource acquisition */
|
/* setup fast I/O and resource acquisition */
|
||||||
static FAST_IO_DISPATCH FspFastIoDispatch = { 0 };
|
static FAST_IO_DISPATCH FspFastIoDispatch = { 0 };
|
||||||
|
@ -160,11 +160,8 @@ _Function_class_(DRIVER_DISPATCH)
|
|||||||
_IRQL_requires_max_(APC_LEVEL)
|
_IRQL_requires_max_(APC_LEVEL)
|
||||||
/* see https://msdn.microsoft.com/en-us/library/windows/hardware/ff540124(v=vs.85).aspx */
|
/* see https://msdn.microsoft.com/en-us/library/windows/hardware/ff540124(v=vs.85).aspx */
|
||||||
_IRQL_requires_same_
|
_IRQL_requires_same_
|
||||||
typedef
|
typedef NTSTATUS FSP_DRIVER_DISPATCH(
|
||||||
NTSTATUS
|
_In_ struct _DEVICE_OBJECT *DeviceObject, _Inout_ struct _IRP *Irp);
|
||||||
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_CLEANUP) FSP_DRIVER_DISPATCH FspCleanup;
|
||||||
_Dispatch_type_(IRP_MJ_CLOSE) FSP_DRIVER_DISPATCH FspClose;
|
_Dispatch_type_(IRP_MJ_CLOSE) FSP_DRIVER_DISPATCH FspClose;
|
||||||
_Dispatch_type_(IRP_MJ_CREATE) FSP_DRIVER_DISPATCH FspCreate;
|
_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 */
|
/* I/O completion functions */
|
||||||
_IRQL_requires_max_(APC_LEVEL)
|
_IRQL_requires_max_(APC_LEVEL)
|
||||||
_IRQL_requires_same_
|
_IRQL_requires_same_
|
||||||
typedef
|
typedef VOID FSP_IOPROC_DISPATCH(
|
||||||
VOID
|
_Inout_ PIRP Irp, _In_ FSP_FSCTL_TRANSACT_RSP *Response);
|
||||||
FSP_IOCOMPLETION_DISPATCH(
|
FSP_IOPROC_DISPATCH FspCleanupComplete;
|
||||||
_Inout_ PIRP Irp,
|
FSP_IOPROC_DISPATCH FspCloseComplete;
|
||||||
_In_ FSP_FSCTL_TRANSACT_RSP *Response);
|
FSP_IOPROC_DISPATCH FspCreateComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspCleanupComplete;
|
FSP_IOPROC_DISPATCH FspDeviceControlComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspCloseComplete;
|
FSP_IOPROC_DISPATCH FspDirectoryControlComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspCreateComplete;
|
FSP_IOPROC_DISPATCH FspFileSystemControlComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspDeviceControlComplete;
|
FSP_IOPROC_DISPATCH FspFlushBuffersComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspDirectoryControlComplete;
|
FSP_IOPROC_DISPATCH FspLockControlComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspFileSystemControlComplete;
|
FSP_IOPROC_DISPATCH FspQueryEaComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspFlushBuffersComplete;
|
FSP_IOPROC_DISPATCH FspQueryInformationComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspLockControlComplete;
|
FSP_IOPROC_DISPATCH FspQuerySecurityComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspQueryEaComplete;
|
FSP_IOPROC_DISPATCH FspQueryVolumeInformationComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspQueryInformationComplete;
|
FSP_IOPROC_DISPATCH FspReadComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspQuerySecurityComplete;
|
FSP_IOPROC_DISPATCH FspSetEaComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspQueryVolumeInformationComplete;
|
FSP_IOPROC_DISPATCH FspSetInformationComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspReadComplete;
|
FSP_IOPROC_DISPATCH FspSetSecurityComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspSetEaComplete;
|
FSP_IOPROC_DISPATCH FspSetVolumeInformationComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspSetInformationComplete;
|
FSP_IOPROC_DISPATCH FspShutdownComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspSetSecurityComplete;
|
FSP_IOPROC_DISPATCH FspWriteComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspSetVolumeInformationComplete;
|
|
||||||
FSP_IOCOMPLETION_DISPATCH FspShutdownComplete;
|
|
||||||
FSP_IOCOMPLETION_DISPATCH FspWriteComplete;
|
|
||||||
|
|
||||||
/* fast I/O */
|
/* fast I/O */
|
||||||
FAST_IO_CHECK_IF_POSSIBLE FspFastIoCheckIfPossible;
|
FAST_IO_CHECK_IF_POSSIBLE FspFastIoCheckIfPossible;
|
||||||
@ -310,6 +304,6 @@ const char *IoctlCodeSym(ULONG ControlCode);
|
|||||||
/* extern */
|
/* extern */
|
||||||
extern PDEVICE_OBJECT FspFsctlDiskDeviceObject;
|
extern PDEVICE_OBJECT FspFsctlDiskDeviceObject;
|
||||||
extern PDEVICE_OBJECT FspFsctlNetDeviceObject;
|
extern PDEVICE_OBJECT FspFsctlNetDeviceObject;
|
||||||
extern FSP_IOCOMPLETION_DISPATCH *FspIoCompletionFunction[];
|
extern FSP_IOPROC_DISPATCH *FspIoProcessFunction[];
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -12,8 +12,8 @@ static NTSTATUS FspFsvolSetEa(
|
|||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
FSP_DRIVER_DISPATCH FspQueryEa;
|
FSP_DRIVER_DISPATCH FspQueryEa;
|
||||||
FSP_DRIVER_DISPATCH FspSetEa;
|
FSP_DRIVER_DISPATCH FspSetEa;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspQueryEaComplete;
|
FSP_IOPROC_DISPATCH FspQueryEaComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspSetEaComplete;
|
FSP_IOPROC_DISPATCH FspSetEaComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsvolQueryEa)
|
#pragma alloc_text(PAGE, FspFsvolQueryEa)
|
||||||
|
@ -12,8 +12,8 @@ static NTSTATUS FspFsvolSetInformation(
|
|||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
FSP_DRIVER_DISPATCH FspQueryInformation;
|
FSP_DRIVER_DISPATCH FspQueryInformation;
|
||||||
FSP_DRIVER_DISPATCH FspSetInformation;
|
FSP_DRIVER_DISPATCH FspSetInformation;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspQueryInformationComplete;
|
FSP_IOPROC_DISPATCH FspQueryInformationComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspSetInformationComplete;
|
FSP_IOPROC_DISPATCH FspSetInformationComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsvolQueryInformation)
|
#pragma alloc_text(PAGE, FspFsvolQueryInformation)
|
||||||
|
@ -9,7 +9,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);
|
||||||
FSP_DRIVER_DISPATCH FspFlushBuffers;
|
FSP_DRIVER_DISPATCH FspFlushBuffers;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspFlushBuffersComplete;
|
FSP_IOPROC_DISPATCH FspFlushBuffersComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsvolFlushBuffers)
|
#pragma alloc_text(PAGE, FspFsvolFlushBuffers)
|
||||||
|
@ -19,7 +19,7 @@ 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);
|
||||||
FSP_DRIVER_DISPATCH FspFileSystemControl;
|
FSP_DRIVER_DISPATCH FspFileSystemControl;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspFileSystemControlComplete;
|
FSP_IOPROC_DISPATCH FspFileSystemControlComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsctlCreateVolume)
|
#pragma alloc_text(PAGE, FspFsctlCreateVolume)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* @file sys/ioc.c
|
* @file sys/iop.c
|
||||||
*
|
*
|
||||||
* @copyright 2015 Bill Zissimopoulos
|
* @copyright 2015 Bill Zissimopoulos
|
||||||
*/
|
*/
|
||||||
@ -37,9 +37,9 @@ VOID FspDispatchProcessedIrp(PIRP Irp, FSP_FSCTL_TRANSACT_RSP *Response)
|
|||||||
PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp);
|
PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp);
|
||||||
|
|
||||||
ASSERT(IRP_MJ_MAXIMUM_FUNCTION >= IrpSp->MajorFunction);
|
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];
|
@ -9,7 +9,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);
|
||||||
FSP_DRIVER_DISPATCH FspLockControl;
|
FSP_DRIVER_DISPATCH FspLockControl;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspLockControlComplete;
|
FSP_IOPROC_DISPATCH FspLockControlComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsvolLockControl)
|
#pragma alloc_text(PAGE, FspFsvolLockControl)
|
||||||
|
@ -9,7 +9,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);
|
||||||
FSP_DRIVER_DISPATCH FspRead;
|
FSP_DRIVER_DISPATCH FspRead;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspReadComplete;
|
FSP_IOPROC_DISPATCH FspReadComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsvolRead)
|
#pragma alloc_text(PAGE, FspFsvolRead)
|
||||||
|
@ -12,8 +12,8 @@ static NTSTATUS FspFsvolSetSecurity(
|
|||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
FSP_DRIVER_DISPATCH FspQuerySecurity;
|
FSP_DRIVER_DISPATCH FspQuerySecurity;
|
||||||
FSP_DRIVER_DISPATCH FspSetSecurity;
|
FSP_DRIVER_DISPATCH FspSetSecurity;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspQuerySecurityComplete;
|
FSP_IOPROC_DISPATCH FspQuerySecurityComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspSetSecurityComplete;
|
FSP_IOPROC_DISPATCH FspSetSecurityComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsvolQuerySecurity)
|
#pragma alloc_text(PAGE, FspFsvolQuerySecurity)
|
||||||
|
@ -9,7 +9,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);
|
||||||
FSP_DRIVER_DISPATCH FspShutdown;
|
FSP_DRIVER_DISPATCH FspShutdown;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspShutdownComplete;
|
FSP_IOPROC_DISPATCH FspShutdownComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsvolShutdown)
|
#pragma alloc_text(PAGE, FspFsvolShutdown)
|
||||||
|
@ -12,8 +12,8 @@ static NTSTATUS FspFsvolSetVolumeInformation(
|
|||||||
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp);
|
||||||
FSP_DRIVER_DISPATCH FspQueryVolumeInformation;
|
FSP_DRIVER_DISPATCH FspQueryVolumeInformation;
|
||||||
FSP_DRIVER_DISPATCH FspSetVolumeInformation;
|
FSP_DRIVER_DISPATCH FspSetVolumeInformation;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspQueryVolumeInformationComplete;
|
FSP_IOPROC_DISPATCH FspQueryVolumeInformationComplete;
|
||||||
FSP_IOCOMPLETION_DISPATCH FspSetVolumeInformationComplete;
|
FSP_IOPROC_DISPATCH FspSetVolumeInformationComplete;
|
||||||
|
|
||||||
#ifdef ALLOC_PRAGMA
|
#ifdef ALLOC_PRAGMA
|
||||||
#pragma alloc_text(PAGE, FspFsvolQueryVolumeInformation)
|
#pragma alloc_text(PAGE, FspFsvolQueryVolumeInformation)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user