1
ミニフィルターで名前変更操作をキャンセルしたいと思います。私は ファイルの名前が変更されていることを検出するコードを書いたが、私は が実際に操作をキャンセルする方法については不明である。誰もがこれで私を助けることができますか?ミニフィルタードライバーの名前変更操作をキャンセルする方法
ファイル名の変更を検出するコールバックルーチンです。
あなたのコードでそうCbd->IoStatus
と
return FLT_PREOP_COMPLETE
を埋める必要
FLT_PREOP_CALLBACK_STATUS
PreSetInformation(
_Inout_ PFLT_CALLBACK_DATA Cbd,
_In_ PCFLT_RELATED_OBJECTS FltObjects,
_Flt_CompletionContext_Outptr_ PVOID *CompletionContext
)
{
if (Cbd->Iopb->Parameters.SetFileInformation.FileInformationClass == FileRenameInformation)
{
WCHAR buf[MAX_PATH] = { 0 };
PFILE_RENAME_INFORMATION renameInfo = Cbd->Iopb->Parameters.SetFileInformation.InfoBuffer;
memcpy(buf, renameInfo->FileName, renameInfo->FileNameLength);
DbgPrint("renameInfo %ws\n", buf);
if (anCondition(buf))
{
// TO DO: cancel a rename
}
}
return FLT_PREOP_SUCCESS_NO_CALLBACK;
}