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
a5a859587a
commit
f35020612d
@ -131,6 +131,7 @@
|
|||||||
<ClCompile Include="..\..\src\sys\fsctrl.c" />
|
<ClCompile Include="..\..\src\sys\fsctrl.c" />
|
||||||
<ClCompile Include="..\..\src\sys\lockctrl.c" />
|
<ClCompile Include="..\..\src\sys\lockctrl.c" />
|
||||||
<ClCompile Include="..\..\src\sys\read.c" />
|
<ClCompile Include="..\..\src\sys\read.c" />
|
||||||
|
<ClCompile Include="..\..\src\sys\resource.c" />
|
||||||
<ClCompile Include="..\..\src\sys\security.c" />
|
<ClCompile Include="..\..\src\sys\security.c" />
|
||||||
<ClCompile Include="..\..\src\sys\shutdown.c" />
|
<ClCompile Include="..\..\src\sys\shutdown.c" />
|
||||||
<ClCompile Include="..\..\src\sys\volinfo.c" />
|
<ClCompile Include="..\..\src\sys\volinfo.c" />
|
||||||
|
@ -54,6 +54,9 @@
|
|||||||
<ClCompile Include="..\..\src\sys\read.c">
|
<ClCompile Include="..\..\src\sys\read.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\sys\resource.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\src\sys\security.c">
|
<ClCompile Include="..\..\src\sys\security.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -20,5 +20,7 @@ FspClose(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
@ -20,5 +20,7 @@ FspCreate(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
@ -20,5 +20,7 @@ FspDeviceControl(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
@ -20,5 +20,7 @@ FspDirectoryControl(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
@ -22,9 +22,9 @@ DriverEntry(
|
|||||||
UNREFERENCED_PARAMETER(RegistryPath);
|
UNREFERENCED_PARAMETER(RegistryPath);
|
||||||
|
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
UNICODE_STRING DeviceName;
|
|
||||||
|
|
||||||
/* create the file system device object */
|
/* create the file system device object */
|
||||||
|
UNICODE_STRING DeviceName;
|
||||||
RtlInitUnicodeString(&DeviceName, L"" DRIVER_NAME);
|
RtlInitUnicodeString(&DeviceName, L"" DRIVER_NAME);
|
||||||
Status = IoCreateDevice(DriverObject, 0, &DeviceName, FILE_DEVICE_FILE_SYSTEM, 0, FALSE,
|
Status = IoCreateDevice(DriverObject, 0, &DeviceName, FILE_DEVICE_FILE_SYSTEM, 0, FALSE,
|
||||||
&FspDeviceObject);
|
&FspDeviceObject);
|
||||||
@ -94,6 +94,17 @@ DriverEntry(
|
|||||||
FspFastIoDispatch.ReleaseForCcFlush = 0;
|
FspFastIoDispatch.ReleaseForCcFlush = 0;
|
||||||
DriverObject->FastIoDispatch = &FspFastIoDispatch;
|
DriverObject->FastIoDispatch = &FspFastIoDispatch;
|
||||||
|
|
||||||
|
/* setup filter callbacks */
|
||||||
|
FS_FILTER_CALLBACKS FspFilterCallbacks = { 0 };
|
||||||
|
FspFilterCallbacks.SizeOfFsFilterCallbacks = sizeof FspFilterCallbacks;
|
||||||
|
FspFilterCallbacks.PreAcquireForSectionSynchronization = FspAcquireForSectionSynchronization;
|
||||||
|
Status = FsRtlRegisterFileSystemFilterCallbacks(DriverObject, &FspFilterCallbacks);
|
||||||
|
if (!NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
|
IoDeleteDevice(FspDeviceObject);
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,6 +113,11 @@ FspUnload(
|
|||||||
_In_ PDRIVER_OBJECT DriverObject)
|
_In_ PDRIVER_OBJECT DriverObject)
|
||||||
{
|
{
|
||||||
UNREFERENCED_PARAMETER(DriverObject);
|
UNREFERENCED_PARAMETER(DriverObject);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
|
if (0 != FspDeviceObject)
|
||||||
|
IoDeleteDevice(FspDeviceObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
PDEVICE_OBJECT FspDeviceObject;
|
PDEVICE_OBJECT FspDeviceObject;
|
||||||
|
@ -42,6 +42,12 @@ DRIVER_DISPATCH FspWrite;
|
|||||||
/* fast I/O */
|
/* fast I/O */
|
||||||
FAST_IO_CHECK_IF_POSSIBLE FspFastIoCheckIfPossible;
|
FAST_IO_CHECK_IF_POSSIBLE FspFastIoCheckIfPossible;
|
||||||
|
|
||||||
|
/* filter callbacks */
|
||||||
|
NTSTATUS
|
||||||
|
FspAcquireForSectionSynchronization(
|
||||||
|
_In_ PFS_FILTER_CALLBACK_DATA Data,
|
||||||
|
_Out_ PVOID *CompletionContext);
|
||||||
|
|
||||||
/* extern */
|
/* extern */
|
||||||
PDEVICE_OBJECT FspDeviceObject;
|
PDEVICE_OBJECT FspDeviceObject;
|
||||||
|
|
||||||
|
@ -22,6 +22,8 @@ FspQueryEa(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,5 +35,7 @@ FspSetEa(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
@ -33,5 +33,7 @@ FspFastIoCheckIfPossible(
|
|||||||
UNREFERENCED_PARAMETER(IoStatus);
|
UNREFERENCED_PARAMETER(IoStatus);
|
||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,8 @@ FspQueryInformation(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,5 +35,7 @@ FspSetInformation(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
@ -20,5 +20,7 @@ FspFlushBuffers(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
@ -20,5 +20,7 @@ FspFileSystemControl(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
@ -20,5 +20,7 @@ FspLockControl(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
@ -20,5 +20,7 @@ FspRead(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
29
src/sys/resource.c
Normal file
29
src/sys/resource.c
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/**
|
||||||
|
* @file sys/resource.c
|
||||||
|
*
|
||||||
|
* @copyright 2015 Bill Zissimopoulos
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <sys/driver.h>
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
FspAcquireForSectionSynchronization(
|
||||||
|
_In_ PFS_FILTER_CALLBACK_DATA Data,
|
||||||
|
_Out_ PVOID *CompletionContext);
|
||||||
|
|
||||||
|
#ifdef ALLOC_PRAGMA
|
||||||
|
#pragma alloc_text(PAGE, FspCreate)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
FspAcquireForSectionSynchronization(
|
||||||
|
_In_ PFS_FILTER_CALLBACK_DATA Data,
|
||||||
|
_Out_ PVOID *CompletionContext)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(Data);
|
||||||
|
UNREFERENCED_PARAMETER(CompletionContext);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
}
|
@ -22,6 +22,8 @@ FspQuerySecurity(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,5 +35,7 @@ FspSetSecurity(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
@ -20,5 +20,7 @@ FspShutdown(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,8 @@ FspQueryVolumeInformation(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,5 +35,7 @@ FspSetVolumeInformation(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
@ -20,5 +20,7 @@ FspWrite(
|
|||||||
UNREFERENCED_PARAMETER(DeviceObject);
|
UNREFERENCED_PARAMETER(DeviceObject);
|
||||||
UNREFERENCED_PARAMETER(Irp);
|
UNREFERENCED_PARAMETER(Irp);
|
||||||
|
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user