Compartilhar via


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 CreateTransaction.

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:\"
GetFullPathNameTransacted não converte o nome do arquivo especificado, lpFileName. Se o nome do arquivo especificado existir, você poderá usar GetLongPathNameTransacted, GetLongPathNameou GetShortPathName para converter em nomes de caminho longo ou curto, respectivamente.

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.

Observação Embora o valor retornado nesse caso seja um comprimento que inclui o caractere nulo de encerramento, o valor retornado no êxito não inclui o caractere nulo de terminação na contagem.
 
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 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

GetFullPathName

GetLongPathNameTransacted

GetShortPathName

GetTempPath

SearchPath

NTFS transacional