mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 08:23:05 -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\lockctrl.c" />
|
||||
<ClCompile Include="..\..\src\sys\read.c" />
|
||||
<ClCompile Include="..\..\src\sys\resource.c" />
|
||||
<ClCompile Include="..\..\src\sys\security.c" />
|
||||
<ClCompile Include="..\..\src\sys\shutdown.c" />
|
||||
<ClCompile Include="..\..\src\sys\volinfo.c" />
|
||||
|
@ -54,6 +54,9 @@
|
||||
<ClCompile Include="..\..\src\sys\read.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\sys\resource.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\src\sys\security.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
|
@ -20,5 +20,7 @@ FspClose(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -20,5 +20,7 @@ FspCreate(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -20,5 +20,7 @@ FspDeviceControl(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -20,5 +20,7 @@ FspDirectoryControl(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -22,9 +22,9 @@ DriverEntry(
|
||||
UNREFERENCED_PARAMETER(RegistryPath);
|
||||
|
||||
NTSTATUS Status;
|
||||
UNICODE_STRING DeviceName;
|
||||
|
||||
/* create the file system device object */
|
||||
UNICODE_STRING DeviceName;
|
||||
RtlInitUnicodeString(&DeviceName, L"" DRIVER_NAME);
|
||||
Status = IoCreateDevice(DriverObject, 0, &DeviceName, FILE_DEVICE_FILE_SYSTEM, 0, FALSE,
|
||||
&FspDeviceObject);
|
||||
@ -94,6 +94,17 @@ DriverEntry(
|
||||
FspFastIoDispatch.ReleaseForCcFlush = 0;
|
||||
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;
|
||||
}
|
||||
|
||||
@ -102,6 +113,11 @@ FspUnload(
|
||||
_In_ PDRIVER_OBJECT DriverObject)
|
||||
{
|
||||
UNREFERENCED_PARAMETER(DriverObject);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
if (0 != FspDeviceObject)
|
||||
IoDeleteDevice(FspDeviceObject);
|
||||
}
|
||||
|
||||
PDEVICE_OBJECT FspDeviceObject;
|
||||
|
@ -42,6 +42,12 @@ DRIVER_DISPATCH FspWrite;
|
||||
/* fast I/O */
|
||||
FAST_IO_CHECK_IF_POSSIBLE FspFastIoCheckIfPossible;
|
||||
|
||||
/* filter callbacks */
|
||||
NTSTATUS
|
||||
FspAcquireForSectionSynchronization(
|
||||
_In_ PFS_FILTER_CALLBACK_DATA Data,
|
||||
_Out_ PVOID *CompletionContext);
|
||||
|
||||
/* extern */
|
||||
PDEVICE_OBJECT FspDeviceObject;
|
||||
|
||||
|
@ -22,6 +22,8 @@ FspQueryEa(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@ -33,5 +35,7 @@ FspSetEa(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -33,5 +33,7 @@ FspFastIoCheckIfPossible(
|
||||
UNREFERENCED_PARAMETER(IoStatus);
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -22,6 +22,8 @@ FspQueryInformation(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@ -33,5 +35,7 @@ FspSetInformation(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -20,5 +20,7 @@ FspFlushBuffers(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -20,5 +20,7 @@ FspFileSystemControl(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -20,5 +20,7 @@ FspLockControl(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -20,5 +20,7 @@ FspRead(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
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(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@ -33,5 +35,7 @@ FspSetSecurity(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -20,5 +20,7 @@ FspShutdown(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -22,6 +22,8 @@ FspQueryVolumeInformation(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@ -33,5 +35,7 @@ FspSetVolumeInformation(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
@ -20,5 +20,7 @@ FspWrite(
|
||||
UNREFERENCED_PARAMETER(DeviceObject);
|
||||
UNREFERENCED_PARAMETER(Irp);
|
||||
|
||||
PAGED_CODE();
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user