SetFileShortNameA 関数 (winbase.h)

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

構文

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

パラメーター

[in] hFile

ファイルへのハンドル。 ファイルは、GENERIC_ALLアクセス権またはdelete GENERIC_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 Transparent Failover (TFO) いいえ
スケールアウト ファイル共有 (SO) を使う SMB 3.0 いいえ
クラスターの共有ボリューム ファイル システム (CsvFS) はい
Resilient File System (ReFS) いいえ
 

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

注意

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

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー winbase.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

File Management 関数

GetShortPathName