次の方法で共有


MARK_HANDLE_INFO32 構造体 (winioctl.h)

指定したファイルまたはディレクトリ、およびその更新シーケンス番号 (USN) 変更履歴レコードに変更に関するデータをマークするために使用される情報が含まれます。 これは 64 ビット コードに対してのみ定義され、32 ビット コードによって送信 MARK_HANDLE_INFO構造体 を解釈するために存在します。 これは、 FSCTL_MARK_HANDLE IOCTL 制御コードによって使用されます。

構文

typedef struct _MARK_HANDLE_INFO32 {
  union {
    DWORD UsnSourceInfo;
    DWORD CopyNumber;
  } DUMMYUNIONNAME;
  DWORD  UsnSourceInfo;
  UINT32 VolumeHandle;
  DWORD  HandleInfo;
} MARK_HANDLE_INFO32, *PMARK_HANDLE_INFO32;

メンバー

DUMMYUNIONNAME

DUMMYUNIONNAME.UsnSourceInfo

DUMMYUNIONNAME.CopyNumber

UsnSourceInfo

行われる変更の種類。

この操作では、ファイルまたはディレクトリを作成したアプリケーションの観点から外部から変更されることはありません。

スレッドが新しい USN レコードを書き込むとき、前のレコードのソース情報フラグは、スレッドもそれらのフラグを設定した場合にのみ存在し続けます。 したがって、ソース情報構造を使用すると、アプリケーションは、ウイルス対策フィルターなど、既知のソースによってのみ設定された USN レコードを除外できます。

次の値が定義されています。

意味
USN_SOURCE_DATA_MANAGEMENT
0x00000001
この操作は、オペレーティング システムによって行われたファイルまたはディレクトリの変更に関する情報を提供します。

一般的な用途は、リモート ストレージが外部ストレージからローカル ストレージにデータを移動する場合です。 リモート ストレージは、階層型ストレージ管理ソフトウェアです。 通常、このような移動では、USN レコードに USN_REASON_DATA_OVERWRITE フラグが追加されます。 ただし、データはユーザーの観点から変更されていません。 レコードを保持する USN_RECORD 構造体の SourceInfo メンバーに USN_SOURCE_DATA_MANAGEMENT を記録すると、書き込み操作はアイテムに対して実行されますが、データは変更されていないことを確認できます。

USN_SOURCE_AUXILIARY_DATA
0x00000002
この操作により、プライベート データ ストリームがファイルまたはディレクトリに追加されます。

たとえば、チェックサム情報を追加するウイルス検出機能があります。 ウイルス検出機能が項目を変更すると、システムによって USN レコードが生成されます。 USN_SOURCE_AUXILIARY_DATA は、変更によってアプリケーション データが変更されなかったことを示します。

USN_SOURCE_REPLICATION_MANAGEMENT
0x00000004
この操作により、レプリケートされたファイルの内容が作成または更新されます。

たとえば、ファイル レプリケーション サービスは、レプリケートされたディレクトリ内のファイルを作成または更新するときに、このフラグを設定します。

VolumeHandle

ファイルまたはディレクトリが存在するボリュームへのボリューム ハンドル。 ボリューム ハンドルの取得の詳細については、「解説」セクションを参照してください。

この操作の特権を確認するには、このハンドルが必要です。

呼び出し元には 、SE_MANAGE_VOLUME_NAME 特権が必要です。 詳細については、「 特権」を参照してください。

HandleInfo

VolumeHandle メンバーのハンドル値によって識別されるファイルまたはディレクトリに関する追加情報を指定するフラグ。

意味
MARK_HANDLE_PROTECT_CLUSTERS
0x00000001
ファイルは、ハンドルが閉じられるまでデフラグできないとマークされます。
MARK_HANDLE_TXF_SYSTEM_LOG
0x00000004
ファイルは、ハンドルが閉じられるまでデフラグできないとマークされます。
MARK_HANDLE_NOT_TXF_SYSTEM_LOG
0x00000008
ファイルは、ハンドルが閉じられるまでデフラグできないとマークされます。
MARK_HANDLE_REALTIME
0x00000020
ファイルは、実際のファイルの種類に関係なく、リアルタイムの読み取り動作としてマークされます。 このフラグでマークされたファイルは、 バッファーされていない I/O 用に開く必要があります。
MARK_HANDLE_NOT_REALTIME
0x00000040
以前に MARK_HANDLE_REALTIME フラグを使用してリアルタイム読み取り動作としてマークされたファイルは、このフラグを使用してマークを解除でき、リアルタイムの動作は削除されます。 このフラグでマークされたファイルは、 バッファーされていない I/O 用に開く必要があります。

要件

   
サポートされている最小のクライアント Windows 8 (64 ビットのみ) [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
ヘッダー winioctl.h (Windows.h を含む)