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) |