NETWORK_OPEN_ECP_CONTEXT结构 (ntifs.h)

NETWORK_OPEN_ECP_CONTEXT 结构用于解释文件上的网络额外创建参数 (ECP) 上下文。

语法

typedef struct _NETWORK_OPEN_ECP_CONTEXT {
  USHORT Size;
  USHORT Reserved;
  struct {
    struct {
      NETWORK_OPEN_LOCATION_QUALIFIER  Location;
      NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity;
      NETWORK_OPEN_IN_FLAGS            Flags;
    } in;
    struct {
      NETWORK_OPEN_LOCATION_QUALIFIER  Location;
      NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity;
      NETWORK_OPEN_OUT_FLAGS           Flags;
    } out;
  } DUMMYSTRUCTNAME;
} NETWORK_OPEN_ECP_CONTEXT, *PNETWORK_OPEN_ECP_CONTEXT;

成员

Size

此结构的大小(以字节为单位)。

Reserved

保留。 必须设置为零。

DUMMYSTRUCTNAME

一个结构,包含用于打开文件(预创建)和在文件打开后应用于文件(创建后)的限制。

DUMMYSTRUCTNAME.in

包含用于打开文件的预创建限制的结构。

DUMMYSTRUCTNAME.in.Location

一个 NETWORK_OPEN_LOCATION_QUALIFIER类型的值,该值指定要附加到文件的位置限制。

DUMMYSTRUCTNAME.in.Integrity

一个 NETWORK_OPEN_INTEGRITY_QUALIFIER类型的值,该值指定要附加到文件的完整性限制。

DUMMYSTRUCTNAME.in.Flags

从 Windows 7 开始支持。 一个值,该值指定文件的属性。 此成员是以下任何标志的按位 OR。

价值 意义
NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_COLLAPSING (0x1) 向 SMB 重定向程序指示,传入的打开请求不得回退并折叠到同一文件的现有打开句柄上。
NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_DURABILITY(0x2) 使 SMB2+ 重定向程序在此打开的句柄上禁用持久性。 有关打开持久操作的文件的详细信息,请参阅 应用程序请求创建为持久操作打开的文件
NETWORK_OPEN_ECP_IN_FLAG_DISABLE_OPLOCKS(0x4) 向 SMB 重定向程序指示不要为传入的打开请求授予 oplock。 此标志从 Windows 8 开始可用。
NETWORK_OPEN_ECP_IN_FLAG_FORCE_BUFFERED_SYNCHRONOUS_IO_HACK(0x80000000) 保留供内部使用,应用程序不得使用。 即使为异步 I/O 打开句柄,此标志也会强制重定向程序使用同步 I/O。

DUMMYSTRUCTNAME.out

包含创建后限制的结构,在文件打开后应用于该文件。

DUMMYSTRUCTNAME.out.Location

一个 NETWORK_OPEN_LOCATION_QUALIFIER类型的值,该值指定要附加到文件的位置限制。

DUMMYSTRUCTNAME.out.Integrity

一个 NETWORK_OPEN_INTEGRITY_QUALIFIER类型的值,该值指定要附加到文件的完整性限制。

DUMMYSTRUCTNAME.out.Flags

从 Windows 7 开始支持。 一个值,该值指定文件的属性。 此成员是以下任何标志的按位 OR。

价值 意义
NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_COLLAPSING (0x1) 向 SMB 重定向程序指示,传入的打开请求不得回退并折叠到同一文件的现有打开句柄上。
NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_DURABILITY(0x2) 使 SMB2+ 重定向程序在此打开的句柄上禁用持久性。 有关打开持久操作的文件的详细信息,请参阅 应用程序请求创建为持久操作打开的文件
NETWORK_OPEN_ECP_IN_FLAG_FORCE_BUFFERED_SYNCHRONOUS_IO_HACK(0x80000000) 保留供内部使用,应用程序不得使用。 即使为异步 I/O 打开句柄,此标志也会强制重定向程序使用同步 I/O。

言论

有关如何在创建文件时使用 ECP 将额外信息与文件相关联的信息,请参阅 将额外创建参数与IRP_MJ_CREATE操作

筛选器驱动程序应将NETWORK_OPEN_ECP_CONTEXT结构视为只读结构,仅使用它来检索有关文件上的网络 ECP 上下文的信息。 有关详细信息,请参阅 System-Defined ECP

如果调用方必须验证文件系统是否确认 NETWORK_OPEN_ECP_CONTEXT 上下文结构,调用方应在操作完成后调用 FltIsEcpAcknowledgedFsRtlIsEcpAcknowledged 例程。

在 Windows 7 及更高版本的 Windows 上运行,并且必须解释驻留在 Windows Vista 上的文件的网络 ECP 上下文的驱动程序必须改用 NETWORK_OPEN_ECP_CONTEXT_V0 结构。

在 Windows Vista 和更高版本的 Windows 上运行的驱动程序使用 NETWORK_OPEN_ECP_CONTEXT 结构来解释文件上的网络 ECP 上下文。 但是,DUMMYSTRUCTNAME.in.FlagsDUMMYSTRUCTNAME.out.Flags 成员仅支持从 Windows 7 开始。

要求

要求 价值
最低支持的客户端 此结构从 Windows Vista 开始可用。
标头 ntifs.h (include Ntifs.h)

另请参阅

FltIsEcpAcknowledged

FsRtlIsEcpAcknowledged

NETWORK_OPEN_ECP_CONTEXT_V0

NETWORK_OPEN_LOCATION_QUALIFIER

NETWORK_OPEN_INTEGRITY_QUALIFIER