SetFileCompletionNotificationModes 函数 (winbase.h)

设置文件句柄的通知模式,以便能够指定完成通知对指定文件的工作方式。

语法

BOOL SetFileCompletionNotificationModes(
  [in] HANDLE FileHandle,
  [in] UCHAR  Flags
);

参数

[in] FileHandle

文件的句柄。

[in] Flags

要设置的模式。 可以同时设置一个或多个模式;但是,在为文件句柄设置模式后,无法删除它。

含义
FILE_SKIP_COMPLETION_PORT_ON_SUCCESS
0x1
如果满足以下三个条件,则 I/O 管理器不会将完成项排队到端口,而通常这样做。 条件为:
  • 完成端口与文件句柄相关联。
  • 为异步 I/O 打开文件。
  • 请求在不返回 ERROR_PENDING的情况下立即返回成功。

FileHandle 参数为套接字时,此模式仅与返回可安装的文件系统的分层服务提供程序 (LSP) 兼容, (IFS) 句柄。 若要检测是否安装了非 IFS LSP,请使用 WSAEnumProtocols 函数并检查每个返回WSAPROTOCOL_INFO结构中的 dwServiceFlag1 成员。 如果 清除XP1_IFS_HANDLES (0x20000) 位,则指定的 LSP 不是 IFS LSP。 建议具有非 IFS LSP 的供应商迁移到 Windows 筛选平台 (WFP) 。

FILE_SKIP_SET_EVENT_ON_HANDLE
0x2
如果请求返回并返回成功代码,或者返回的错误 ERROR_PENDING 且调用的函数不是同步函数,则 I/O 管理器不会为文件对象设置 事件。

如果为请求提供了显式事件,则仍会发出信号。

返回值

如果成功,则返回非零值,否则返回零。

要获得更多的错误信息,请调用 GetLastError。

注解

若要编译使用此函数的应用程序,请将 _WIN32_WINNT 宏定义为0x0600或更高版本。 有关详细信息,请参阅 使用 Windows 标头

在 Windows 8 和 Windows Server 2012 中,此函数由以下技术支持。

技术 支持
服务器消息块 (SMB) 3.0 协议
SMB 3.0 透明故障转移 (TFO)
具有横向扩展文件共享的 SMB 3.0 (SO)
群集共享卷文件系统 (CSV)
弹性文件系统 (ReFS)

要求

要求
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

文件管理函数