Condividi tramite


Funzione GetFileInformationByHandleEx (winbase.h)

Recupera le informazioni sui file per il file specificato.

Per una versione più semplice di questa funzione per le app desktop, vedi GetFileInformationByHandle.

Per impostare le informazioni sui file usando un handle di file, vedere SetFileInformationByHandle.

Sintassi

BOOL GetFileInformationByHandleEx(
  [in]  HANDLE                    hFile,
  [in]  FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
  [out] LPVOID                    lpFileInformation,
  [in]  DWORD                     dwBufferSize
);

Parametri

[in] hFile

Handle per il file che contiene le informazioni da recuperare.

Questo handle non deve essere un handle pipe.

[in] FileInformationClass

Valore di enumerazione FILE_INFO_BY_HANDLE_CLASS che specifica il tipo di informazioni da recuperare.

Per una tabella di valori validi, vedere la sezione Osservazioni.

[out] lpFileInformation

Puntatore al buffer che riceve le informazioni sul file richieste. La struttura restituita corrisponde alla classe specificata da FileInformationClass. Per una tabella di tipi di struttura validi, vedere la sezione Osservazioni.

[in] dwBufferSize

Dimensioni del buffer lpFileInformation , in byte.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero e i dati delle informazioni sui file sono contenuti nel buffer a cui punta il parametro lpFileInformation .

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

Commenti

Se FileInformationClass è FileStreamInfo e le chiamate hanno esito positivo ma non vengono restituiti flussi, l'errore restituito da GetLastError è ERROR_HANDLE_EOF.

Alcune classi di informazioni sui file si comportano in modo leggermente diverso nelle diverse versioni del sistema operativo. Queste classi sono supportate dai driver sottostanti e tutte le informazioni restituite sono soggette a modifiche tra le versioni del sistema operativo.

Nella tabella seguente vengono illustrati i tipi di classe di informazioni sui file validi e i tipi di struttura di dati corrispondenti da usare con questa funzione.

Valore FileInformationClass Tipo lpFileInformation
FileBasicInfo (0) FILE_BASIC_INFO
FileStandardInfo (1) FILE_STANDARD_INFO
FileNameInfo (2) FILE_NAME_INFO
FileStreamInfo (7) FILE_STREAM_INFO
FileCompressionInfo (8) FILE_COMPRESSION_INFO
FileAttributeTagInfo (9) FILE_ATTRIBUTE_TAG_INFO
FileIdBothDirectoryInfo (0xa) FILE_ID_BOTH_DIR_INFO
FileIdBothDirectoryRestartInfo (0xb) FILE_ID_BOTH_DIR_INFO
FileRemoteProtocolInfo (0xd) FILE_REMOTE_PROTOCOL_INFO
FileFullDirectoryInfo (0xe) FILE_FULL_DIR_INFO
FileFullDirectoryRestartInfo (0xf) FILE_FULL_DIR_INFO
FileStorageInfo (0x10) FILE_STORAGE_INFO
FileAlignmentInfo (0x11) FILE_ALIGNMENT_INFO
FileIdInfo (0x12) FILE_ID_INFO
FileIdExtdDirectoryInfo (0x13) FILE_ID_EXTD_DIR_INFO
FileIdExtdDirectoryRestartInfo (0x14) FILE_ID_EXTD_DIR_INFO
 

Operazioni transazionate

Se è presente una transazione associata al thread al momento della chiamata, la funzione restituisce le dimensioni del file compresso della visualizzazione file isolata. Per altre informazioni, vedere Informazioni su NTFS transazionale.

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

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

Requisiti

   
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winbase.h (include Windows.h)
Libreria Kernel32.lib; FileExtd.lib in Windows Server 2003 e Windows XP
DLL Kernel32.dll
Componente ridistribuibile Windows SDK in Windows Server 2003 e Windows XP.

Vedi anche

FILE_INFO_BY_HANDLE_CLASS

Funzioni di gestione file

SetFileInformationByHandle