ターゲット ボリュームの更新シーケンス番号 (USN) 変更ジャーナル ストリームの範囲追跡を有効にするか、既に有効になっている範囲追跡パラメーターを変更します。
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to volume
FSCTL_USN_TRACK_MODIFIED_RANGES, // dwIoControlCode
(LPDWORD) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
(LPDWORD) lpOutBuffer, // lpOutbuffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
備考
この操作での重複 I/O の影響の詳細については、 DeviceIoControl の解説を参照してください。
FSCTL_USN_TRACK_MODIFIED_RANGES を使用して、ボリュームで初めて範囲追跡を有効にすることができます。 範囲の追跡を有効にすると、そのボリュームの状態とパラメーターが永続化されます (再起動時に、永続化されたパラメーターから範囲の追跡が初期化されます)。
FSCTL_USN_TRACK_MODIFIED_RANGES を使用して、既存の変更ジャーナル ストリーム範囲トラック パラメーターを変更することもできます。 範囲追跡が既に存在する場合は、 FSCTL_USN_TRACK_MODIFIED_RANGESUSN_TRACK_MODIFIED_RANGES構造体で 指定されたパラメーターに設定します。 チャンク サイズまたはファイル サイズのしきい値は、以前の値からしか下げできません。 有効にすると、履歴が削除されない限り、範囲追跡機能を無効にすることはできません。
ボリュームへのハンドルを取得するには、 lpFileName パラメーターを次の形式の文字列に設定して CreateFile を呼び出します。 \\.\X:
上記の文字列では、X はボリュームが表示されるドライブを識別する文字です。 ボリュームは NTFS 3.0 以降である必要があります。 ボリュームの NTFS バージョンを取得するには、管理者アクセス権を持つコマンド プロンプトを開き、次のコマンドを実行します ( X はボリュームのドライブ文字です)。 fsutil fsinfo ntfsinfo X:
Irp->IoStatus.Status は、要求が成功した場合にSTATUS_SUCCESSに設定されます。 それ以外の場合、状態は NTSTATUS コードとして適切なエラー条件に設定されます。 詳細については、「 NTSTATUS 値」を参照してください。
必要条件
| 要件 | 価値 |
|---|---|
| サポートされる最小クライアント | Windows 8.1 [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2012 R2 [デスクトップ アプリのみ] |
| Header | winioctl.h (Windows.h を含む) |