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 上下文的信息。 有关详细信息,请参阅 系统定义的 ECP

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

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

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

要求

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

另请参阅

FltIsEcpAcknowledged

FsRtlIsEcpAcknowledged

NETWORK_OPEN_ECP_CONTEXT_V0

NETWORK_OPEN_LOCATION_QUALIFIER

NETWORK_OPEN_INTEGRITY_QUALIFIER