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的傳回值表示檔案是只讀的,或有現有的對應檢視到檔案。
規格需求
需求 | 值 |
---|---|
標頭 | ntddk.h (包含 Ntddk.h、Ntifs.h) |