mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-24 17:32:29 -05:00
sys: WIP
This commit is contained in:
parent
ffe75d5242
commit
5424692f7f
@ -23,7 +23,7 @@ DriverEntry(
|
|||||||
|
|
||||||
/* create the file system device object */
|
/* create the file system device object */
|
||||||
UNICODE_STRING DeviceName;
|
UNICODE_STRING DeviceName;
|
||||||
RtlInitUnicodeString(&DeviceName, L"" DRIVER_NAME);
|
RtlInitUnicodeString(&DeviceName, L"\\" DRIVER_NAME);
|
||||||
Result = IoCreateDevice(DriverObject, 0, &DeviceName, FILE_DEVICE_FILE_SYSTEM, 0, FALSE,
|
Result = IoCreateDevice(DriverObject, 0, &DeviceName, FILE_DEVICE_FILE_SYSTEM, 0, FALSE,
|
||||||
&FspDeviceObject);
|
&FspDeviceObject);
|
||||||
if (!NT_SUCCESS(Result))
|
if (!NT_SUCCESS(Result))
|
||||||
@ -32,7 +32,7 @@ DriverEntry(
|
|||||||
/* setup the driver object */
|
/* setup the driver object */
|
||||||
DriverObject->DriverUnload = FspUnload;
|
DriverObject->DriverUnload = FspUnload;
|
||||||
DriverObject->MajorFunction[IRP_MJ_CREATE] = FspCreate;
|
DriverObject->MajorFunction[IRP_MJ_CREATE] = FspCreate;
|
||||||
DriverObject->MajorFunction[IRP_MJ_CREATE_NAMED_PIPE] = 0;
|
//DriverObject->MajorFunction[IRP_MJ_CREATE_NAMED_PIPE] = IopInvalidDeviceRequest;
|
||||||
DriverObject->MajorFunction[IRP_MJ_CLOSE] = FspClose;
|
DriverObject->MajorFunction[IRP_MJ_CLOSE] = FspClose;
|
||||||
DriverObject->MajorFunction[IRP_MJ_READ] = FspRead;
|
DriverObject->MajorFunction[IRP_MJ_READ] = FspRead;
|
||||||
DriverObject->MajorFunction[IRP_MJ_WRITE] = FspWrite;
|
DriverObject->MajorFunction[IRP_MJ_WRITE] = FspWrite;
|
||||||
@ -46,19 +46,19 @@ DriverEntry(
|
|||||||
DriverObject->MajorFunction[IRP_MJ_DIRECTORY_CONTROL] = FspDirectoryControl;
|
DriverObject->MajorFunction[IRP_MJ_DIRECTORY_CONTROL] = FspDirectoryControl;
|
||||||
DriverObject->MajorFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = FspFileSystemControl;
|
DriverObject->MajorFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = FspFileSystemControl;
|
||||||
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = FspDeviceControl;
|
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = FspDeviceControl;
|
||||||
DriverObject->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = 0;
|
//DriverObject->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = IopInvalidDeviceRequest;
|
||||||
DriverObject->MajorFunction[IRP_MJ_SHUTDOWN] = FspShutdown;
|
DriverObject->MajorFunction[IRP_MJ_SHUTDOWN] = FspShutdown;
|
||||||
DriverObject->MajorFunction[IRP_MJ_LOCK_CONTROL] = FspLockControl;
|
DriverObject->MajorFunction[IRP_MJ_LOCK_CONTROL] = FspLockControl;
|
||||||
DriverObject->MajorFunction[IRP_MJ_CLEANUP] = FspCleanup;
|
DriverObject->MajorFunction[IRP_MJ_CLEANUP] = FspCleanup;
|
||||||
DriverObject->MajorFunction[IRP_MJ_CREATE_MAILSLOT] = 0;
|
//DriverObject->MajorFunction[IRP_MJ_CREATE_MAILSLOT] = IopInvalidDeviceRequest;
|
||||||
DriverObject->MajorFunction[IRP_MJ_QUERY_SECURITY] = FspQuerySecurity;
|
DriverObject->MajorFunction[IRP_MJ_QUERY_SECURITY] = FspQuerySecurity;
|
||||||
DriverObject->MajorFunction[IRP_MJ_SET_SECURITY] = FspSetSecurity;
|
DriverObject->MajorFunction[IRP_MJ_SET_SECURITY] = FspSetSecurity;
|
||||||
DriverObject->MajorFunction[IRP_MJ_POWER] = 0;
|
//DriverObject->MajorFunction[IRP_MJ_POWER] = IopInvalidDeviceRequest;
|
||||||
DriverObject->MajorFunction[IRP_MJ_SYSTEM_CONTROL] = 0;
|
//DriverObject->MajorFunction[IRP_MJ_SYSTEM_CONTROL] = IopInvalidDeviceRequest;
|
||||||
DriverObject->MajorFunction[IRP_MJ_DEVICE_CHANGE] = 0;
|
//DriverObject->MajorFunction[IRP_MJ_DEVICE_CHANGE] = IopInvalidDeviceRequest;
|
||||||
DriverObject->MajorFunction[IRP_MJ_QUERY_QUOTA] = 0;
|
//DriverObject->MajorFunction[IRP_MJ_QUERY_QUOTA] = IopInvalidDeviceRequest;
|
||||||
DriverObject->MajorFunction[IRP_MJ_SET_QUOTA] = 0;
|
//DriverObject->MajorFunction[IRP_MJ_SET_QUOTA] = IopInvalidDeviceRequest;
|
||||||
DriverObject->MajorFunction[IRP_MJ_PNP] = 0;
|
//DriverObject->MajorFunction[IRP_MJ_PNP] = IopInvalidDeviceRequest;
|
||||||
|
|
||||||
/* 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 };
|
||||||
@ -66,27 +66,27 @@ DriverEntry(
|
|||||||
FspFastIoDispatch.FastIoCheckIfPossible = FspFastIoCheckIfPossible;
|
FspFastIoDispatch.FastIoCheckIfPossible = FspFastIoCheckIfPossible;
|
||||||
FspFastIoDispatch.FastIoRead = FsRtlCopyRead;
|
FspFastIoDispatch.FastIoRead = FsRtlCopyRead;
|
||||||
FspFastIoDispatch.FastIoWrite = FsRtlCopyWrite;
|
FspFastIoDispatch.FastIoWrite = FsRtlCopyWrite;
|
||||||
FspFastIoDispatch.FastIoQueryBasicInfo = 0;
|
//FspFastIoDispatch.FastIoQueryBasicInfo = 0;
|
||||||
FspFastIoDispatch.FastIoQueryStandardInfo = 0;
|
//FspFastIoDispatch.FastIoQueryStandardInfo = 0;
|
||||||
FspFastIoDispatch.FastIoLock = 0;
|
//FspFastIoDispatch.FastIoLock = 0;
|
||||||
FspFastIoDispatch.FastIoUnlockSingle = 0;
|
//FspFastIoDispatch.FastIoUnlockSingle = 0;
|
||||||
FspFastIoDispatch.FastIoUnlockAll = 0;
|
//FspFastIoDispatch.FastIoUnlockAll = 0;
|
||||||
FspFastIoDispatch.FastIoUnlockAllByKey = 0;
|
//FspFastIoDispatch.FastIoUnlockAllByKey = 0;
|
||||||
FspFastIoDispatch.FastIoDeviceControl = 0;
|
//FspFastIoDispatch.FastIoDeviceControl = 0;
|
||||||
FspFastIoDispatch.AcquireFileForNtCreateSection = FspAcquireFileForNtCreateSection;
|
FspFastIoDispatch.AcquireFileForNtCreateSection = FspAcquireFileForNtCreateSection;
|
||||||
FspFastIoDispatch.ReleaseFileForNtCreateSection = FspReleaseFileForNtCreateSection;
|
FspFastIoDispatch.ReleaseFileForNtCreateSection = FspReleaseFileForNtCreateSection;
|
||||||
FspFastIoDispatch.FastIoDetachDevice = 0;
|
//FspFastIoDispatch.FastIoDetachDevice = 0;
|
||||||
FspFastIoDispatch.FastIoQueryNetworkOpenInfo = 0;
|
//FspFastIoDispatch.FastIoQueryNetworkOpenInfo = 0;
|
||||||
FspFastIoDispatch.AcquireForModWrite = FspAcquireForModWrite;
|
FspFastIoDispatch.AcquireForModWrite = FspAcquireForModWrite;
|
||||||
FspFastIoDispatch.MdlRead = FsRtlMdlReadDev;
|
FspFastIoDispatch.MdlRead = FsRtlMdlReadDev;
|
||||||
FspFastIoDispatch.MdlReadComplete = FsRtlMdlReadCompleteDev;
|
FspFastIoDispatch.MdlReadComplete = FsRtlMdlReadCompleteDev;
|
||||||
FspFastIoDispatch.PrepareMdlWrite = FsRtlPrepareMdlWriteDev;
|
FspFastIoDispatch.PrepareMdlWrite = FsRtlPrepareMdlWriteDev;
|
||||||
FspFastIoDispatch.MdlWriteComplete = FsRtlMdlWriteCompleteDev;
|
FspFastIoDispatch.MdlWriteComplete = FsRtlMdlWriteCompleteDev;
|
||||||
FspFastIoDispatch.FastIoReadCompressed = 0;
|
//FspFastIoDispatch.FastIoReadCompressed = 0;
|
||||||
FspFastIoDispatch.FastIoWriteCompressed = 0;
|
//FspFastIoDispatch.FastIoWriteCompressed = 0;
|
||||||
FspFastIoDispatch.MdlReadCompleteCompressed = 0;
|
//FspFastIoDispatch.MdlReadCompleteCompressed = 0;
|
||||||
FspFastIoDispatch.MdlWriteCompleteCompressed = 0;
|
//FspFastIoDispatch.MdlWriteCompleteCompressed = 0;
|
||||||
FspFastIoDispatch.FastIoQueryOpen = 0;
|
//FspFastIoDispatch.FastIoQueryOpen = 0;
|
||||||
FspFastIoDispatch.ReleaseForModWrite = FspReleaseForModWrite;
|
FspFastIoDispatch.ReleaseForModWrite = FspReleaseForModWrite;
|
||||||
FspFastIoDispatch.AcquireForCcFlush = FspAcquireForCcFlush;
|
FspFastIoDispatch.AcquireForCcFlush = FspAcquireForCcFlush;
|
||||||
FspFastIoDispatch.ReleaseForCcFlush = FspReleaseForCcFlush;
|
FspFastIoDispatch.ReleaseForCcFlush = FspReleaseForCcFlush;
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
#if DBG
|
#if DBG
|
||||||
const char *NtStatusSym(NTSTATUS Status);
|
const char *NtStatusSym(NTSTATUS Status);
|
||||||
#define FSP_ENTER_(...) \
|
#define FSP_ENTER_(...) \
|
||||||
|
try { DbgBreakPoint(); } except(EXCEPTION_EXECUTE_HANDLER) {}\
|
||||||
__VA_ARGS__; \
|
__VA_ARGS__; \
|
||||||
try \
|
try \
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user