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 システムが on-close 状態を設定またはクリアするかどうかを指定します。
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 の戻り値は、ファイルが読み取り専用であるか、ファイルにマップされた既存のビューがあることを示します。

要件

要件
Header ntddk.h (Ntddk.h、Ntifs.h を含む)

こちらもご覧ください

ZwClose

ZwSetInformationFile