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 | 読み取り専用ファイルの削除を許可します。 詳細については、以下の「解説」セクションを参照してください。 |
備考
ZwSetInformationFile を FILE_DISPOSITION_DELETEで呼び出すには、呼び出し元が特定のファイルに対する DELETE アクセス権を持っている必要があります。
FILE_DISPOSITION_POSIX_SEMANTICS が設定されていない場合、削除対象としてマークされたファイルは、ファイルのすべての開いているハンドルが閉じられ、ファイルのリンク数が 0 になるまで、実際には削除されません。 FILE_DISPOSITION_POSIX_SEMANTICS 設定すると、POSIX 削除ハンドルが閉じられるとすぐにリンクが表示される名前空間から削除されますが、ファイルのデータ ストリームは、最後のハンドルが閉じられるまで、他の既存のハンドルからアクセスできます。 つまり、既にファイルを開いていたアプリケーションは、開くために使用した名前が消え、ファイルのリンク数が 0 に達している可能性がある場合でも、ハンドルを使用して読み取り/書き込みを行うことができます。
ファイルがユーザーの要求時に削除されている場合、POSIX セマンティクスを使用すると、システムは要求に従ってファイルを削除できますが、ハンドルが開いているすべてのプロセスは、ハンドルが開いている限り、ファイルのデータに引き続きアクセスできます。
STATUS_CANNOT_DELETEの戻り値は、ファイルが読み取り専用であるか、ファイルにマップされた既存のビューがあることを示します。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ntddk.h (Ntddk.h、Ntifs.h を含む) |