This commit is contained in:
Bill Zissimopoulos 2015-11-28 13:17:46 -08:00
parent 7ab5998c49
commit 2668e05748
19 changed files with 81 additions and 82 deletions

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_IOPROC_DISPATCH FspCleanupComplete; FSP_IOCMPL_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_IOPROC_DISPATCH FspCloseComplete; FSP_IOCMPL_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_IOPROC_DISPATCH FspCreateComplete; FSP_IOCMPL_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_IOPROC_DISPATCH FspDeviceControlComplete; FSP_IOCMPL_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_IOPROC_DISPATCH FspDirectoryControlComplete; FSP_IOCMPL_DISPATCH FspDirectoryControlComplete;
#ifdef ALLOC_PRAGMA #ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsvolDirectoryControl) #pragma alloc_text(PAGE, FspFsvolDirectoryControl)

View File

@ -65,25 +65,25 @@ NTSTATUS 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 */
FspIoProcessFunction[IRP_MJ_CREATE] = FspCreateComplete; FspIopCompleteFunction[IRP_MJ_CREATE] = FspCreateComplete;
FspIoProcessFunction[IRP_MJ_CLOSE] = FspCloseComplete; FspIopCompleteFunction[IRP_MJ_CLOSE] = FspCloseComplete;
FspIoProcessFunction[IRP_MJ_READ] = FspReadComplete; FspIopCompleteFunction[IRP_MJ_READ] = FspReadComplete;
FspIoProcessFunction[IRP_MJ_WRITE] = FspWriteComplete; FspIopCompleteFunction[IRP_MJ_WRITE] = FspWriteComplete;
FspIoProcessFunction[IRP_MJ_QUERY_INFORMATION] = FspQueryInformationComplete; FspIopCompleteFunction[IRP_MJ_QUERY_INFORMATION] = FspQueryInformationComplete;
FspIoProcessFunction[IRP_MJ_SET_INFORMATION] = FspSetInformationComplete; FspIopCompleteFunction[IRP_MJ_SET_INFORMATION] = FspSetInformationComplete;
FspIoProcessFunction[IRP_MJ_QUERY_EA] = FspQueryEaComplete; FspIopCompleteFunction[IRP_MJ_QUERY_EA] = FspQueryEaComplete;
FspIoProcessFunction[IRP_MJ_SET_EA] = FspSetEaComplete; FspIopCompleteFunction[IRP_MJ_SET_EA] = FspSetEaComplete;
FspIoProcessFunction[IRP_MJ_FLUSH_BUFFERS] = FspFlushBuffersComplete; FspIopCompleteFunction[IRP_MJ_FLUSH_BUFFERS] = FspFlushBuffersComplete;
FspIoProcessFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = FspQueryVolumeInformationComplete; FspIopCompleteFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = FspQueryVolumeInformationComplete;
FspIoProcessFunction[IRP_MJ_SET_VOLUME_INFORMATION] = FspSetVolumeInformationComplete; FspIopCompleteFunction[IRP_MJ_SET_VOLUME_INFORMATION] = FspSetVolumeInformationComplete;
FspIoProcessFunction[IRP_MJ_DIRECTORY_CONTROL] = FspDirectoryControlComplete; FspIopCompleteFunction[IRP_MJ_DIRECTORY_CONTROL] = FspDirectoryControlComplete;
FspIoProcessFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = FspFileSystemControlComplete; FspIopCompleteFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = FspFileSystemControlComplete;
FspIoProcessFunction[IRP_MJ_DEVICE_CONTROL] = FspDeviceControlComplete; FspIopCompleteFunction[IRP_MJ_DEVICE_CONTROL] = FspDeviceControlComplete;
FspIoProcessFunction[IRP_MJ_SHUTDOWN] = FspShutdownComplete; FspIopCompleteFunction[IRP_MJ_SHUTDOWN] = FspShutdownComplete;
FspIoProcessFunction[IRP_MJ_LOCK_CONTROL] = FspLockControlComplete; FspIopCompleteFunction[IRP_MJ_LOCK_CONTROL] = FspLockControlComplete;
FspIoProcessFunction[IRP_MJ_CLEANUP] = FspCleanupComplete; FspIopCompleteFunction[IRP_MJ_CLEANUP] = FspCleanupComplete;
FspIoProcessFunction[IRP_MJ_QUERY_SECURITY] = FspQuerySecurityComplete; FspIopCompleteFunction[IRP_MJ_QUERY_SECURITY] = FspQuerySecurityComplete;
FspIoProcessFunction[IRP_MJ_SET_SECURITY] = FspSetSecurityComplete; FspIopCompleteFunction[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

@ -107,12 +107,12 @@
{ \ { \
/* this can only happen if the Ioq was stopped */\ /* this can only happen if the Ioq was stopped */\
ASSERT(FspIoqStopped(&FsvrtDeviceExtension->Ioq));\ ASSERT(FspIoqStopped(&FsvrtDeviceExtension->Ioq));\
FspCompleteRequest(Irp, STATUS_ACCESS_DENIED);\ FspIopCompleteRequest(Irp, STATUS_ACCESS_DENIED);\
} \ } \
} \ } \
} \ } \
else \ else \
FspCompleteRequest(Irp, Result);\ FspIopCompleteRequest(Irp, Result);\
); \ ); \
return Result return Result
#define FSP_ENTER_IOC(...) \ #define FSP_ENTER_IOC(...) \
@ -130,7 +130,7 @@
__VA_ARGS__, \ __VA_ARGS__, \
NtStatusSym(Result), \ NtStatusSym(Result), \
(LONGLONG)Irp->IoStatus.Information);\ (LONGLONG)Irp->IoStatus.Information);\
FspCompleteRequest(Irp, Result);\ FspIopCompleteRequest(Irp, Result);\
) )
#define FSP_ENTER_BOOL(...) \ #define FSP_ENTER_BOOL(...) \
BOOLEAN Result = TRUE; FSP_ENTER_(__VA_ARGS__) BOOLEAN Result = TRUE; FSP_ENTER_(__VA_ARGS__)
@ -185,27 +185,27 @@ _Dispatch_type_(IRP_MJ_WRITE) FSP_DRIVER_DISPATCH FspWrite;
/* I/O process functions */ /* I/O process functions */
_IRQL_requires_max_(APC_LEVEL) _IRQL_requires_max_(APC_LEVEL)
_IRQL_requires_same_ _IRQL_requires_same_
typedef VOID FSP_IOPROC_DISPATCH( typedef VOID FSP_IOCMPL_DISPATCH(
_Inout_ PIRP Irp, _In_ const FSP_FSCTL_TRANSACT_RSP *Response); _Inout_ PIRP Irp, _In_ const FSP_FSCTL_TRANSACT_RSP *Response);
FSP_IOPROC_DISPATCH FspCleanupComplete; FSP_IOCMPL_DISPATCH FspCleanupComplete;
FSP_IOPROC_DISPATCH FspCloseComplete; FSP_IOCMPL_DISPATCH FspCloseComplete;
FSP_IOPROC_DISPATCH FspCreateComplete; FSP_IOCMPL_DISPATCH FspCreateComplete;
FSP_IOPROC_DISPATCH FspDeviceControlComplete; FSP_IOCMPL_DISPATCH FspDeviceControlComplete;
FSP_IOPROC_DISPATCH FspDirectoryControlComplete; FSP_IOCMPL_DISPATCH FspDirectoryControlComplete;
FSP_IOPROC_DISPATCH FspFileSystemControlComplete; FSP_IOCMPL_DISPATCH FspFileSystemControlComplete;
FSP_IOPROC_DISPATCH FspFlushBuffersComplete; FSP_IOCMPL_DISPATCH FspFlushBuffersComplete;
FSP_IOPROC_DISPATCH FspLockControlComplete; FSP_IOCMPL_DISPATCH FspLockControlComplete;
FSP_IOPROC_DISPATCH FspQueryEaComplete; FSP_IOCMPL_DISPATCH FspQueryEaComplete;
FSP_IOPROC_DISPATCH FspQueryInformationComplete; FSP_IOCMPL_DISPATCH FspQueryInformationComplete;
FSP_IOPROC_DISPATCH FspQuerySecurityComplete; FSP_IOCMPL_DISPATCH FspQuerySecurityComplete;
FSP_IOPROC_DISPATCH FspQueryVolumeInformationComplete; FSP_IOCMPL_DISPATCH FspQueryVolumeInformationComplete;
FSP_IOPROC_DISPATCH FspReadComplete; FSP_IOCMPL_DISPATCH FspReadComplete;
FSP_IOPROC_DISPATCH FspSetEaComplete; FSP_IOCMPL_DISPATCH FspSetEaComplete;
FSP_IOPROC_DISPATCH FspSetInformationComplete; FSP_IOCMPL_DISPATCH FspSetInformationComplete;
FSP_IOPROC_DISPATCH FspSetSecurityComplete; FSP_IOCMPL_DISPATCH FspSetSecurityComplete;
FSP_IOPROC_DISPATCH FspSetVolumeInformationComplete; FSP_IOCMPL_DISPATCH FspSetVolumeInformationComplete;
FSP_IOPROC_DISPATCH FspShutdownComplete; FSP_IOCMPL_DISPATCH FspShutdownComplete;
FSP_IOPROC_DISPATCH FspWriteComplete; FSP_IOCMPL_DISPATCH FspWriteComplete;
/* fast I/O */ /* fast I/O */
FAST_IO_CHECK_IF_POSSIBLE FspFastIoCheckIfPossible; FAST_IO_CHECK_IF_POSSIBLE FspFastIoCheckIfPossible;
@ -282,12 +282,11 @@ FSP_FSVOL_DEVICE_EXTENSION *FspFsvolDeviceExtension(PDEVICE_OBJECT DeviceObject)
return DeviceObject->DeviceExtension; return DeviceObject->DeviceExtension;
} }
/* I/O completion */ /* I/O processing */
VOID FspCompleteRequest(PIRP Irp, NTSTATUS Result); VOID FspIopCompleteRequest(PIRP Irp, NTSTATUS Result);
VOID FspDispatchProcessedIrp(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response); VOID FspIopDispatchComplete(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response);
/* misc */ /* misc */
VOID FspCompleteRequest(PIRP Irp, NTSTATUS Result);
NTSTATUS FspCreateGuid(GUID *Guid); NTSTATUS FspCreateGuid(GUID *Guid);
NTSTATUS FspSecuritySubjectContextAccessCheck( NTSTATUS FspSecuritySubjectContextAccessCheck(
PSECURITY_DESCRIPTOR SecurityDescriptor, ACCESS_MASK DesiredAccess, KPROCESSOR_MODE AccessMode); PSECURITY_DESCRIPTOR SecurityDescriptor, ACCESS_MASK DesiredAccess, KPROCESSOR_MODE AccessMode);
@ -304,6 +303,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_IOPROC_DISPATCH *FspIoProcessFunction[]; extern FSP_IOCMPL_DISPATCH *FspIopCompleteFunction[];
#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_IOPROC_DISPATCH FspQueryEaComplete; FSP_IOCMPL_DISPATCH FspQueryEaComplete;
FSP_IOPROC_DISPATCH FspSetEaComplete; FSP_IOCMPL_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_IOPROC_DISPATCH FspQueryInformationComplete; FSP_IOCMPL_DISPATCH FspQueryInformationComplete;
FSP_IOPROC_DISPATCH FspSetInformationComplete; FSP_IOCMPL_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_IOPROC_DISPATCH FspFlushBuffersComplete; FSP_IOCMPL_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_IOPROC_DISPATCH FspFileSystemControlComplete; FSP_IOCMPL_DISPATCH FspFileSystemControlComplete;
#ifdef ALLOC_PRAGMA #ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsctlCreateVolume) #pragma alloc_text(PAGE, FspFsctlCreateVolume)
@ -153,7 +153,7 @@ static NTSTATUS FspFsvrtTransact(
/* either IRP was canceled or a bogus Hint was provided */ /* either IRP was canceled or a bogus Hint was provided */
continue; continue;
FspDispatchProcessedIrp(ProcessIrp, Response); FspIopDispatchComplete(ProcessIrp, Response);
Response = NextResponse; Response = NextResponse;
} }
@ -190,7 +190,7 @@ static NTSTATUS FspFsvrtTransact(
* also cancel the PendingIrp we have in our hands. * also cancel the PendingIrp we have in our hands.
*/ */
ASSERT(FspIoqStopped(&FsvrtDeviceExtension->Ioq)); ASSERT(FspIoqStopped(&FsvrtDeviceExtension->Ioq));
FspCompleteRequest(PendingIrp, STATUS_CANCELLED); FspIopCompleteRequest(PendingIrp, STATUS_CANCELLED);
return STATUS_CANCELLED; return STATUS_CANCELLED;
} }

View File

@ -6,13 +6,13 @@
#include <sys/driver.h> #include <sys/driver.h>
VOID FspDispatchProcessedIrp(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response); VOID FspIopDispatchComplete(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response);
#ifdef ALLOC_PRAGMA #ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspDispatchProcessedIrp) #pragma alloc_text(PAGE, FspIopDispatchComplete)
#endif #endif
VOID FspCompleteRequest(PIRP Irp, NTSTATUS Result) VOID FspIopCompleteRequest(PIRP Irp, NTSTATUS Result)
{ {
// !PAGED_CODE(); // !PAGED_CODE();
@ -30,16 +30,16 @@ VOID FspCompleteRequest(PIRP Irp, NTSTATUS Result)
IoCompleteRequest(Irp, FSP_IO_INCREMENT); IoCompleteRequest(Irp, FSP_IO_INCREMENT);
} }
VOID FspDispatchProcessedIrp(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response) VOID FspIopDispatchComplete(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response)
{ {
PAGED_CODE(); PAGED_CODE();
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 != FspIoProcessFunction[IrpSp->MajorFunction]); ASSERT(0 != FspIopCompleteFunction[IrpSp->MajorFunction]);
FspIoProcessFunction[IrpSp->MajorFunction](Irp, Response); FspIopCompleteFunction[IrpSp->MajorFunction](Irp, Response);
} }
FSP_IOPROC_DISPATCH *FspIoProcessFunction[IRP_MJ_MAXIMUM_FUNCTION + 1]; FSP_IOCMPL_DISPATCH *FspIopCompleteFunction[IRP_MJ_MAXIMUM_FUNCTION + 1];

View File

@ -100,7 +100,7 @@ static VOID FspIoqPendingReleaseLock(PIO_CSQ IoCsq, _IRQL_restores_ KIRQL Irql)
static VOID FspIoqPendingCompleteCanceledIrp(PIO_CSQ IoCsq, PIRP Irp) static VOID FspIoqPendingCompleteCanceledIrp(PIO_CSQ IoCsq, PIRP Irp)
{ {
FspCompleteRequest(Irp, STATUS_CANCELLED); FspIopCompleteRequest(Irp, STATUS_CANCELLED);
} }
static NTSTATUS FspIoqProcessInsertIrpEx(PIO_CSQ IoCsq, PIRP Irp, PVOID InsertContext) static NTSTATUS FspIoqProcessInsertIrpEx(PIO_CSQ IoCsq, PIRP Irp, PVOID InsertContext)
@ -151,7 +151,7 @@ static VOID FspIoqProcessReleaseLock(PIO_CSQ IoCsq, _IRQL_restores_ KIRQL Irql)
static VOID FspIoqProcessCompleteCanceledIrp(PIO_CSQ IoCsq, PIRP Irp) static VOID FspIoqProcessCompleteCanceledIrp(PIO_CSQ IoCsq, PIRP Irp)
{ {
FspCompleteRequest(Irp, STATUS_CANCELLED); FspIopCompleteRequest(Irp, STATUS_CANCELLED);
} }
VOID FspIoqInitialize(FSP_IOQ *Ioq) VOID FspIoqInitialize(FSP_IOQ *Ioq)

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_IOPROC_DISPATCH FspLockControlComplete; FSP_IOCMPL_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_IOPROC_DISPATCH FspReadComplete; FSP_IOCMPL_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_IOPROC_DISPATCH FspQuerySecurityComplete; FSP_IOCMPL_DISPATCH FspQuerySecurityComplete;
FSP_IOPROC_DISPATCH FspSetSecurityComplete; FSP_IOCMPL_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_IOPROC_DISPATCH FspShutdownComplete; FSP_IOCMPL_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_IOPROC_DISPATCH FspQueryVolumeInformationComplete; FSP_IOCMPL_DISPATCH FspQueryVolumeInformationComplete;
FSP_IOPROC_DISPATCH FspSetVolumeInformationComplete; FSP_IOCMPL_DISPATCH FspSetVolumeInformationComplete;
#ifdef ALLOC_PRAGMA #ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsvolQueryVolumeInformation) #pragma alloc_text(PAGE, FspFsvolQueryVolumeInformation)

View File

@ -9,7 +9,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);
FSP_DRIVER_DISPATCH FspWrite; FSP_DRIVER_DISPATCH FspWrite;
FSP_IOPROC_DISPATCH FspWriteComplete; FSP_IOCMPL_DISPATCH FspWriteComplete;
#ifdef ALLOC_PRAGMA #ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, FspFsvolWrite) #pragma alloc_text(PAGE, FspFsvolWrite)