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的返回值指示文件是只读的,或者存在文件的现有映射视图。

要求

要求 价值
标头 ntddk.h (包括 Ntddk.h、 Ntifs.h)

另请参阅

ZwClose

ZwSetInformationFile