次の方法で共有


GetCompressedFileSizeTransactedA 関数 (winbase.h)

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

指定したファイルをトランザクション操作として格納するために使用されるディスク ストレージの実際のバイト数を取得します。 ファイルが圧縮をサポートするボリューム上にあり、ファイルが圧縮されている場合、取得される値は指定されたファイルの圧縮サイズです。 ファイルがスパース ファイルをサポートするボリューム上にあり、ファイルがスパース ファイルである場合、取得される値は指定されたファイルのスパース サイズです。

構文

DWORD GetCompressedFileSizeTransactedA(
  [in]            LPCSTR  lpFileName,
  [out, optional] LPDWORD lpFileSizeHigh,
  [in]            HANDLE  hTransaction
);

パラメーター

[in] lpFileName

ファイルの名前。

パイプや通信デバイスなど、接続されていないデバイス上のファイルの名前は指定しないでください。ファイル サイズには意味がありません。

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

[out, optional] lpFileSizeHigh

圧縮ファイル サイズの高次 DWORD を受け取る変数へのポインター。 関数の戻り値は、圧縮ファイル サイズの下位 DWORD です。

このパラメーターは、圧縮ファイル サイズの高次 DWORD が不要な場合は、NULL を できます。 サイズが 4 ギガバイト未満のファイルでは、DWORDの高次 は必要ありません。

[in] hTransaction

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

戻り値

関数が成功した場合、戻り値は、指定されたファイルの格納に使用されるディスク ストレージの実際のバイト数の下位 DWORD であり、lpFileSizeHigh が非NULLの場合、関数は、その実際の値の高次 DWORD を、そのパラメーターが指す DWORD に格納します。 これは圧縮ファイルの圧縮ファイル サイズであり、圧縮されていないファイルの実際のファイル サイズです。

関数が失敗し、lpFileSizeHigh が NULL場合、戻り値は INVALID_FILE_SIZE。 拡張エラー情報を取得するには、GetLastError呼び出します。

戻り値が INVALID_FILE_SIZE で、lpFileSizeHigh NULL以外の場合、アプリケーションは GetLastError 呼び出して、関数が成功した (値が NO_ERROR) か失敗したか (値が NO_ERROR以外) かどうかを判断する必要があります。

備考

アプリケーションは、GetVolumeInformation呼び出し、その関数の lpFileSystemFlags パラメーターによって指される DWORD 値の FS_VOL_IS_COMPRESSED フラグの状態を確認することによって、ボリュームが圧縮されているかどうかを判断できます。

圧縮またはスパース ファイルをサポートするボリュームにファイルが配置されていない場合、またはファイルが圧縮されていない場合、またはスパース ファイルでない場合、取得される値は実際のファイル サイズであり、GetFileSize呼び出しによって返される値と同じです。

シンボリック リンク: パスがシンボリック リンクを指している場合、関数はターゲットのファイル サイズを返します。

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

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

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

手記

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

必要条件

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

関連項目

ファイルの圧縮と展開の

ファイル管理機能の

GetFileSize を する

GetVolumeInformation の

シンボリック リンク の

トランザクション管理の