zwDeleteFile 函数 (ntifs.h)
ZwDeleteFile 例程删除指定的文件。
语法
NTSYSAPI NTSTATUS ZwDeleteFile(
[in] POBJECT_ATTRIBUTES ObjectAttributes
);
参数
[in] ObjectAttributes
指向 OBJECT_ATTRIBUTES 结构的指针,该结构包含调用方提供用于文件对象的属性。 例如,这些属性将包括 ObjectName 和 SECURITY_DESCRIPTOR。 此参数通过调用 InitializeObjectAttributes 宏进行初始化。
返回值
ZwDeleteFile 返回STATUS_SUCCESS或相应的错误状态,表示操作的最终完成状态。 可能的错误状态代码包括:
返回代码 | 说明 |
---|---|
STATUS_INSUFFICIENT_RESOURCES | 无法分配此函数所需的临时缓冲区。 |
STATUS_INVALID_PARAMETER | 指定的 ObjectAttributes 参数是 NULL 指针,不是指向 OBJECT_ATTRIBUTES 结构的有效指针,或者某些指定的 ObjectAttributes 结构成员无效。 |
STATUS_OBJECT_NAME_INVALID | ObjectAttributes 参数在 OBJECT_ATTRIBUTES 结构中包含一个无效的 ObjectName,因为在OBJECT_NAME_PATH_SEPARATOR字符之后找到了空字符串。 |
STATUS_OBJECT_NAME_NOT_FOUND | ObjectAttributes 参数在OBJECT_ATTRIBUTES结构中包含一个找不到的 ObjectName 成员。 |
STATUS_OBJECT_PATH_NOT_FOUND | ObjectAttributes 参数在 OBJECT_ATTRIBUTES 结构中包含一个 ObjectName 成员,该成员具有找不到的对象路径。 |
STATUS_OBJECT_PATH_SYNTAX_BAD | ObjectAttributes 参数不包含 RootDirectory 成员,但 OBJECT_ATTRIBUTES 结构中的 ObjectName 成员是空字符串或不包含OBJECT_NAME_PATH_SEPARATOR字符。 这表示对象路径的语法不正确。 |
注解
ZwDeleteFile 删除指定的文件对象。
在 InitializeAttributes 宏用于设置要删除的文件对象的OBJECT_ATTRIBUTES结构中的属性之后,将调用 ZwDeleteFile 函数。
可通过两种替代方法指定要使用 ZwDeleteFile 删除的文件的名称:
- 作为完全限定的路径名,在输入 ObjectAttributes 的 ObjectName 成员中提供
- 作为相对于输入 ObjectAttributes 的 RootDirectory 成员中的句柄所表示的目录文件的路径名
ZwDeleteFile 的调用方必须在 IRQL = PASSIVE_LEVEL 且启用了特殊内核 APC 的情况下运行。
如果对 ZwDeleteFile 函数的调用在用户模式下发生,则应使用名称“NtDeleteFile ”而不是“ZwDeleteFile”。
对于来自内核模式驱动程序的调用,Windows Native System Services 例程的 NtXxx 和 ZwXxx 版本在处理和解释输入参数的方式上的行为可能有所不同。 有关例程的 NtXxx 和 ZwXxx 版本之间的关系的详细信息,请参阅 使用本机系统服务例程的 Nt 和 Zw 版本。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP |
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (请参阅“备注”部分) |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) , PowerIrpDDis (wdm) |