hi,
i am trying to intercept data readed by notepad.exe in my Mini Filter driver…
And i tried to print the name of the file before it is get mapped using FsRtlRegisterFileSystemFilterCallbacks() routine in my DriverEntry.
but it is not working…my code is as shown…
FsFilterCallbacks.SizeOfFsFilterCallbacks = sizeof (FS_FILTER_CALLBACKS);
FsFilterCallbacks.PreAcquireForSectionSynchronization = SfPreFsFilterPassThrough;
FsFilterCallbacks.PostAcquireForSectionSynchronization = SfPostFsFilterPassThrough;
FsFilterCallbacks.PreReleaseForSectionSynchronization =SfPreFsFilterPassThrough;
FsFilterCallbacks.PostReleaseForSectionSynchronization =SfPostFsFilterPassThrough;
FsFilterCallbacks.PreAcquireForCcFlush =SfPreFsFilterPassThrough;
FsFilterCallbacks.PostAcquireForCcFlush =SfPostFsFilterPassThrough;
FsFilterCallbacks.PreReleaseForCcFlush =SfPreFsFilterPassThrough;
FsFilterCallbacks.PostReleaseForCcFlush =SfPostFsFilterPassThrough;
FsFilterCallbacks.PreAcquireForModifiedPageWriter = SfPreFsFilterPassThrough;
FsFilterCallbacks.PostAcquireForModifiedPageWriter = SfPostFsFilterPassThrough;
FsFilterCallbacks.PreReleaseForModifiedPageWriter = SfPreFsFilterPassThrough;
FsFilterCallbacks.PostReleaseForModifiedPageWriter = SfPostFsFilterPassThrough;
status = FsRtlRegisterFileSystemFilterCallbacks( DriverObject,&FsFilterCallbacks);
if (!NT_SUCCESS( status ))
{
DbgPrint(“failed to registerFilterCallbacks”);
}
and my pre and post routiens are…
NTSTATUS
SfPreFsFilterPassThrough (
IN PFS_FILTER_CALLBACK_DATA Data,
OUT PVOID *CompletionContext
)
{
DbgPrint(“in SfPreFsFilterPassThrough”);
if (NULL != Data->FileObject) {
DbgPrint("File object is %wZ ",Data->FileObject->FileName);
}
return STATUS_SUCCESS;
}
VOID
SfPostFsFilterPassThrough (
IN PFS_FILTER_CALLBACK_DATA Data,
IN NTSTATUS OperationStatus,
IN PVOID CompletionContext
)
{
DbgPrint(“in SfPostFsFilterPassThrough”);
}
any help please…
thanks…