ZwDeleteFile 函式 (ntifs.h)
ZwDeleteFile 例程會刪除指定的檔案。
語法
NTSYSAPI NTSTATUS ZwDeleteFile(
[in] POBJECT_ATTRIBUTES ObjectAttributes
);
參數
[in] ObjectAttributes
OBJECT_ATTRIBUTES 結構的指標,其中包含要用於檔案物件的呼叫端所提供的屬性。 例如,這些屬性會包含 ObjectName 和 SECURITY_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 刪除的檔名:
- 作為完整路徑名稱,在輸入 ObjectAttributes 的 ObjectName 成員中提供
- 作為路徑名稱,相對於輸入 ObjectAttributes 之 RootDirectory 成員中句柄所代表的目錄檔案
ZwDeleteFile 的呼叫端必須在 IRQL = PASSIVE_LEVEL,並啟用特殊核心 APC。
如果 對 ZwDeleteFile 函式的呼叫發生在使用者模式中,您應該使用名稱 「NtDeleteFile 」,而不是 「ZwDeleteFile」。
對於核心模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxx 和 ZwXxx 版本在處理和解譯輸入參數的方式可能會有不同的行為。 如需例程 NtXxx 和 ZwXxx 版本之間的關聯性詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP |
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (请参阅一节) |
DDI 合規性規則 | HwStorPortProhibitedDDIs (storport) 、 PowerIrpDDis (wdm) |