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
7ab5998c49
commit
2668e05748
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user