次の方法で共有


GetFileAttributesTransactedA 関数 (winbase.h)

[Microsoft では、開発者がアプリケーションのニーズを達成するために代替手段を利用することを強くお勧めします。 TxF が開発された多くのシナリオは、よりシンプルで簡単に利用できる手法によって実現できます。 さらに、将来のバージョンの Microsoft Windows では TxF を使用できない可能性があります。 詳細と TxF の代替方法については、「トランザクション NTFSを使用する の代替方法」を参照してください。

指定したファイルまたはディレクトリのファイル システム属性をトランザクション操作として取得します。

構文

BOOL GetFileAttributesTransactedA(
  [in]  LPCSTR                 lpFileName,
  [in]  GET_FILEEX_INFO_LEVELS fInfoLevelId,
  [out] LPVOID                 lpFileInformation,
  [in]  HANDLE                 hTransaction
);

パラメーター

[in] lpFileName

ファイルまたはディレクトリの名前。

既定では、名前はMAX_PATH文字に制限されています。 この制限を 32,767 文字のワイド文字に拡張するには、パスの先頭に "\\?\" を付けます。 詳細については、「ファイル、パス、および名前空間の名前付けする」を参照してください。

先端

Windows 10 バージョン 1607 以降では、事前に "\\?\" なしでMAX_PATHの制限を削除することをオプトインできます。 詳細については、「名前付けファイル、パス、および名前空間の」の「パスの最大長制限」セクションを参照してください。

ファイルまたはディレクトリは、ローカル コンピューター上に存在する必要があります。それ以外の場合、関数は失敗し、最後のエラー コードは ERROR_TRANSACTIONS_UNSUPPORTED_REMOTEに設定されます。

[in] fInfoLevelId

取得する属性情報のレベル。

このパラメーターには、GET_FILEEX_INFO_LEVELS 列挙体の次の値を指定できます。

価値 意味
GetFileExInfoStandard を する
lpFileInformation パラメーターは、WIN32_FILE_ATTRIBUTE_DATA 構造体です。

[out] lpFileInformation

属性情報を受け取るバッファーへのポインター。

このバッファーに格納される属性情報の種類は、fInfoLevelId値によって決まります。 fInfoLevelId パラメーターが GetFileExInfoStandard 場合、このパラメーターは WIN32_FILE_ATTRIBUTE_DATA 構造体を指します

[in] hTransaction

トランザクションのハンドル。 このハンドルは、CreateTransaction 関数によって返されます。

戻り値

関数が成功した場合、戻り値は 0 以外です。

関数が失敗した場合、戻り値はゼロ (0) になります。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

マウントされたフォルダー GetFileAttributesTransacted が呼び出されると、マウントされたフォルダーがディレクトリに関連付けられているボリューム内のルート ディレクトリの属性ではなく、ディレクトリの属性が返されます。 関連付けられたボリュームのファイル属性を取得するには、GetVolumeNameForVolumeMountPoint 呼び出して、関連付けられているボリュームの名前を取得します。 次に、結果の名前を GetFileAttributesTransacted呼び出しで使用します。 結果は、関連付けられているボリューム上のルート ディレクトリの属性です。

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

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

SMB 3.0 は TxF をサポートしていません。

シンボリック リンク: パスがシンボリック リンクを指している場合、関数はシンボリック リンクの属性を返します。

トランザクション操作の

トランザクションでファイルが変更のために開かれている場合、トランザクションがコミットされるまで、他のスレッドはファイルを開いて変更できません。 逆に、トランザクションの外部でファイルを変更するために開いている場合、トランザクションされていないハンドルが閉じられるまで、トランザクションスレッドはファイルを開いて変更できません。 トランザクションされていないスレッドに、ファイルを変更するためのハンドルが開かれている場合、そのファイルの GetFileAttributesTransacted を 呼び出すと、ERROR_TRANSACTIONAL_CONFLICT エラーで失敗します。

手記

winbase.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetFileAttributesTransacted を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2008 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winbase.h (Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

DeviceIoControl の

ファイル属性定数

ファイル管理機能の

FindFirstFileTransacted の

FindNextFile の

GET_FILEEX_INFO_LEVELS

SetFileAttributesTransacted の

シンボリック リンク の

トランザクション NTFS の