Condividi tramite


Funzione GetFileAttributesTransactedA (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 gli attributi del file system per un file o una directory specificata come operazione transazionata.

Sintassi

BOOL GetFileAttributesTransactedA(
  [in]  LPCSTR                 lpFileName,
  [in]  GET_FILEEX_INFO_LEVELS fInfoLevelId,
  [out] LPVOID                 lpFileInformation,
  [in]  HANDLE                 hTransaction
);

Parametri

[in] lpFileName

Nome del file o della directory.

Per impostazione predefinita, il nome è limitato a MAX_PATH caratteri. Per estendere questo limite a 32.767 caratteri wide, anteporre "\\?\" al percorso. Per altre informazioni, vedere Denominazione di file, percorsi e spazi dei nomi.

Suggerimento

A partire da Windows 10, versione 1607, è possibile acconsentire esplicitamente a rimuovere la limitazione MAX_PATH senza anteporre "\?\". Per informazioni dettagliate, vedere la sezione "Limitazione massima della lunghezza del percorso" di Denominazione di file, percorsi e spazi dei nomi .

Il file o la directory devono 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] fInfoLevelId

Livello di informazioni sugli attributi da recuperare.

Questo parametro può essere il valore seguente dall'enumerazione GET_FILEEX_INFO_LEVELS .

Valore Significato
GetFileExInfoStandard
Il parametro lpFileInformation è una struttura WIN32_FILE_ATTRIBUTE_DATA .

[out] lpFileInformation

Puntatore a un buffer che riceve le informazioni sull'attributo.

Il tipo di informazioni sugli attributi archiviate in questo buffer è determinato dal valore di fInfoLevelId. Se il parametro fInfoLevelId è GetFileExInfoStandard, questo parametro punta a una struttura WIN32_FILE_ATTRIBUTE_DATA

[in] hTransaction

Handle per la transazione. Questo handle viene restituito dalla funzione CreateTransaction .

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero (0). Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Quando GetFileAttributesTransacted viene chiamato in una directory che è una cartella montata, restituisce gli attributi della directory, non quelli della directory radice nel volume associato alla directory montata. Per ottenere gli attributi di file del volume associato, chiamare GetVolumeNameForVolumeMountPoint per ottenere il nome del volume associato. Usare quindi il nome risultante in una chiamata a GetFileAttributesTransacted. I risultati sono gli attributi della directory radice nel volume associato.

In Windows 8 e Windows Server 2012 questa funzione è supportata dalle tecnologie seguenti.

Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0 No
Failover trasparente SMB 3.0 (TFO) No
SMB 3.0 con condivisioni file di scalabilità orizzontale (SO) No
File system del volume condiviso cluster (CsvFS) No
Resilient File System (ReFS) No
 

SMB 3.0 non supporta TxF.

Collegamenti simbolici: Se il percorso punta a un collegamento simbolico, la funzione restituisce gli attributi per il collegamento simbolico.

Operazioni transazionate

Se un file è aperto per la modifica in una transazione, nessun altro thread può aprire il file per la modifica finché non viene eseguito il commit della transazione. Viceversa, se un file è aperto per la modifica all'esterno di una transazione, nessun thread transazionale può aprire il file per la modifica fino alla chiusura dell'handle non transazionale. Se un thread non transazionato ha un handle aperto per modificare un file, una chiamata a GetFileAttributesTransacted per tale file avrà esito negativo con un errore ERROR_TRANSACTIONAL_CONFLICT .

Nota

L'intestazione winbase.h definisce GetFileAttributesTransacted 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 che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

   
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

Vedere anche

Deviceiocontrol

Costanti degli attributi di file

Funzioni di gestione file

FindFirstFileTransacted

Findnextfile

GET_FILEEX_INFO_LEVELS

SetFileAttributesTransacted

Collegamenti simbolici

NTFS transazionale