次の方法で共有


FSCTL_WRITE_USN_CLOSE_RECORD IOCTL (winioctl.h)

入力ファイルの更新シーケンス番号 (USN) 変更ジャーナル ストリームにレコードを生成します。 このレコードには、USN_REASON_CLOSE フラグが設定されます。

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

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

備考

この操作での重複 I/O の影響については、DeviceIoControlの「解説」セクション 参照してください。

FSCTL_WRITE_USN_CLOSE_RECORD を使用して、入力ハンドルの変更履歴にクローズ レコードを強制的に取り込むことができます。 クローズ レコードには、このファイルの現在の USN の理由も含まれます。 出力バッファーは、この操作に関連付けられている USN 値を返します。

詳細については、「変更履歴の作成、変更、および削除の を参照してください。

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

\\.\X:

上記の文字列では、X は、ボリュームが表示されるドライブを識別する文字です。 ボリュームは NTFS 3.0 以降である必要があります。 ボリュームの NTFS バージョンを取得するには、管理者アクセス権を持つコマンド プロンプトを開き、次のコマンドを実行します。

fsutil fsinfo ntfsinfo X:

ここで、X はボリュームのドライブ文字です。

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

テクノロジー サポート
サーバー メッセージ ブロック (SMB) 3.0 プロトコル いいえ
SMB 3.0 透過的フェールオーバー (TFO) いいえ
SMB 3.0 とスケールアウト ファイル共有 (SO) いいえ
クラスター共有ボリューム ファイル システム (CsvFS) はい
 

トランザクション操作の

トランザクションによってロックされているハンドルを使用して FSCTL_WRITE_USN_CLOSE_RECORD が呼び出されると、常に失敗します。

必要条件

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

関連項目

変更履歴

CreateFile の

DeviceIoControl の

重複する を する

ボリューム管理コントロール コード を する