Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Recupera o caminho do diretório designado para arquivos temporários, com base nos privilégios do processo de chamada.
Sintaxe
DWORD GetTempPath2A(
[in] DWORD BufferLength,
[out] LPSTR Buffer
);
Parâmetros
[in] BufferLength
O tamanho do buffer de cadeia de caracteres identificado pelo Buffer, em TCHARs.
[out] Buffer
Um ponteiro para um buffer de cadeia de caracteres que recebe a cadeia de caracteres terminada em nulo especificando o caminho de arquivo temporário. A cadeia de caracteres retornada termina com uma barra invertida, por exemplo, "C:\TEMP\".
Valor de retorno
Se a função for bem-sucedida, o valor retornado será o comprimento, em TCHARs, da cadeia de caracteres copiada para Buffer, não incluindo o caractere nulo de encerramento. Se o valor retornado for maior que BufferLength, o valor retornado será o comprimento, em TCHARs, do buffer necessário para manter o caminho.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
O valor de retorno máximo possível é MAX_PATH+1 (261).
Observações
Ao chamar essa função de um processo em execução como SYSTEM, ela retornará o caminho C:\Windows\SystemTemp, que é inacessível para processos não SYSTEM. Para processos não SYSTEM, GetTempPath2 se comportarão da mesma forma que GetTempPath.
Para processos do sistema, a função GetTempPath2 verifica a existência da variável de ambiente SystemTemp. Se essa variável de ambiente estiver definida, ela usará o valor da variável de ambiente como o caminho em vez do caminho fornecido pelo sistema padrão na unidade C:.
Nota
O motivo GetTempPath2 existe e o padrão para retornar C:\Windows\SystemTemp é porque esse diretório é ACL'd com as permissões corretas para evitar problemas comuns de redirecionamento de caminho. Por motivos de segurança, defina apenas a variável de ambiente SystemTemp para um diretório com permissões que permitem apenas que um processo SYSTEM/administrador a acesse.
Para processos que não são do sistema, a função GetTempPath2 verifica a existência de variáveis de ambiente na seguinte ordem e usa o primeiro caminho encontrado:
- O caminho especificado pela variável de ambiente TMP.
- O caminho especificado pela variável de ambiente TEMP.
- O caminho especificado pela variável de ambiente USERPROFILE.
- O diretório do Windows.
Observe que a função não verifica se o caminho existe, nem testa para ver se o processo atual tem algum tipo de direito de acesso ao caminho. A função GetTempPath2 retorna a cadeia de caracteres formatada corretamente que especifica o caminho totalmente qualificado com base na ordem de pesquisa da variável de ambiente, conforme especificado anteriormente. O aplicativo deve verificar a existência do caminho e os direitos de acesso adequados ao caminho antes de qualquer uso para operações de E/S de arquivo.
comportamento de vínculo simbólico: Se o caminho apontar para um vínculo simbólico, o nome do caminho temporário manterá quaisquer vínculos simbólicos.
No Windows 8 e no Windows Server 2012, essa função é compatível com as seguintes tecnologias:
| Tecnologia | Suportado |
|---|---|
| Protocolo SMB (Bloco de Mensagens do Servidor) 3.0 | Sim |
| TFO (Failover Transparente) do SMB 3.0 | Sim |
| SMB 3.0 com Compartilhamentos de Arquivos de Expansão (SO) | Sim |
| Sistema de Arquivos de Volume Compartilhado de Cluster (CsvFS) | Sim |
| ReFS (Sistema de Arquivos Resiliente) | Sim |
Nota
Quando as atualizações do Windows lançadas em março de 2025 e posteriores forem instaladas, essa API terá suporte no Windows 10, versão 1607 (Build 14393.7876) e versões posteriores e posteriores e do Windows Server 2016 Build 14393.7876 e versões posteriores. Consulte KB5053594 para obter mais informações.
Exemplos
Para obter um exemplo, consulte Criando e usando um arquivo temporário.
Nota
O cabeçalho fileapi.h define GetTempPath2 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 11 Build 22000 |
| servidor com suporte mínimo | Windows Server 2022 Build 20348 |
| cabeçalho | fileapi.h (inclua Windows.h) |
| biblioteca | Kernel32.lib |
| de DLL |
Kernel32.dll |