FltGetFileNameInformation 函数



FltGetFileNameInformation 函数

在Minifilter 中可以使用 FltGetFileNameInformation 来获取文件的名字,但是这个函数在如下几种情况下是不能够工作的:
1. 当前thread 的 TopLevelIrp  不是NULL
2. Page I/O
3. Pre Create 操作中
4. Post Close 操作中

如果成功的调用了 FltGetFileNameInformation 函数, 则需要调用 FltReleaseFileNameInformation.


如果在Post operaton 中调用 FltGetFileNameInformation

1. 如果操作是同步的,函数会成功被调用。 (Create 操作永远都是同步的)

2. FLT_FILE_NAME_INFORMATION 结构是从PagePool 中分配的,不能够在DPC level 访问,因此不能够在DPC Level 调用 FltReleaseFileNameInformation

3. 在 Post operation 通常用 FltDoCompletionProcessingWhenSafe 方法来解决这个问题,不过还是可能由于Thread的 TopLevelIrp  不为 NULL 而失败。

你可能感兴趣的:(FltGetFileNameInformation 函数)