FsRtlNotifyFullReportChange 函数 (ntifs.h)
FsRtlNotifyFullReportChange 例程完成挂起的通知更改 IRP。
语法
void FsRtlNotifyFullReportChange(
[in] PNOTIFY_SYNC NotifySync,
[in] PLIST_ENTRY NotifyList,
[in] PSTRING FullTargetName,
[in] USHORT TargetNameOffset,
[in, optional] PSTRING StreamName,
[in, optional] PSTRING NormalizedParentName,
[in] ULONG FilterMatch,
[in] ULONG Action,
[in, optional] PVOID TargetContext
);
参数
[in] NotifySync
指向当前卷的不透明同步对象的指针。
[in] NotifyList
指向通知列表头的指针。 列表中的每个元素都是一个不透明的通知结构。
[in] FullTargetName
指向包含文件完整路径名的 ANSI 或 Unicode 字符串的指针。
[in] TargetNameOffset
名称最终组件的 FullTargetName 字符串中的偏移量。
[in, optional] StreamName
指向 ANSI 或 Unicode 字符串的可选指针,该字符串包含要随文件名一起存储的流名称。
[in, optional] NormalizedParentName
指向 ANSI 或 Unicode 字符串的可选指针,该字符串包含与 FullTargetName 字符串中相同的路径,但所有短名称都替换为相应的长名称。
[in] FilterMatch
要与通知结构中的完成筛选器进行比较的标志的位掩码。 如果设置了完成筛选器中的任何相应位,则存在通知条件。 有关可能的标志值,请参阅 FsRtlNotifyFullChangeDirectory的 CompletionFilter 参数。
[in] Action
指定在用户缓冲区(如果存在)中存储的操作代码。 操作代码可以是下面所述的值之一。
操作代码 | 意义 |
---|---|
FILE_ACTION_ADDED | 已创建新文件或子目录。 |
FILE_ACTION_REMOVED | 文件或子目录已被删除。 |
FILE_ACTION_MODIFIED | 文件或子目录已修改(但未创建或删除)。 |
FILE_ACTION_RENAMED_OLD_NAME | 这是已重命名的文件的旧名称。 |
FILE_ACTION_RENAMED_NEW_NAME | 这是已重命名的文件的新名称。 |
FILE_ACTION_ADDED_STREAM | 已打开一个新流。 |
FILE_ACTION_REMOVED_STREAM | 流已关闭。 |
FILE_ACTION_MODIFIED_STREAM | 流已修改(但未打开或关闭)。 |
FILE_ACTION_REMOVED_BY_DELETE | 删除文件操作已从索引中删除对象 ID。 |
FILE_ACTION_ID_NOT_TUNNELLED | 无法对文件的对象 ID 进行隧道传输,因为它的对象 ID 与已存在的文件的 ID 匹配。 |
FILE_ACTION_TUNNELLED_ID_COLLISION | 无法对文件的对象 ID 进行隧道传输,因为该文件已有对象 ID。 |
[in, optional] TargetContext
如果在监视树的情况下执行遍历检查,则用于传递给文件系统的上下文指针。 有关详细信息,请参阅 FsRtlNotifyFullChangeDirectory的 TraverseCallback 参数。
返回值
没有
言论
FsRtlNotifyFullReportChange 在修改文件时由文件系统调用,以便可以完成挂起的通知更改 IRP。
FsRtlNotifyFullReportChange 查找与指定筛选器和路径名匹配的通知列表中的通知结构。 如果找到匹配项,FsRtlNotifyFullReportChange 完成通知结构的所有挂起 IRP。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ntifs.h (include Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDIS(storport),PowerIrpDDis(wdm) |