Função GetFullPathNameTransactedW (winbase.h)
[A Microsoft recomenda fortemente que os desenvolvedores utilizem meios alternativos para alcançar as necessidades do aplicativo. Muitos cenários para os quais o TxF foi desenvolvido podem ser obtidos por meio de técnicas mais simples e prontamente disponíveis. Além disso, o TxF pode não estar disponível em versões futuras do Microsoft Windows. Para obter mais informações e alternativas ao TxF, consulte Alternativas para usar o NTFS transacional.]
Recupera o caminho completo e o nome do arquivo especificado como uma operação transacionada.
Para executar essa operação sem transações, use a função GetFullPathName.
Para obter mais informações sobre nomes de arquivo e caminho, consulte Nomes de Arquivo, Caminhos e Namespaces.
Sintaxe
DWORD GetFullPathNameTransactedW(
[in] LPCWSTR lpFileName,
[in] DWORD nBufferLength,
[out] LPWSTR lpBuffer,
[out] LPWSTR *lpFilePart,
[in] HANDLE hTransaction
);
Parâmetros
[in] lpFileName
O nome do arquivo.
Essa cadeia de caracteres pode usar nomes curtos (o formulário 8.3) ou longos. Essa cadeia de caracteres pode ser um nome de compartilhamento ou volume.
O arquivo deve residir no computador local; caso contrário, a função falhará e o último código de erro será definido como ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.
[in] nBufferLength
O tamanho do buffer para receber a cadeia de caracteres terminada em nulo para a unidade e o caminho, em TCHARs.
[out] lpBuffer
Um ponteiro para um buffer que recebe a cadeia de caracteres terminada em nulo para a unidade e o caminho.
[out] lpFilePart
Um ponteiro para um buffer que recebe o endereço (em lpBuffer) do componente de nome de arquivo final no caminho. Especifique NULL se você não precisar receber essas informações.
Se lpBuffer apontar para um diretório e não um arquivo, lpFilePart receberá 0 (zero).
[in] hTransaction
Um identificador para a transação. Esse identificador é retornado pela função
Valor de retorno
Se a função for bem-sucedida, o valor retornado será o comprimento, em TCHARs, da cadeia de caracteres copiada para lpBuffer, sem incluir o caractere nulo de terminação.
Se o lpBuffer buffer for muito pequeno para conter o caminho, o valor retornado será o tamanho, em TCHARs, do buffer necessário para manter o caminho e o caractere nulo de terminação.
Se a função falhar por qualquer outro motivo, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Observações
GetFullPathNameTransacted mescla o nome da unidade e do diretório atual com um nome de arquivo especificado para determinar o caminho completo e o nome do arquivo de um arquivo especificado. Ele também calcula o endereço da parte do nome do arquivo do caminho completo e do nome do arquivo. Essa função não verifica se o caminho resultante e o nome do arquivo são válidos ou se eles veem um arquivo existente no volume associado.
Os nomes de compartilhamento e volume são entradas válidas para lpFileName. Por exemplo, a lista a seguir identifica o caminho retornado e os nomes de arquivo se test-2 for um computador remoto e U: é uma unidade mapeada de rede:
- Se você especificar "\\test-2\q$\lh" o caminho retornado será "\\test-2\q$\lh"
- Se você especificar "\\?\UNC\test-2\q$\lh" o caminho retornado será "\\?\UNC\test-2\q$\lh"
- Se você especificar "U:" o caminho retornado será "U:\"
Se o valor retornado for maior que o valor especificado em nBufferLength, você poderá chamar a função novamente com um buffer grande o suficiente para manter o caminho. Para obter um exemplo desse caso, bem como usar o buffer de comprimento zero para alocação dinâmica, consulte a seção Código de Exemplo.
Tecnologia | Suportado |
---|---|
Protocolo SMB (Bloco de Mensagens do Servidor) 3.0 | Não |
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) | Não |
ReFS (Sistema de Arquivos Resiliente) | Não |
O SMB 3.0 não dá suporte ao TxF.
Nota
O cabeçalho winbase.h define GetFullPathNameTransacted 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 Vista [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows Server 2008 [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