IRP_MJ_SET_INFORMATION 共用体の FLT_PARAMETERS
操作における FLT_IO_PARAMETER_BLOCK 構造体の MajorFunction フィールドが IRP_MJ_SET_INFORMATION であるときに使用される共用体コンポーネント。
構文
typedef union _FLT_PARAMETERS {
... ;
struct {
ULONG Length;
FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass;
PFILE_OBJECT ParentOfTarget;
union {
struct {
BOOLEAN ReplaceIfExists;
BOOLEAN AdvanceOnly;
};
ULONG ClusterCount;
HANDLE DeleteHandle;
};
PVOID InfoBuffer;
} SetFileInformation;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
メンバー
SetFileInformation: 次のメンバーが含まれる構造体。
Length: InfoBuffer のバッファーの長さ (バイト単位)。
FileInformationClass: ファイルに設定する情報の種類。 次のいずれか:
Value 意味 FileAllocationInformation ファイルの FILE_ALLOCATION_INFORMATION を設定します。 FileBasicInformation ファイルの FILE_BASIC_INFORMATION を設定します。 FileDispositionInformation ファイルの FILE_DISPOSITION_INFORMATION を設定します。 FileEndOfFileInformation ファイルの FILE_END_OF_FILE_INFORMATION を設定します。 FileLinkInformation ファイルの FILE_LINK_INFORMATION を設定します。 FilePositionInformation ファイルの FILE_POSITION_INFORMATION を設定します。 FileRenameInformation ファイルの FILE_RENAME_INFORMATION を設定します。 FileValidDataLengthInformation ファイルの FILE_VALID_DATA_LENGTH_INFORMATION を設定します。 ParentOfTarget: 名前の変更またはリンク操作の場合。 InfoBuffer->FileName に完全修飾ファイル名が含まれている場合、または InfoBuffer->RootDirectory が NULL 以外の場合、このメンバーは、操作のターゲットであるファイルの親ディレクトリのファイル オブジェクト ポインターです。 それ以外の場合は、NULL となります。
( 名前のない構造体)
次のメンバーが含まれる構造体。ReplaceIfExists: 名前の変更またはリンク操作の場合。 同じ名前で既に存在するファイルを指定したファイルに置き換えることを指定するには、TRUE に設定します。 指定した名前のファイルが既に存在する場合に名前の変更またはリンク操作が失敗する場合は、FALSE に設定します。
AdvanceOnly: ファイルの終わり操作のフラグ。 これにより、FileInformationClass == FileEndOfFileInformation の場合に、EndOfFile メンバー FILE_END_OF_FILE_INFORMATION 構造体の使用が決定されます。 TRUE の場合、ファイルの新しい有効なデータ長は、現在の有効なデータ長が増加する場合にのみ EndOfFile から設定されます。 FALSE の場合、EndOfFile から新しいファイル サイズが設定されます。
ClusterCount: システム用に予約されています。 使用しないでください。
DeleteHandle: システム用に予約されています。 使用しないでください。
InfoBuffer: 設定するファイル情報を含む入力バッファーへのポインター。
解説
IRP_MJ_SET_INFORMATION 操作における FLT_PARAMETERS 構造体には、コールバックデータ (FLT_CALLBACK_DATA) 構造体が表す情報設定操作用のパラメーターが含まれます。 これは、FLT_IO_PARAMETER_BLOCK 構造体に含まれています。
IRP_MJ_SET_INFORMATION は IRP ベースの操作です。
AdvanceOnly メンバーは、ディスク上の現在の有効なデータ長を EndOfFile の新しい有効なデータ長に進めるようにファイル システムに通知するために、キャッシュ マネージャーによって TRUE に設定されます。 AdvanceOnly が FALSE の場合、EndOfFile メンバーの新しいファイル サイズは、現在のファイル サイズより大きくすることも小さくすることもできます。
要件
要件タイプ | 要件 |
---|---|
ヘッダー | Fltkernel.h (Fltkernel.h を含む) |