Condividi tramite


Funzione GetCompressedFileSizeTransactedA (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 numero effettivo di byte di archiviazione su disco utilizzato per archiviare un file specificato come operazione transazionale. Se il file si trova in un volume che supporta la compressione e il file viene compresso, il valore ottenuto è la dimensione compressa del file specificato. Se il file si trova in un volume che supporta file di tipo sparse e il file è un file sparse, il valore ottenuto è la dimensione sparse del file specificato.

Sintassi

DWORD GetCompressedFileSizeTransactedA(
  [in]            LPCSTR  lpFileName,
  [out, optional] LPDWORD lpFileSizeHigh,
  [in]            HANDLE  hTransaction
);

Parametri

[in] lpFileName

Nome del file.

Non specificare il nome di un file in un dispositivo che non visualizza, ad esempio una pipe o un dispositivo di comunicazione, perché le dimensioni del file non hanno alcun significato.

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.

[out, optional] lpFileSizeHigh

Puntatore a una variabile che riceve la DWORD di ordine elevato della dimensione del file compresso. Il valore restituito della funzione è il valore DWORD in ordine basso delle dimensioni del file compresso.

Questo parametro può essere NULL se la DWORD con ordine elevato delle dimensioni del file compresso non è necessaria. I file di dimensioni inferiori a 4 gigabyte non richiedono il DWORD di ordine elevato.

[in] hTransaction

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

Valore restituito

Se la funzione ha esito positivo, il valore restituito è il valore DWORD di ordine basso del numero effettivo di byte di spazio di archiviazione su disco usato per archiviare il file specificato e se lpFileSizeHigh è diverso da NULL, la funzione inserisce la DWORD in ordine elevato di tale valore effettivo in DWORD a cui fa riferimento tale parametro. Si tratta delle dimensioni dei file compressi per i file compressi, ovvero le dimensioni effettive del file per i file non compressi.

Se la funzione ha esito negativo e lpFileSizeHigh è NULL, il valore restituito viene INVALID_FILE_SIZE. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Se il valore restituito è INVALID_FILE_SIZE e lpFileSizeHigh è diverso da NULL, un'applicazione deve chiamare GetLastError per determinare se la funzione è riuscita (il valore è NO_ERROR) o non riuscito (il valore è diverso da NO_ERROR).

Commenti

Un'applicazione può determinare se un volume è compresso chiamando GetVolumeInformation, quindi controllando lo stato del flag FS_VOL_IS_COMPRESSED nel valore DWORD a cui punta il parametro lpFileSystemFlags di tale funzione.

Se il file non si trova in un volume che supporta file di compressione o sparse o se il file non è compresso o un file sparse, il valore ottenuto è la dimensione effettiva del file, uguale al valore restituito da una chiamata a GetFileSize.

Collegamenti simbolici: Se il percorso punta a un collegamento simbolico, la funzione restituisce le dimensioni del file della destinazione.

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.

Nota

L'intestazione winbase.h definisce GetCompressedFileSizeTransacted 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

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

Vedere anche

Compressione e decompressione dei file

Funzioni di gestione file

GetFileSize

GetVolumeInformation

Collegamenti simbolici

Gestione transazioni