Funzione GetFullPathNameTransactedA (winbase.h)
[Microsoft consiglia vivamente agli sviluppatori di usare mezzi alternativi per soddisfare le esigenze dell'applicazione. Molti scenari per cui è stato sviluppato TxF possono essere ottenuti tramite tecniche più semplici e più facilmente disponibili. 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, utilizzare la funzione getFullPathName
Per altre informazioni sui nomi di file e percorsi, vedere nomi di 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 nomi di file brevi (formato 8.3) o lunghi. Questa stringa può essere un nome di condivisione o di 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 TCHAR.
[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 del 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, senza includere il carattere Null di terminazione.
Se il buffer lpBuffer
Se la funzione ha esito negativo per qualsiasi altro motivo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError.
Osservazioni
GetFullPathNameTransacted unisce il nome dell'unità e della directory correnti 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 o 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 alla 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 sufficientemente grande da contenere il percorso. Per un esempio di questo caso e per l'uso del buffer di lunghezza zero per l'allocazione dinamica, vedere la sezione Codice di esempio.
Tecnologia | Sostenuto |
---|---|
Protocollo SMB (Server Message Block) 3.0 | No |
SMB 3.0 Transparent Failover (TFO) | No |
SMB 3.0 con condivisioni file con scalabilità orizzontale (SO) | No |
Cluster Shared Volume File System (CsvFS) | No |
Resilient File System (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 del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows Vista [solo app desktop] |
server minimo supportato | Windows Server 2008 [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winbase.h (include Windows.h) |
libreria |
Kernel32.lib |
dll | Kernel32.dll |