Compartilhar via


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 identificador para o arquivo. O arquivo deve ser aberto com o acesso GENERIC_ALL direito 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 do arquivo curto, se 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á o sucesso.

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 de retorno

Se a função for bem-sucedida, o valor retornado não será 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.

Observações

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

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

Tecnologia Suportado
Protocolo SMB (Bloco de Mensagens do Servidor) 3.0 Sim
TFO (Failover Transparente) do SMB 3.0 Não
SMB 3.0 com Compartilhamentos de Arquivos de Expansão (SO) Não
Sistema de Arquivos de Volume Compartilhado de Cluster (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Não
 

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

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho winbase.h (inclua Windows.h)
biblioteca Kernel32.lib
de DLL Kernel32.dll

Consulte também

Funções de gerenciamento de arquivos

GetShortPathName