我跟踪已更改已制作文件,并且想要记住"并将一些信息从操作前回调传递给操作后回调。
最好的方法是什么?
[编辑:驱动程序应该只支持Windows 10,其他一切都是奖金]
答案 0 :(得分:0)
您可以在PreOperation中使用 PVOID * CompletionContext 来存储指向要传递给PostOperation的数据的指针。 在PostOperation中只需使用 CompletionContext ,因为它将是您在PreOperation中指向它的数据。
例如: 术前:
MyPreOpData = ExAllocatePoolWithTag(DATA_SIZE);
FltGetFileNameInformation(&NameInfo);
MyPreData->NameInfo = NameInfo;
MyPreData->OtherData = MyDrvGetOtherData(Params);
*CompletionContext = MyPreData;
术后:
if (CompletionContext != NULL)
{
PMY_DATA MyPreData = (PMY_DATA)CompletionContext;
// now continue using the data queried in the PreOp
...
// when done free it
ExFreePoolWithTag(MyPreData);
}
有关详细信息,请参阅here。
祝你好运,