ZwDeleteFile 函数 (ntifs.h)

ZwDeleteFile 例程将删除指定的文件。

语法

NTSYSAPI NTSTATUS ZwDeleteFile(
  [in] POBJECT_ATTRIBUTES ObjectAttributes
);

参数

[in] ObjectAttributes

指向 OBJECT_ATTRIBUTES 结构的指针,该结构包含由要用于文件对象的调用方提供的属性。 例如,这些属性将包括 ObjectNameSECURITY_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 删除指定的文件对象。

ZwDeleteFile 函数在 InitializeAttributes 宏用于设置要删除的文件对象的 OBJECT_ATTRIBUTES 结构中的属性之后调用。

可通过两种替代方法指定要删除的文件的名称,ZwDeleteFile

  • 作为完全限定的路径名,在输入 ObjectAttributesObjectName 成员中提供
  • 作为路径名,相对于由输入 ObjectAttributesRootDirectory 成员中的句柄表示的目录文件的路径名称

ZwDeleteFile 的调用方必须在 IRQL = PASSIVE_LEVEL,启用了特殊内核 APC

如果在用户模式下调用 ZwDeleteFile 函数,则应使用名称“NtDeleteFile”而不是“ZwDeleteFile”。

对于内核模式驱动程序的调用,NtXxxZwXxx 版本的 Windows 本机系统服务例程的行为方式可能以不同的方式处理和解释输入参数。 有关 NtXxxZwXxx 例程之间的关系的详细信息,请参阅 使用 Nt 和 Zw 版本的本机系统服务例程

要求

要求 价值
最低支持的客户端 Windows XP
目标平台 普遍
标头 ntifs.h (include Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL(请参阅“备注”部分)
DDI 符合性规则 HwStorPortProhibitedDIS(storport)PowerIrpDDis(wdm)

另请参阅

InitializeObjectAttributes

OBJECT_ATTRIBUTES