系统定义的 ECP

[!NOTE]

一些信息与预发布产品相关,在商业发行之前可能会发生实质性修改。 Microsoft 对此处提供的信息不提供任何明示或暗示的保证。

此页面列出并描述系统定义的额外创建参数 (ECP)。 操作系统在 Ntifs.h 头文件中定义这些 ECP。

这些系统定义的 ECP 会将指定的额外信息附加到文件的 IRP_MJ_CREATE 操作。 文件系统堆栈的元素可以查询 ECP 以获取额外信息。

通常,处理文件的 IRP_MJ_CREATE 操作后将文件向下传递到其下方的筛选器的筛选器不得将系统定义的任何 ECP 附加到对文件的 IRP_MJ_CREATE 操作。

同样,对文件处理和发出 IRP_MJ_CREATE 操作的内核模式驱动程序不得将任何系统定义的 ECP 附加到对文件的 IRP_MJ_CREATE 操作。

筛选器驱动程序应将系统定义的 ECP 视为只读。 你只能使用它们来检索信息。

限制筛选器驱动程序附加以下任何系统定义的 ECP 的一个例外是筛选器驱动程序实现分层文件系统。 为此,它将拥有文件对象并对其筛选器下方的文件发出自己的 IRP_MJ_CREATE 操作,以响应筛选器驱动程序在其自己的文件对象上服务的文件的 IRP_MJ_CREATE 操作。 此类筛选器驱动程序应将对文件的原始 IRP_MJ_CREATE 操作中的任何 ECP_LIST 上下文结构列表传播到筛选器驱动程序在其下面发出的 IRP_MJ_CREATE 操作。 通过传播这些 ECP 列表,筛选器驱动程序可确保发出 IRP_MJ_CREATE 操作的筛选器下方的任何筛选器都知道原始 IRP_MJ_CREATE 操作的上下文。

ECP GUID ECP 上下文结构和含义
ECP_TYPE_CLFS_CREATE_CONTAINER 用于标识 CREATE_REDIRECTION_ECP_CONTEXT ECP 上下文结构的 GUID。 此 ECP 可以发送到 NTFS,以在卷装载期间插入新的通用日志文件系统 (CLFS) 容器。
ECP_TYPE_IO_STOP_ON_SYMLINK_FILTER_GUID 标识 IO_STOP_ON_SYMLINK_FILTER_ECP_V0 ECP 上下文结构的 GUID。 此 ECP 将 IO_STOP_ON_SYMLINK 的行为限制为仅对指定的重分析标记执行操作。
ECP_TYPE_OPEN_REPARSE_GUID 标识OPEN_REPARSE_LIST ECP 上下文结构的 GUID。 此 ECP 支持调用方打开特定的重新分析点,而不会抑制所有重新分析点类的重新分析行为。
GUID_ECP_ATOMIC_CREATE 标识 ATOMIC_CREATE_ECP_CONTEXT ECP 上下文结构的 GUID。 此 ECP 允许在创建过程中以原子方式对文件执行某些补充操作。
GUID_ECP_CLOUDFILES_ATTRIBUTION 标识云文件归因的 ECP 的 GUID。
GUID_ECP_CREATE_REDIRECTION 用于标识 ECP 的 GUID,可发送该 ECP 来查询特定创建操作的文件重定向状态。
GUID_ECP_CSV_DOWN_LEVEL_OPEN 标识 CSV_DOWN_LEVEL_OPEN_ECP_CONTEXT ECP 上下文结构的 GUID。 群集共享卷文件系统 (CSVFS) 将此 ECP 发送到元数据节点 (MDS),并包含有关创建类型的信息。
GUID_ECP_CSV_QUERY_FILE_REVISION 标识 CSV_QUERY_FILE_REVISION_ECP_CONTEXT ECP 上下文结构的 GUID。 此 ECP 可以发送到 CSVFS 以请求文件修订号。
GUID_ECP_CSV_QUERY_FILE_REVISION_FILE_ID_128 标识 CSV_QUERY_FILE_REVISION_ECP_CONTEXT_FILE_ID_128 ECP 上下文结构的 GUID。 此 ECP 可以发送到 CSVFS 以请求文件修订号。
GUID_ECP_CSV_SET_HANDLE_PROPERTIES 标识 CSV_SET_HANDLE_PROPERTIES_ECP_CONTEXT ECP 上下文结构的 GUID。 此 ECP 可发送给 CSVFS,以设置其应如何处理在此打开状态下到达的 IO 的属性。
GUID_ECP_DUAL_OPLOCK_KEY 标识 DUAL OPLOCK_KEY_ECP_CONTEXT 上下文结构的 GUID。 与 OPLOCK_KEY_ECP_CONTEXT 结构一样,DUAL OPLOCK_KEY_ECP_CONTEXT 用于将 oplock 键附加到打开的文件请求。 使用 DUAL OPLOCK_KEY_ECP_CONTEXT,还可以设置父键,为目标文件的目录提供 oplock。
GUID_ECP_IO_DEVICE_HINT 标识 IO_DEVICE_HINT_ECP_CONTEXT 结构的 GUID。 设备提示用于帮助名称提供程序微型筛选器驱动程序跟踪新设备的重新分析目标。
GUID_ECP_NETWORK_APP_INSTANCE 标识 NETWORK_APP_INSTANCE_ECP_CONTEXT ECP 上下文结构的 GUID。 故障转移群集中的客户端应用程序可能在群集的节点上打开一组文件。 文件对象由 NETWORK_APP_INSTANCE_ECP_CONTEXT 结构中的实例标识符标记到应用程序。 故障转移时,辅助节点可以使用以前缓存的应用程序实例标识符来验证客户端应用程序对打开的文件的访问权限。
GUID_ECP_NETWORK_APP_INSTANCE_VERSION 标识 NETWORK_APP_INSTANCE_VERSION_ECP_CONTEXT 结构的 GUID,它是应用程序提供其实例 ID 的 ECP 上下文。 此 ECP 必须随附 NETWORK_APP_INSTANCE_ECP_CONTEXT (GUID_ECP_NETWORK_APP_INSTANCE) 才能有效。
GUID_ECP_NETWORK_OPEN_CONTEXT 标识 NETWORK_OPEN_ECP_CONTEXT ECP 上下文结构的 GUID,用于附加网络重定向程序的额外信息。 对于在 Windows 7 和更高版本的 Windows 上运行且必须解释驻留在 Windows Vista 上的文件上的网络 ECP 上下文的驱动程序,此 GUID 还标识 NETWORK_OPEN_ECP_CONTEXT_V0 结构。
GUID_ECP_NFS_OPEN 标识 NFS_OPEN_ECP_CONTEXT 结构的 GUID。 网络文件系统 (NFS) 服务器将 NFS_OPEN_ECP_CONTEXT 结构附加到打开的文件请求。 在 NFS 服务器为满足客户端请求而发出的任何打开文件请求中,NFS 服务器都会使用此 GUID。 然后,文件系统堆栈可以确定 NFS_OPEN_ECP_CONTEXT 是否附加到打开的文件请求。 根据 NFS_OPEN_ECP_CONTEXT 中的信息,文件系统堆栈可以确定请求打开文件的客户端以及原因。
GUID_ECP_OPEN_PARAMETERS 标识 ECP_OPEN_PARAMETERS ECP 上下文结构的 GUID。 此 ECP 允许调用方指定文件打开的目的,而不会干扰文件上的现有句柄和/或机会锁 (oplock)。
GUID_ECP_OPLOCK_KEY 标识 OPLOCK_KEY_ECP_CONTEXT ECP 上下文结构的 GUID,用于将 oplock 键附加到打开的文件请求。 Oplock 键允许应用程序打开同一流的多个句柄,而不会中断应用程序自己的 oplock。 有关 oplock 和 oplock 键的详细信息,请参阅 Oplock 语义概述
GUID_ECP_PREFETCH_OPEN 标识 PREFETCH_OPEN_ECP_CONTEXT ECP 上下文结构的 GUID。 预提取器是一个与缓存管理器和内存管理器紧密集成的 OS 组件,可提高磁盘访问效率,从而改善性能。 如果其他组件干扰预提取器,则系统性能会降低,并且可能会死锁。 因此,预提取器将 PREFETCH_OPEN_ECP_CONTEXT 结构附加到文件,以通知预提取器对文件执行打开请求。 此打开的请求由 PREFETCH_OPEN_ECP_CONTEXT的 上下文成员指定。 其他组件(例如文件系统筛选器驱动程序)可以确定 PREFETCH_OPEN_ECP_CONTEXT 是否附加到该文件,然后采取相应操作。
GUID_ECP_QUERY_ON_CREATE 标识创建时查询文件信息的 ECP 的 GUID。
GUID_ECP_RKF_BYPASS 标识 RKF_BYPASS_ECP_CONTEXT ECP 上下文结构的 GUID。
GUID_ECP_SRV_OPEN 标识 SRV_OPEN_ECP_CONTEXT 上下文结构的 GUID。 服务器将 SRV_OPEN_ECP_CONTEXT 结构附加到打开的文件请求。 在服务器为满足条件客户端请求而发出的任何打开文件请求中,服务器都会使用此 GUID。 然后,文件系统堆栈可以确定 SRV_OPEN_ECP_CONTEXT 是否附加到打开的文件请求。 根据 SRV_OPEN_ECP_CONTEXT 中的信息,文件系统堆栈可以确定请求打开文件的客户端以及原因。
GUID_ECP_TYPE_VETO_BINDING 标识 VETO_BINDING_ECP_CONTEXT ECP 上下文结构。 此 ECP 可用于在系统引导分区上否决绑定链接。 从 Windows 11 版本 24H2 开始提供。