FILE_DISPOSITION_INFORMATION_EX 结构 (ntddk.h)

FILE_DISPOSITION_INFORMATION_EX 结构用作 ZwSetInformationFile 例程的参数,并指示操作系统应如何删除文件。

语法

typedef struct _FILE_DISPOSITION_INFORMATION_EX {
  ULONG Flags;
} FILE_DISPOSITION_INFORMATION_EX, *PFILE_DISPOSITION_INFORMATION_EX;

成员

Flags

指定删除时系统应对特定文件执行的操作。

标志名称 含义
FILE_DISPOSITION_DO_NOT_DELETE 0x00000000 指定系统不应删除文件。
FILE_DISPOSITION_DELETE 0x00000001 指定系统应删除文件。
FILE_DISPOSITION_POSIX_SEMANTICS 0x00000002 指定系统应执行 POSIX 样式删除。 有关详细信息,请参阅备注。
FILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK 0x00000004 指定系统应强制检查图像部分。
FILE_DISPOSITION_ON_CLOSE 0x00000008 指定系统是设置还是清除关闭状态。
FILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE 0x00000010 允许删除只读文件。 有关详细信息,请参阅下面的“备注”部分。

注解

调用方必须对给定文件具有 DELETE 访问权限,才能使用 FILE_DISPOSITION_DELETE 调用 ZwSetInformationFile。

如果未设置 FILE_DISPOSITION_POSIX_SEMANTICS ,则在关闭文件的所有打开句柄且文件的链接计数为零之前,不会实际删除标记为要删除的文件。 设置 FILE_DISPOSITION_POSIX_SEMANTICS 后,POSIX 删除句柄关闭后,链接将从可见命名空间中删除,但文件数据流仍可由其他现有句柄访问,直到最后一个句柄关闭。 也就是说,已打开文件的应用程序仍然可以使用其句柄进行读取/写入,即使用于打开它的名称已消失,并且文件的链接计数可能已达到零。

如果文件是在用户请求下删除的,则使用 POSIX 语义允许系统根据请求删除文件,但也允许具有打开句柄的任何进程继续访问文件的数据,只要句柄处于打开状态。

返回值为 STATUS_CANNOT_DELETE 表示文件是只读的,或者存在文件的现有映射视图。

要求

要求
Header ntddk.h (包括 Ntddk.h、Ntifs.h)

另请参阅

ZwClose

ZwSetInformationFile