Funzione GetFullPathNameTransactedA (winbase.h)
[Microsoft consiglia vivamente agli sviluppatori di usare mezzi alternativi per raggiungere le esigenze dell'applicazione. Molti scenari sviluppati da TxF possono essere ottenuti tramite tecniche più semplici e più leggibili. Inoltre, TxF potrebbe non essere disponibile nelle versioni future di Microsoft Windows. Per altre informazioni e alternative a TxF, vedere Alternative all'uso di NTFS transazionale.
Recupera il percorso completo e il nome file del file specificato come operazione transazionata.
Per eseguire questa operazione senza transazioni, usare la funzione GetFullPathName .
Per altre informazioni sui nomi di file e percorso, vedere Nomi file, percorsi e spazi dei nomi.
Sintassi
DWORD GetFullPathNameTransactedA(
[in] LPCSTR lpFileName,
[in] DWORD nBufferLength,
[out] LPSTR lpBuffer,
[out] LPSTR *lpFilePart,
[in] HANDLE hTransaction
);
Parametri
[in] lpFileName
Nome del file.
Questa stringa può usare i nomi di file brevi (8.3) o lunghi. Questa stringa può essere un nome di condivisione o volume.
Il file deve risiedere nel computer locale; in caso contrario, la funzione ha esito negativo e l'ultimo codice di errore è impostato su ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.
[in] nBufferLength
Dimensioni del buffer per ricevere la stringa con terminazione null per l'unità e il percorso, in TCHARs.
[out] lpBuffer
Puntatore a un buffer che riceve la stringa con terminazione null per l'unità e il percorso.
[out] lpFilePart
Puntatore a un buffer che riceve l'indirizzo (in lpBuffer) del componente nome file finale nel percorso. Specificare NULL se non è necessario ricevere queste informazioni.
Se lpBuffer punta a una directory e non a un file, lpFilePart riceve 0 (zero).
[in] hTransaction
Handle per la transazione. Questo handle viene restituito dalla funzione CreateTransaction .
Valore restituito
Se la funzione ha esito positivo, il valore restituito è la lunghezza, in TCHARs, della stringa copiata in lpBuffer, non incluso il carattere Null terminante.
Se il buffer lpBuffer è troppo piccolo per contenere il percorso, il valore restituito è la dimensione, in TCHARs, del buffer necessario per contenere il percorso e il carattere null di terminazione.
Se la funzione ha esito negativo per qualsiasi altro motivo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
GetFullPathNameTransacted unisce il nome dell'unità corrente e della directory con un nome file specificato per determinare il percorso completo e il nome file di un file specificato. Calcola anche l'indirizzo della parte del nome file del percorso completo e del nome file. Questa funzione non verifica che il percorso e il nome file risultanti siano validi oppure che visualizzino un file esistente nel volume associato.
I nomi di condivisione e volume sono input validi per lpFileName. Ad esempio, l'elenco seguente identità il percorso restituito e i nomi di file se test-2 è un computer remoto e U: è un'unità mappata di rete:
- Se si specifica "\\test-2\q$\lh" il percorso restituito è "\\test-2\q$\lh"
- Se si specifica "\\?\UNC\test-2\q$\lh" il percorso restituito è "\\?\UNC\test-2\q$\lh"
- Se si specifica "U:" il percorso restituito è "U:\"
Se il valore restituito è maggiore del valore specificato in nBufferLength, è possibile chiamare di nuovo la funzione con un buffer di grandi dimensioni sufficiente per contenere il percorso. Per un esempio di questo caso e l'uso di un buffer di lunghezza zero per l'allocazione dinamica, vedere la sezione Codice di esempio.
Tecnologia | Supportato |
---|---|
Protocollo SMB (Server Message Block) 3.0 | No |
Failover trasparente SMB 3.0 (TFO) | No |
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) | No |
File system del volume condiviso del cluster (CsvFS) | No |
File system resiliente (ReFS) | No |
SMB 3.0 non supporta TxF.
Nota
L'intestazione winbase.h definisce GetFullPathNameTransacted come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winbase.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |