MARK_HANDLE_INFO構造体 (winioctl.h)
指定したファイルまたはディレクトリ、およびその更新シーケンス番号 (USN) 変更ジャーナル レコードと変更に関するデータをマークするために使用される情報を格納します。 これは、FSCTL_MARK_HANDLE コントロール コードによって使用されます。
構文
typedef struct _MARK_HANDLE_INFO {
union {
DWORD UsnSourceInfo;
DWORD CopyNumber;
} DUMMYUNIONNAME;
DWORD UsnSourceInfo;
HANDLE VolumeHandle;
DWORD HandleInfo;
} MARK_HANDLE_INFO, *PMARK_HANDLE_INFO;
メンバー
DUMMYUNIONNAME
DUMMYUNIONNAME.UsnSourceInfo
DUMMYUNIONNAME.CopyNumber
UsnSourceInfo
行われる変更の種類。
この操作では、ファイルまたはディレクトリを作成したアプリケーションの観点から外部から変更されることはありません。
スレッドが新しい USN レコードを書き込むとき、前のレコードのソース情報フラグは、スレッドもそれらのフラグを設定した場合にのみ存在し続けます。 したがって、ソース情報構造を使用すると、アプリケーションは、ウイルス対策フィルターなど、既知のソースによってのみ設定された USN レコードを除外できます。
次の値が定義されています。
値 | 意味 |
---|---|
|
この操作は、オペレーティング システムによって行われたファイルまたはディレクトリの変更に関する情報を提供します。
一般的な用途は、リモート ストレージが外部ストレージからローカル ストレージにデータを移動する場合です。 リモート ストレージは、階層型ストレージ管理ソフトウェアです。 通常、このような移動では、USN レコードに USN_REASON_DATA_OVERWRITE フラグが追加されます。 ただし、データはユーザーの観点から変更されていません。 レコードを保持する USN_RECORD 構造体の SourceInfo メンバーに USN_SOURCE_DATA_MANAGEMENT を記録すると、書き込み操作はアイテムに対して実行されますが、データは変更されていないことを確認できます。 |
|
この操作により、プライベート データ ストリームがファイルまたはディレクトリに追加されます。
たとえば、チェックサム情報を追加するウイルス検出機能があります。 ウイルス検出機能が項目を変更すると、システムによって USN レコードが生成されます。 USN_SOURCE_AUXILIARY_DATA は、変更によってアプリケーション データが変更されなかったことを示します。 |
|
この操作により、レプリケートされたファイルの内容が作成または更新されます。
たとえば、ファイル レプリケーション サービスは、レプリケートされたディレクトリ内のファイルを作成または更新するときに、このフラグを設定します。 |
|
レプリケーションは、クラウドまたはサーバーからクライアント システムで実行されています。 |
VolumeHandle
ファイルまたはディレクトリが存在するボリュームへのボリューム ハンドル。 ボリューム ハンドルの取得の詳細については、「解説」セクションを参照してください。
この操作の特権をチェックするには、このハンドルが必要です。
呼び出し元には 、SE_MANAGE_VOLUME_NAME 特権が必要です。 詳細については、「 特権」を参照してください。
HandleInfo
VolumeHandle メンバーのハンドル値によって識別されるファイルまたはディレクトリに関する追加情報を指定するフラグ。
値 | 意味 |
---|---|
|
ファイルは、ハンドルが閉じられるまでデフラグできないとマークされます。
MARK_HANDLE_PROTECT_CLUSTERSマークされたハンドルが閉じられると、ファイルのクラスターが移動しないという保証はありません。 |
|
ファイルは、ハンドルが閉じられるまでデフラグできないとマークされます。
Windows Server 2003: このフラグは、Windows Server 2003 SP1 までサポートされていません。 Windows XP: このフラグはサポートされていません。 |
|
ファイルは、ハンドルが閉じられるまでデフラグできないとマークされます。
Windows Server 2003: このフラグは、Windows Server 2003 SP1 までサポートされていません。 Windows XP: このフラグはサポートされていません。 |
|
ファイルは、実際のファイルの種類に関係なく、リアルタイムの読み取り動作としてマークされます。 このフラグでマークされたファイルは、 バッファーされていない I/O 用に開く必要があります。
Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: このフラグはサポートされていません。 |
|
以前に MARK_HANDLE_REALTIME フラグを使用してリアルタイム読み取り動作としてマークされたファイルは、このフラグを使用してマークを解除でき、リアルタイムの動作は削除されます。 このフラグでマークされたファイルは、 バッファーされていない I/O 用に開く必要があります。
Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: このフラグはサポートされていません。 |
|
CopyNumber メンバーで指定されたコピー番号を読み取りに使用する必要があることを示します。 このフラグでマークされたファイルは、 バッファーされていない I/O 用に開く必要があります。
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: このフラグは、Windows 8してWindows Server 2012するまでサポートされません。 |
|
以前に MARK_HANDLE_READ_COPY フラグを使用して読み取り/コピー動作としてマークされたファイルは、このフラグを使用してマークを解除でき、読み取り/コピー動作は削除されます。 このフラグでマークされたファイルは、 バッファーされていない I/O 用に開く必要があります。
Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: このフラグは、Windows 8してWindows Server 2012するまでサポートされません。 |
|
キャッシュされていない IO とマップ/キャッシュされたメモリ IO を混在させると、キャッシュされていない IO が発行されると、キャッシュされていない IO の範囲のメモリ マッピングが消去されます。 これらの消去が失敗した場合、システムは通常、破損状態につながる可能性がある呼び出し元に障害を返しません (このため、ドキュメントではこれを行わないと記載されています)。 このフラグは、アプリケーションがこの状況をより適切に処理できるように、指定されたハンドルの消去エラーを返すようにシステムに指示します このフラグは、Windows 8してWindows Server 2012するまでサポートされません。 |
|
NTFS の高度に断片化されたファイルは、複数の MFT レコードを使用して、ファイルのすべてのエクステントを記述します。 この子 MFT レコードの一覧 (FRS レコードとも呼ばれます) は、属性リストと呼ばれる構造体によって制御されます。 属性リストのサイズは 128K に制限されています。 属性リストのサイズが特定のしきい値に達すると、NTFS によってエクステントのバックグラウンド圧縮がトリガーされ、子 FRS レコードの最小数が使用されます。
このフラグは、指定されたファイルに対するこの FRS 圧縮機能を無効にします。
このフラグは、Windows 10されるまでサポートされません。 |
|
USN ジャーナルのページング書き込み時に、指定された UsnSourceInfo 値を設定するように NTFS に指示します。 従来、これはページング書き込みでは実行されませんでした。これは、指定された変更を行ったスレッドがシステムで認識されなかったためです。 これはオーバーライドです。 これは、メモリ マネージャーが使用している FileObject にこの状態が関連付けられている場合にのみ機能します。
このフラグは、Windows 10されるまでサポートされません。 |
|
このフラグを設定すると、このファイルでの書き込みが許可されないことがシステムに通知されます。 アプリケーションが書き込みアクセスのためにファイルを開こうとすると、STATUS_ACCESS_DENIEDで操作が失敗します。
書き込みが見られた場合、操作は STATUS_MARKED_TO_DISALLOW_WRITES で失敗します このフラグは、Windows 10するまでサポートされません。 |
注釈
ボリュームへのハンドルを取得するには、 lpFileName パラメーターを次の形式の文字列に設定して CreateFile を呼び出します。
"\.\X:"
前の文字列では、 X はボリュームが表示されるドライブを識別する文字です。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | winioctl.h (Windows.h を含む) |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示