很多人认为文件系统过滤驱动很复杂,其实也有一定道理,因为需要有很多细节需要考虑到,这是一个简单的文件系统过滤驱动,抛去了大部分细节,留下了一个简单的框架,其实这样文件系统过滤驱动就变得蛮简单的,很多接口可以不用实现,只要知道大致流程,其它都将会很清晰。
#define DBG 1
#include <ntifs.h>
#include "fsfilter.h"
PDEVICE_OBJECT g_Cdo;
PDRIVER_OBJECT g_MyDriver;
NTSTATUS
DriverEntry (
__in struct _DRIVER_OBJECT *DriverObject,
__in PUNICODE_STRING RegistryPath
)
{
int i = 0;
UNICODE_STRING DeviceName;
NTSTATUS Status;
KdPrintThisFunction();
g_MyDriver = DriverObject;
for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++) {
DriverObject->MajorFunction[i] = FsfPassThrough;
}
DriverObject->MajorFunction[IRP_MJ_CREATE] = FsfCreate;
DriverObject->