This commit is contained in:
Bill Zissimopoulos 2015-11-27 23:37:57 -08:00
parent 0db1f0614b
commit 97c98ac265
19 changed files with 68 additions and 74 deletions

View File

@ -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" />

View File

@ -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>

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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 };

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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];

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)