This commit is contained in:
Bill Zissimopoulos 2015-11-16 17:52:07 -08:00
parent a5a859587a
commit f35020612d
20 changed files with 94 additions and 1 deletions

View File

@ -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" />

View File

@ -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>

View File

@ -20,5 +20,7 @@ FspClose(
UNREFERENCED_PARAMETER(DeviceObject);
UNREFERENCED_PARAMETER(Irp);
PAGED_CODE();
return STATUS_NOT_IMPLEMENTED;
}

View File

@ -20,5 +20,7 @@ FspCreate(
UNREFERENCED_PARAMETER(DeviceObject);
UNREFERENCED_PARAMETER(Irp);
PAGED_CODE();
return STATUS_NOT_IMPLEMENTED;
}

View File

@ -20,5 +20,7 @@ FspDeviceControl(
UNREFERENCED_PARAMETER(DeviceObject);
UNREFERENCED_PARAMETER(Irp);
PAGED_CODE();
return STATUS_NOT_IMPLEMENTED;
}

View File

@ -20,5 +20,7 @@ FspDirectoryControl(
UNREFERENCED_PARAMETER(DeviceObject);
UNREFERENCED_PARAMETER(Irp);
PAGED_CODE();
return STATUS_NOT_IMPLEMENTED;
}

View File

@ -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;

View File

@ -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;

View File

@ -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;
}

View File

@ -33,5 +33,7 @@ FspFastIoCheckIfPossible(
UNREFERENCED_PARAMETER(IoStatus);
UNREFERENCED_PARAMETER(DeviceObject);
PAGED_CODE();
return FALSE;
}

View File

@ -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;
}

View File

@ -20,5 +20,7 @@ FspFlushBuffers(
UNREFERENCED_PARAMETER(DeviceObject);
UNREFERENCED_PARAMETER(Irp);
PAGED_CODE();
return STATUS_NOT_IMPLEMENTED;
}

View File

@ -20,5 +20,7 @@ FspFileSystemControl(
UNREFERENCED_PARAMETER(DeviceObject);
UNREFERENCED_PARAMETER(Irp);
PAGED_CODE();
return STATUS_NOT_IMPLEMENTED;
}

View File

@ -20,5 +20,7 @@ FspLockControl(
UNREFERENCED_PARAMETER(DeviceObject);
UNREFERENCED_PARAMETER(Irp);
PAGED_CODE();
return STATUS_NOT_IMPLEMENTED;
}

View File

@ -20,5 +20,7 @@ FspRead(
UNREFERENCED_PARAMETER(DeviceObject);
UNREFERENCED_PARAMETER(Irp);
PAGED_CODE();
return STATUS_NOT_IMPLEMENTED;
}

29
src/sys/resource.c Normal file
View 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;
}

View File

@ -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;
}

View File

@ -20,5 +20,7 @@ FspShutdown(
UNREFERENCED_PARAMETER(DeviceObject);
UNREFERENCED_PARAMETER(Irp);
PAGED_CODE();
return STATUS_NOT_IMPLEMENTED;
}

View File

@ -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;
}

View File

@ -20,5 +20,7 @@ FspWrite(
UNREFERENCED_PARAMETER(DeviceObject);
UNREFERENCED_PARAMETER(Irp);
PAGED_CODE();
return STATUS_NOT_IMPLEMENTED;
}