次の方法で共有


SetFileShortNameA 関数 (winbase.h)

指定したファイルの短い名前を設定します。 ファイルは NTFS ファイル システム ボリューム上にある必要があります。

構文

BOOL SetFileShortNameA(
  [in] HANDLE hFile,
  [in] LPCSTR lpShortName
);

パラメーター

[in] hFile

ファイルへのハンドル。 ファイルは、GENERIC_ALL アクセス権または DELETEGENERIC_WRITE、および FILE_FLAG_BACKUP_SEMANTICS ファイル属性を使用して開く必要があります。

[in] lpShortName

ファイルの短い名前を指定する文字列へのポインター。

空の (長さ 0 の) 文字列を指定すると、hFile パラメーターで指定されたファイルに対して短いファイル名が存在する場合は削除されます。 短いファイル名が存在しない場合、関数は何も実行せず、成功を返します。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この動作はサポートされていません。 パラメーターには、1 つ以上の文字の有効な文字列が含まれている必要があります。

戻り値

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

関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError呼び出します。 GetLastError は、この関数に固有の次のいずれかのエラー コードを返す場合があります。

リターン コード 形容
ERROR_ALREADY_EXISTS
指定した短い名前は一意ではありません。
ERROR_INVALID_PARAMETER
指定したファイルが大文字と小文字を区別するモードで開かれているか、指定した短い名前が無効です。

備考

この関数の呼び出し元には、SE_RESTORE_NAME 特権が必要です。 詳細については、「特別な特権を使用した実行 」を参照してください。

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

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

SMB 3.0 では、継続的な可用性機能を備えた共有の短い名前はサポートされていません。 CsvF では短い名前は推奨されません。

手記

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

必要条件

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

関連項目

ファイル管理機能の

GetShortPathName を する