ZwDeleteFile 函式 (ntifs.h)

ZwDeleteFile 例程會刪除指定的檔案。

語法

NTSYSAPI NTSTATUS ZwDeleteFile(
  [in] POBJECT_ATTRIBUTES ObjectAttributes
);

參數

[in] ObjectAttributes

OBJECT_ATTRIBUTES 結構的指標,其中包含要用於檔案物件的呼叫端所提供的屬性。 例如,這些屬性會包含 ObjectNameSECURITY_DESCRIPTOR。 這個參數是藉由呼叫 InitializeObjectAttributes 宏來初始化。

傳回值

ZwDeleteFile 會傳回STATUS_SUCCESS或代表作業最終完成狀態的適當錯誤狀態。 可能的錯誤狀態代碼包括:

傳回碼 Description
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 刪除的檔名:

  • 作為完整路徑名稱,在輸入 ObjectAttributesObjectName 成員中提供
  • 作為路徑名稱,相對於輸入 ObjectAttributesRootDirectory 成員中句柄所代表的目錄檔案

ZwDeleteFile 的呼叫端必須在 IRQL = PASSIVE_LEVEL,並啟用特殊核心 APC

如果 對 ZwDeleteFile 函式的呼叫發生在使用者模式中,您應該使用名稱 「NtDeleteFile 」,而不是 「ZwDeleteFile」。

對於核心模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxxZwXxx 版本在處理和解譯輸入參數的方式可能會有不同的行為。 如需例程 NtXxxZwXxx 版本之間的關聯性詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程

規格需求

需求
最低支援的用戶端 Windows XP
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL (请参阅一节)
DDI 合規性規則 HwStorPortProhibitedDDIs (storport) PowerIrpDDis (wdm)

另請參閱

InitializeObjectAttributes

OBJECT_ATTRIBUTES