我刚刚开始研究文件系统过滤器驱动程序,该驱动程序监视对任何文件的 I/O 写入(侦听IRP_MJ_WRITE
请求),并在文件碎片化时透明地对文件进行碎片整理。
目前,我有这样的代码:
NTSTATUS FsFilterDispatchWrite(__in PDEVICE_OBJECT DeviceObject, __in PIRP Irp)
{
PFILE_OBJECT pFileObject = IoGetCurrentIrpStackLocation(Irp)->FileObject;
NTSTATUS result = FsFilterDispatchPassThrough(DeviceObject, Irp);
//FltFsControlFile(???);
return result;
}
我需要在其中发出FSCTL_GET_RETRIEVAL_POINTERS
I/O 控制代码。
但是,我对驱动程序开发领域相当陌生……FltFsControlFile
我在这里使用正确的功能吗?如果是这样,Instance
参数代表什么?如果没有,那我该怎么做呢?