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 (包括 Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) , PowerIrpDDis (wdm) |