FSCTL_ENUM_USN_DATA IOCTL (winioctl.h)

マスター ファイル テーブル (MFT) レコードを取得するために、指定した 2 つの境界の間の更新シーケンス番号 (USN) データを列挙します。

この操作を実行するには、次のパラメーターを使用して DeviceIoControl 関数を呼び出します。

C++
BOOL 
WINAPI 
DeviceIoControl( (HANDLE) hDevice,              // handle to volume
                 (DWORD) FSCTL_ENUM_USN_DATA,   // dwIoControlCode(LPVOID) lpInBuffer,           // input buffer
                 (DWORD) nInBufferSize,         // size of input buffer
                 (LPVOID) lpOutBuffer,          // output buffer
                 (DWORD) nOutBufferSize,        // size of output buffer
                 (LPDWORD) lpBytesReturned,     // number of bytes returned
                 (LPOVERLAPPED) lpOverlapped ); // OVERLAPPED structure);

解説

この操作に対する重複した I/O の影響については、 DeviceIoControl トピックの「解説」セクションを参照してください。

ボリューム上のファイルを列挙するには、 FSCTL_ENUM_USN_DATA 操作を 1 回以上使用します。 最初の呼び出しで、MFT_ENUM_DATA構造体の StartFileReferenceNumber メンバーの開始点を に(DWORDLONG)0設定します。 FSCTL_ENUM_USN_DATA の各呼び出しでは、出力バッファーの最初のエントリとして後続の呼び出しの開始点を取得します。

比較してボリュームに対する最近の変更を特定するには、 FSCTL_READ_USN_JOURNAL コントロール コードを使用します。

ボリュームへのハンドルを取得するには、 lpFileName パラメーターを次の形式の文字列に設定して CreateFile を呼び出します。

\\.\X:

前の文字列の X は、ボリュームが表示されるドライブを識別する文字です。 ボリュームは NTFS である必要があります。

Windows 8とWindows Server 2012では、このコードは次のテクノロジでサポートされています。

テクノロジ サポートされています
サーバー メッセージ ブロック (SMB) 3.0 プロトコル いいえ
SMB 3.0 Transparent Failover (TFO) いいえ
スケールアウト ファイル共有を含む SMB 3.0 (SO) いいえ
クラスター共有ボリューム ファイル システム (CsvFS) はい

要件

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

関連項目

CreateFile

DeviceIoControl

FSCTL_READ_USN_JOURNAL

GetOverlappedResult

MFT_ENUM_DATA

オーバー ラップ

USN_RECORD

ボリューム管理の制御コード