次の方法で共有


GetFullPathNameTransactedA 関数 (winbase.h)

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

トランザクション操作として、指定したファイルの完全なパスとファイル名を取得します。

トランザクションなしでこの操作を実行するには、GetFullPathName 関数を使用します。

ファイル名とパス名の詳細については、「ファイル名、パス、および名前空間のを参照してください。

構文

DWORD GetFullPathNameTransactedA(
  [in]  LPCSTR lpFileName,
  [in]  DWORD  nBufferLength,
  [out] LPSTR  lpBuffer,
  [out] LPSTR  *lpFilePart,
  [in]  HANDLE hTransaction
);

パラメーター

[in] lpFileName

ファイルの名前。

この文字列では、短い (8.3 形式) または長いファイル名を使用できます。 この文字列には、共有名またはボリューム名を指定できます。

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

[in] nBufferLength

ドライブとパスの null で終わる文字列を受け取るバッファーのサイズ (TCHAR)。

[out] lpBuffer

ドライブとパスの null で終わる文字列を受け取るバッファーへのポインター。

[out] lpFilePart

パス内の最終的なファイル名コンポーネントのアドレス (lpBuffer内) を受け取るバッファーへのポインター。 この情報 受け取る必要がない場合は、NULL を指定します。

lpBuffer ファイルではなくディレクトリを指している場合、lpFilePart は 0 (ゼロ) を受け取ります。

[in] hTransaction

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

戻り値

関数が成功した場合、戻り値は、終端の null 文字を含まない、lpBufferにコピーされた文字列の長さ (TCHAR) です。

lpBuffer バッファーが小さすぎてパスを格納できない場合、戻り値は、パスと終端の null 文字を保持するために必要なバッファーのサイズ (TCHAR) です。

その他の理由で関数が失敗した場合、戻り値は 0 になります。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

GetFullPathNameTransacted は、現在のドライブとディレクトリの名前を指定したファイル名とマージして、指定したファイルの完全なパスとファイル名を決定します。 また、完全パスとファイル名のファイル名部分のアドレスも計算されます。 この関数は、結果のパスとファイル名が有効であること、または関連するボリューム上の既存のファイルが表示されることを確認しません。

共有名とボリューム名は、lpFileName有効な入力です。 たとえば、次の一覧は、test-2 がリモート コンピューターで、U: がネットワーク マップ ドライブである場合に返されるパスとファイル名を識別します。

  • "\\test-2\q$\lh" を指定すると、返されるパスは "\\test-2\q$\lh" になります。
  • "\\?\UNC\test-2\q$\lh" を指定すると、返されるパスは "\\?\UNC\test-2\q$\lh" になります。
  • "U:" を指定すると、返されるパスは "U:\" になります。
getFullPathNameTransacted は、指定されたファイル名を lpFileName変換しません。 指定したファイル名が存在する場合は、GetLongPathNameTransacted、GetLongPathName、または GetShortPathName を して、それぞれ長いパス名または短いパス名に変換できます。

戻り値が nBufferLengthで指定 値より大きい場合は、パスを保持するのに十分な大きさのバッファーを使用して関数を再度呼び出すことができます。 この場合の例と、動的割り当てに長さ 0 のバッファーを使用する場合は、「コード例」セクションを参照してください。

注意 この場合の戻り値は終端の null 文字を含む長さですが、成功した場合の戻り値にはカウント内の終端の null 文字は含まれません。
 
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 バージョンを自動的に選択するエイリアスとして GetFullPathNameTransacted を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

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

関連項目

ファイル管理機能の

GetFullPathName の

GetLongPathNameTransacted の

GetShortPathName を する

GetTempPath を する

SearchPath

トランザクション NTFS の