Função SetFileShortNameA (winbase.h)

Define o nome curto do arquivo especificado. O arquivo deve estar em um volume do sistema de arquivos NTFS.

Sintaxe

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

Parâmetros

[in] hFile

Um manipulador para o arquivo. O arquivo deve ser aberto com o direito de acesso GENERIC_ALL ou GENERIC_WRITE|DELETE e com o atributo de arquivo FILE_FLAG_BACKUP_SEMANTICS .

[in] lpShortName

Um ponteiro para uma cadeia de caracteres que especifica o nome curto do arquivo.

Especificar uma cadeia de caracteres vazia (de comprimento zero) removerá o nome de arquivo curto, se ele existir para o arquivo especificado pelo parâmetro hFile . Se um nome de arquivo curto não existir, a função não fará nada e retornará êxito.

Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse comportamento. O parâmetro deve conter uma cadeia de caracteres válida de um ou mais caracteres.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError. GetLastError pode retornar um dos seguintes códigos de erro específicos para essa função.

Código de retorno Descrição
ERROR_ALREADY_EXISTS
O nome curto especificado não é exclusivo.
ERROR_INVALID_PARAMETER
O arquivo especificado foi aberto no modo que diferencia maiúsculas de minúsculas ou o nome curto especificado é inválido.

Comentários

O chamador dessa função deve ter o privilégio SE_RESTORE_NAME . Para obter mais informações, confira Executar com privilégios especiais.

No Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 3.0 Sim
TFO (Failover transparente) do SMB 3.0 No
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) No
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) No
 

O SMB 3.0 não dá suporte a nomes curtos em compartilhamentos com funcionalidade de disponibilidade contínua. Nomes curtos não são recomendados em CsvFs.

Observação

O cabeçalho winbase.h define SetFileShortName como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winbase.h (incluir Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Funções de gerenciamento de arquivos

GetShortPathName