mirror of
				https://github.com/winfsp/winfsp.git
				synced 2025-10-29 19:18:39 -05:00 
			
		
		
		
	sys: WIP
This commit is contained in:
		| @@ -13,7 +13,7 @@ static NTSTATUS FspFsvrtCleanup( | ||||
| static NTSTATUS FspFsvolCleanup( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspCleanup; | ||||
| FSP_IOPROC_DISPATCH FspCleanupComplete; | ||||
| FSP_IOCMPL_DISPATCH FspCleanupComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsctlCleanup) | ||||
|   | ||||
| @@ -13,7 +13,7 @@ static NTSTATUS FspFsvrtClose( | ||||
| static NTSTATUS FspFsvolClose( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspClose; | ||||
| FSP_IOPROC_DISPATCH FspCloseComplete; | ||||
| FSP_IOCMPL_DISPATCH FspCloseComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsctlClose) | ||||
|   | ||||
| @@ -13,7 +13,7 @@ static NTSTATUS FspFsvrtCreate( | ||||
| static NTSTATUS FspFsvolCreate( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspCreate; | ||||
| FSP_IOPROC_DISPATCH FspCreateComplete; | ||||
| FSP_IOCMPL_DISPATCH FspCreateComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsctlCreate) | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
| static NTSTATUS FspFsvolDeviceControl( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspDeviceControl; | ||||
| FSP_IOPROC_DISPATCH FspDeviceControlComplete; | ||||
| FSP_IOCMPL_DISPATCH FspDeviceControlComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsvolDeviceControl) | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
| static NTSTATUS FspFsvolDirectoryControl( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspDirectoryControl; | ||||
| FSP_IOPROC_DISPATCH FspDirectoryControlComplete; | ||||
| FSP_IOCMPL_DISPATCH FspDirectoryControlComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsvolDirectoryControl) | ||||
|   | ||||
| @@ -65,25 +65,25 @@ NTSTATUS DriverEntry( | ||||
|     DriverObject->MajorFunction[IRP_MJ_SET_SECURITY] = FspSetSecurity; | ||||
|  | ||||
|     /* setup the I/O completion functions */ | ||||
|     FspIoProcessFunction[IRP_MJ_CREATE] = FspCreateComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_CLOSE] = FspCloseComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_READ] = FspReadComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_WRITE] = FspWriteComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_QUERY_INFORMATION] = FspQueryInformationComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_SET_INFORMATION] = FspSetInformationComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_QUERY_EA] = FspQueryEaComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_SET_EA] = FspSetEaComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_FLUSH_BUFFERS] = FspFlushBuffersComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = FspQueryVolumeInformationComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_SET_VOLUME_INFORMATION] = FspSetVolumeInformationComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_DIRECTORY_CONTROL] = FspDirectoryControlComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = FspFileSystemControlComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_DEVICE_CONTROL] = FspDeviceControlComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_SHUTDOWN] = FspShutdownComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_LOCK_CONTROL] = FspLockControlComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_CLEANUP] = FspCleanupComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_QUERY_SECURITY] = FspQuerySecurityComplete; | ||||
|     FspIoProcessFunction[IRP_MJ_SET_SECURITY] = FspSetSecurityComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_CREATE] = FspCreateComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_CLOSE] = FspCloseComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_READ] = FspReadComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_WRITE] = FspWriteComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_QUERY_INFORMATION] = FspQueryInformationComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_SET_INFORMATION] = FspSetInformationComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_QUERY_EA] = FspQueryEaComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_SET_EA] = FspSetEaComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_FLUSH_BUFFERS] = FspFlushBuffersComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] = FspQueryVolumeInformationComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_SET_VOLUME_INFORMATION] = FspSetVolumeInformationComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_DIRECTORY_CONTROL] = FspDirectoryControlComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = FspFileSystemControlComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_DEVICE_CONTROL] = FspDeviceControlComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_SHUTDOWN] = FspShutdownComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_LOCK_CONTROL] = FspLockControlComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_CLEANUP] = FspCleanupComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_QUERY_SECURITY] = FspQuerySecurityComplete; | ||||
|     FspIopCompleteFunction[IRP_MJ_SET_SECURITY] = FspSetSecurityComplete; | ||||
|  | ||||
|     /* setup fast I/O and resource acquisition */ | ||||
|     static FAST_IO_DISPATCH FspFastIoDispatch = { 0 }; | ||||
|   | ||||
| @@ -107,12 +107,12 @@ | ||||
|                 {                       \ | ||||
|                     /* this can only happen if the Ioq was stopped */\ | ||||
|                     ASSERT(FspIoqStopped(&FsvrtDeviceExtension->Ioq));\ | ||||
|                     FspCompleteRequest(Irp, STATUS_ACCESS_DENIED);\ | ||||
|                     FspIopCompleteRequest(Irp, STATUS_ACCESS_DENIED);\ | ||||
|                 }                       \ | ||||
|             }                           \ | ||||
|         }                               \ | ||||
|         else                            \ | ||||
|             FspCompleteRequest(Irp, Result);\ | ||||
|             FspIopCompleteRequest(Irp, Result);\ | ||||
|     );                                  \ | ||||
|     return Result | ||||
| #define FSP_ENTER_IOC(...)              \ | ||||
| @@ -130,7 +130,7 @@ | ||||
|             __VA_ARGS__,                \ | ||||
|             NtStatusSym(Result),        \ | ||||
|             (LONGLONG)Irp->IoStatus.Information);\ | ||||
|         FspCompleteRequest(Irp, Result);\ | ||||
|         FspIopCompleteRequest(Irp, Result);\ | ||||
|     ) | ||||
| #define FSP_ENTER_BOOL(...)             \ | ||||
|     BOOLEAN Result = TRUE; FSP_ENTER_(__VA_ARGS__) | ||||
| @@ -185,27 +185,27 @@ _Dispatch_type_(IRP_MJ_WRITE)           FSP_DRIVER_DISPATCH FspWrite; | ||||
| /* I/O process functions */ | ||||
| _IRQL_requires_max_(APC_LEVEL) | ||||
| _IRQL_requires_same_ | ||||
| typedef VOID FSP_IOPROC_DISPATCH( | ||||
| typedef VOID FSP_IOCMPL_DISPATCH( | ||||
|     _Inout_ PIRP Irp, _In_ const FSP_FSCTL_TRANSACT_RSP *Response); | ||||
| FSP_IOPROC_DISPATCH FspCleanupComplete; | ||||
| FSP_IOPROC_DISPATCH FspCloseComplete; | ||||
| FSP_IOPROC_DISPATCH FspCreateComplete; | ||||
| FSP_IOPROC_DISPATCH FspDeviceControlComplete; | ||||
| FSP_IOPROC_DISPATCH FspDirectoryControlComplete; | ||||
| FSP_IOPROC_DISPATCH FspFileSystemControlComplete; | ||||
| FSP_IOPROC_DISPATCH FspFlushBuffersComplete; | ||||
| FSP_IOPROC_DISPATCH FspLockControlComplete; | ||||
| FSP_IOPROC_DISPATCH FspQueryEaComplete; | ||||
| FSP_IOPROC_DISPATCH FspQueryInformationComplete; | ||||
| FSP_IOPROC_DISPATCH FspQuerySecurityComplete; | ||||
| FSP_IOPROC_DISPATCH FspQueryVolumeInformationComplete; | ||||
| FSP_IOPROC_DISPATCH FspReadComplete; | ||||
| FSP_IOPROC_DISPATCH FspSetEaComplete; | ||||
| FSP_IOPROC_DISPATCH FspSetInformationComplete; | ||||
| FSP_IOPROC_DISPATCH FspSetSecurityComplete; | ||||
| FSP_IOPROC_DISPATCH FspSetVolumeInformationComplete; | ||||
| FSP_IOPROC_DISPATCH FspShutdownComplete; | ||||
| FSP_IOPROC_DISPATCH FspWriteComplete; | ||||
| FSP_IOCMPL_DISPATCH FspCleanupComplete; | ||||
| FSP_IOCMPL_DISPATCH FspCloseComplete; | ||||
| FSP_IOCMPL_DISPATCH FspCreateComplete; | ||||
| FSP_IOCMPL_DISPATCH FspDeviceControlComplete; | ||||
| FSP_IOCMPL_DISPATCH FspDirectoryControlComplete; | ||||
| FSP_IOCMPL_DISPATCH FspFileSystemControlComplete; | ||||
| FSP_IOCMPL_DISPATCH FspFlushBuffersComplete; | ||||
| FSP_IOCMPL_DISPATCH FspLockControlComplete; | ||||
| FSP_IOCMPL_DISPATCH FspQueryEaComplete; | ||||
| FSP_IOCMPL_DISPATCH FspQueryInformationComplete; | ||||
| FSP_IOCMPL_DISPATCH FspQuerySecurityComplete; | ||||
| FSP_IOCMPL_DISPATCH FspQueryVolumeInformationComplete; | ||||
| FSP_IOCMPL_DISPATCH FspReadComplete; | ||||
| FSP_IOCMPL_DISPATCH FspSetEaComplete; | ||||
| FSP_IOCMPL_DISPATCH FspSetInformationComplete; | ||||
| FSP_IOCMPL_DISPATCH FspSetSecurityComplete; | ||||
| FSP_IOCMPL_DISPATCH FspSetVolumeInformationComplete; | ||||
| FSP_IOCMPL_DISPATCH FspShutdownComplete; | ||||
| FSP_IOCMPL_DISPATCH FspWriteComplete; | ||||
|  | ||||
| /* fast I/O */ | ||||
| FAST_IO_CHECK_IF_POSSIBLE FspFastIoCheckIfPossible; | ||||
| @@ -282,12 +282,11 @@ FSP_FSVOL_DEVICE_EXTENSION *FspFsvolDeviceExtension(PDEVICE_OBJECT DeviceObject) | ||||
|     return DeviceObject->DeviceExtension; | ||||
| } | ||||
|  | ||||
| /* I/O completion */ | ||||
| VOID FspCompleteRequest(PIRP Irp, NTSTATUS Result); | ||||
| VOID FspDispatchProcessedIrp(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response); | ||||
| /* I/O processing */ | ||||
| VOID FspIopCompleteRequest(PIRP Irp, NTSTATUS Result); | ||||
| VOID FspIopDispatchComplete(PIRP Irp, const FSP_FSCTL_TRANSACT_RSP *Response); | ||||
|  | ||||
| /* misc */ | ||||
| VOID FspCompleteRequest(PIRP Irp, NTSTATUS Result); | ||||
| NTSTATUS FspCreateGuid(GUID *Guid); | ||||
| NTSTATUS FspSecuritySubjectContextAccessCheck( | ||||
|     PSECURITY_DESCRIPTOR SecurityDescriptor, ACCESS_MASK DesiredAccess, KPROCESSOR_MODE AccessMode); | ||||
| @@ -304,6 +303,6 @@ const char *IoctlCodeSym(ULONG ControlCode); | ||||
| /* extern */ | ||||
| extern PDEVICE_OBJECT FspFsctlDiskDeviceObject; | ||||
| extern PDEVICE_OBJECT FspFsctlNetDeviceObject; | ||||
| extern FSP_IOPROC_DISPATCH *FspIoProcessFunction[]; | ||||
| extern FSP_IOCMPL_DISPATCH *FspIopCompleteFunction[]; | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -12,8 +12,8 @@ static NTSTATUS FspFsvolSetEa( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspQueryEa; | ||||
| FSP_DRIVER_DISPATCH FspSetEa; | ||||
| FSP_IOPROC_DISPATCH FspQueryEaComplete; | ||||
| FSP_IOPROC_DISPATCH FspSetEaComplete; | ||||
| FSP_IOCMPL_DISPATCH FspQueryEaComplete; | ||||
| FSP_IOCMPL_DISPATCH FspSetEaComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsvolQueryEa) | ||||
|   | ||||
| @@ -12,8 +12,8 @@ static NTSTATUS FspFsvolSetInformation( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspQueryInformation; | ||||
| FSP_DRIVER_DISPATCH FspSetInformation; | ||||
| FSP_IOPROC_DISPATCH FspQueryInformationComplete; | ||||
| FSP_IOPROC_DISPATCH FspSetInformationComplete; | ||||
| FSP_IOCMPL_DISPATCH FspQueryInformationComplete; | ||||
| FSP_IOCMPL_DISPATCH FspSetInformationComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsvolQueryInformation) | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
| static NTSTATUS FspFsvolFlushBuffers( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspFlushBuffers; | ||||
| FSP_IOPROC_DISPATCH FspFlushBuffersComplete; | ||||
| FSP_IOCMPL_DISPATCH FspFlushBuffersComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsvolFlushBuffers) | ||||
|   | ||||
| @@ -19,7 +19,7 @@ static NTSTATUS FspFsvrtFileSystemControl( | ||||
| static NTSTATUS FspFsvolFileSystemControl( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspFileSystemControl; | ||||
| FSP_IOPROC_DISPATCH FspFileSystemControlComplete; | ||||
| FSP_IOCMPL_DISPATCH FspFileSystemControlComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsctlCreateVolume) | ||||
| @@ -153,7 +153,7 @@ static NTSTATUS FspFsvrtTransact( | ||||
|             /* either IRP was canceled or a bogus Hint was provided */ | ||||
|             continue; | ||||
|  | ||||
|         FspDispatchProcessedIrp(ProcessIrp, Response); | ||||
|         FspIopDispatchComplete(ProcessIrp, Response); | ||||
|  | ||||
|         Response = NextResponse; | ||||
|     } | ||||
| @@ -190,7 +190,7 @@ static NTSTATUS FspFsvrtTransact( | ||||
|              * also cancel the PendingIrp we have in our hands. | ||||
|              */ | ||||
|             ASSERT(FspIoqStopped(&FsvrtDeviceExtension->Ioq)); | ||||
|             FspCompleteRequest(PendingIrp, STATUS_CANCELLED); | ||||
|             FspIopCompleteRequest(PendingIrp, STATUS_CANCELLED); | ||||
|             return STATUS_CANCELLED; | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -6,13 +6,13 @@ | ||||
|  | ||||
| #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 | ||||
| #pragma alloc_text(PAGE, FspDispatchProcessedIrp) | ||||
| #pragma alloc_text(PAGE, FspIopDispatchComplete) | ||||
| #endif | ||||
|  | ||||
| VOID FspCompleteRequest(PIRP Irp, NTSTATUS Result) | ||||
| VOID FspIopCompleteRequest(PIRP Irp, NTSTATUS Result) | ||||
| { | ||||
|     // !PAGED_CODE(); | ||||
|  | ||||
| @@ -30,16 +30,16 @@ VOID FspCompleteRequest(PIRP Irp, NTSTATUS Result) | ||||
|     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(); | ||||
|  | ||||
|     PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp); | ||||
|  | ||||
|     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]; | ||||
|   | ||||
| @@ -100,7 +100,7 @@ static VOID FspIoqPendingReleaseLock(PIO_CSQ IoCsq, _IRQL_restores_ KIRQL Irql) | ||||
|  | ||||
| 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) | ||||
| @@ -151,7 +151,7 @@ static VOID FspIoqProcessReleaseLock(PIO_CSQ IoCsq, _IRQL_restores_ KIRQL Irql) | ||||
|  | ||||
| static VOID FspIoqProcessCompleteCanceledIrp(PIO_CSQ IoCsq, PIRP Irp) | ||||
| { | ||||
|     FspCompleteRequest(Irp, STATUS_CANCELLED); | ||||
|     FspIopCompleteRequest(Irp, STATUS_CANCELLED); | ||||
| } | ||||
|  | ||||
| VOID FspIoqInitialize(FSP_IOQ *Ioq) | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
| static NTSTATUS FspFsvolLockControl( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspLockControl; | ||||
| FSP_IOPROC_DISPATCH FspLockControlComplete; | ||||
| FSP_IOCMPL_DISPATCH FspLockControlComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsvolLockControl) | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
| static NTSTATUS FspFsvolRead( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspRead; | ||||
| FSP_IOPROC_DISPATCH FspReadComplete; | ||||
| FSP_IOCMPL_DISPATCH FspReadComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsvolRead) | ||||
|   | ||||
| @@ -12,8 +12,8 @@ static NTSTATUS FspFsvolSetSecurity( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspQuerySecurity; | ||||
| FSP_DRIVER_DISPATCH FspSetSecurity; | ||||
| FSP_IOPROC_DISPATCH FspQuerySecurityComplete; | ||||
| FSP_IOPROC_DISPATCH FspSetSecurityComplete; | ||||
| FSP_IOCMPL_DISPATCH FspQuerySecurityComplete; | ||||
| FSP_IOCMPL_DISPATCH FspSetSecurityComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsvolQuerySecurity) | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
| static NTSTATUS FspFsvolShutdown( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspShutdown; | ||||
| FSP_IOPROC_DISPATCH FspShutdownComplete; | ||||
| FSP_IOCMPL_DISPATCH FspShutdownComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsvolShutdown) | ||||
|   | ||||
| @@ -12,8 +12,8 @@ static NTSTATUS FspFsvolSetVolumeInformation( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspQueryVolumeInformation; | ||||
| FSP_DRIVER_DISPATCH FspSetVolumeInformation; | ||||
| FSP_IOPROC_DISPATCH FspQueryVolumeInformationComplete; | ||||
| FSP_IOPROC_DISPATCH FspSetVolumeInformationComplete; | ||||
| FSP_IOCMPL_DISPATCH FspQueryVolumeInformationComplete; | ||||
| FSP_IOCMPL_DISPATCH FspSetVolumeInformationComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsvolQueryVolumeInformation) | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
| static NTSTATUS FspFsvolWrite( | ||||
|     PDEVICE_OBJECT DeviceObject, PIRP Irp, PIO_STACK_LOCATION IrpSp); | ||||
| FSP_DRIVER_DISPATCH FspWrite; | ||||
| FSP_IOPROC_DISPATCH FspWriteComplete; | ||||
| FSP_IOCMPL_DISPATCH FspWriteComplete; | ||||
|  | ||||
| #ifdef ALLOC_PRAGMA | ||||
| #pragma alloc_text(PAGE, FspFsvolWrite) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user