GetFileInformationByHandleEx, fonction (winbase.h)
Récupère les informations relatives au fichier spécifié.
Pour obtenir une version plus basique de cette fonction pour les applications de bureau, consultez GetFileInformationByHandle.
Pour définir des informations de fichier à l’aide d’un handle de fichier, consultez SetFileInformationByHandle.
Syntaxe
BOOL GetFileInformationByHandleEx(
[in] HANDLE hFile,
[in] FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
[out] LPVOID lpFileInformation,
[in] DWORD dwBufferSize
);
Paramètres
[in] hFile
Handle du fichier qui contient les informations à récupérer.
Ce handle ne doit pas être un handle de canal.
[in] FileInformationClass
Une valeur d’énumération FILE_INFO_BY_HANDLE_CLASS qui spécifie le type d’informations à récupérer.
Pour obtenir une table de valeurs valides, consultez la section Remarques.
[out] lpFileInformation
Pointeur vers la mémoire tampon qui reçoit les informations de fichier demandées. La structure retournée correspond à la classe spécifiée par FileInformationClass. Pour obtenir une table des types de structure valides, consultez la section Remarques.
[in] dwBufferSize
Taille de la mémoire tampon lpFileInformation , en octets.
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro et les données d’informations de fichier sont contenues dans la mémoire tampon pointée vers le paramètre lpFileInformation .
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Si FileInformationClass est FileStreamInfo et que les appels réussissent, mais qu’aucun flux n’est retourné, l’erreur retournée par GetLastError est ERROR_HANDLE_EOF.
Certaines classes d’informations sur les fichiers se comportent légèrement différemment selon les versions de système d’exploitation. Ces classes sont prises en charge par les pilotes sous-jacents, et toutes les informations qu’elles retournent peuvent être modifiées entre les versions du système d’exploitation.
Le tableau suivant montre les types de classes d’informations de fichier valides et leurs types de structure de données correspondants à utiliser avec cette fonction.
Valeur FileInformationClass | type 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 |
Opérations traitées
S’il existe une transaction liée au thread au moment de l’appel, la fonction retourne la taille de fichier compressée de l’affichage de fichiers isolé. Pour plus d’informations, consultez À propos de NTFS transactionnel.Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.
Technologie | Prise en charge |
---|---|
Protocole Server Message Block (SMB) 3.0 | Oui |
Basculement transparent SMB 3.0 (TFO) | Oui |
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) | Oui |
Système de fichiers du volume partagé de cluster (CsvFS) | Oui |
Système de fichiers résilient (ReFS) | Oui |
Configuration requise
Client minimal pris en charge | Windows Vista [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | winbase.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib; FileExtd.lib sur Windows Server 2003 et Windows XP |
DLL | Kernel32.dll |
Composant redistribuable | Kit de développement logiciel (SDK) Windows sur Windows Server 2003 et Windows XP. |