estructura de BY_HANDLE_FILE_INFORMATION (fileapi.h)

Contiene información que recupera la función GetFileInformationByHandle.

Sintaxis

typedef struct _BY_HANDLE_FILE_INFORMATION {
  DWORD    dwFileAttributes;
  FILETIME ftCreationTime;
  FILETIME ftLastAccessTime;
  FILETIME ftLastWriteTime;
  DWORD    dwVolumeSerialNumber;
  DWORD    nFileSizeHigh;
  DWORD    nFileSizeLow;
  DWORD    nNumberOfLinks;
  DWORD    nFileIndexHigh;
  DWORD    nFileIndexLow;
} BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;

Miembros

dwFileAttributes

Atributos de archivo. Para conocer los valores posibles y sus descripciones, vea Constantes de atributo de archivo.

ftCreationTime

Estructura FILETIME que especifica cuándo se crea un archivo o directorio. Si el sistema de archivos subyacente no admite el tiempo de creación, este miembro es cero (0).

ftLastAccessTime

Estructura FILETIME . Para un archivo, la estructura especifica la última vez que se lee o escribe un archivo. Para un directorio, la estructura especifica cuándo se crea el directorio. En el caso de los archivos y directorios, la fecha especificada es correcta, pero la hora del día siempre se establece en medianoche. Si el sistema de archivos subyacente no admite la hora de último acceso, este miembro es cero (0).

ftLastWriteTime

Estructura FILETIME . Para un archivo, la estructura especifica la última vez en que se escribe un archivo. Para un directorio, la estructura especifica cuándo se crea el directorio. Si el sistema de archivos subyacente no admite la última hora de escritura, este miembro es cero (0).

dwVolumeSerialNumber

Número de serie del volumen que contiene un archivo.

nFileSizeHigh

Parte de orden superior del tamaño del archivo.

nFileSizeLow

Parte de orden bajo del tamaño del archivo.

nNumberOfLinks

Número de vínculos a este archivo. Para el sistema de archivos FAT, este miembro siempre es 1. Para el sistema de archivos NTFS, puede ser superior a 1.

nFileIndexHigh

Parte de orden superior de un identificador único asociado a un archivo. Para obtener más información, vea nFileIndexLow.

nFileIndexLow

Parte de orden bajo de un identificador único asociado a un archivo.

El identificador (partes bajas y altas) y el número de serie del volumen identifican de forma única un archivo en un solo equipo. Para determinar si dos identificadores abiertos representan el mismo archivo, combine el identificador y el número de serie del volumen para cada archivo y compárelos.

El sistema de archivos ReFS, introducido con Windows Server 2012, incluye identificadores de archivo de 128 bits. Para recuperar el identificador de archivo de 128 bits, use la función GetFileInformationByHandleEx con FileIdInfo para recuperar la estructura de FILE_ID_INFO . No se garantiza que el identificador de 64 bits de esta estructura sea único en ReFS.

Comentarios

El identificador almacenado en los miembros nFileIndexHigh y nFileIndexLow se denomina identificador de archivo. La compatibilidad con identificadores de archivo es específica del sistema de archivos. No se garantiza que los identificadores de archivo sean únicos a lo largo del tiempo, ya que los sistemas de archivos son libres de reutilizarlos. En algunos casos, el identificador de archivo de un archivo puede cambiar con el tiempo.

En el sistema de archivos FAT, el identificador de archivo se genera a partir del primer clúster del directorio contenedor y el desplazamiento de bytes dentro del directorio de la entrada del archivo. Algunos productos de desfragmentación cambian este desplazamiento de bytes. (La desfragmentación integrada de Windows no lo hace). Por lo tanto, un identificador de archivo FAT puede cambiar con el tiempo. Cambiar el nombre de un archivo en el sistema de archivos FAT también puede cambiar el identificador de archivo, pero solo si el nuevo nombre de archivo es mayor que el anterior.

En el sistema de archivos NTFS, un archivo mantiene el mismo identificador de archivo hasta que se elimina. Puede reemplazar un archivo por otro sin cambiar el identificador de archivo mediante la función ReplaceFile . Sin embargo, el identificador de archivo del archivo de reemplazo, no el archivo reemplazado, se conserva como el identificador de archivo del archivo resultante.

No todos los sistemas de archivos pueden registrar la creación y la hora de último acceso, y no todos los sistemas de archivos los registran de la misma manera. Por ejemplo, en un sistema de archivos FAT de Windows, el tiempo de creación tiene una resolución de 10 milisegundos, el tiempo de escritura tiene una resolución de 2 segundos y el tiempo de acceso tiene una resolución de 1 día (la fecha de acceso). En el sistema de archivos NTFS, el tiempo de acceso tiene una resolución de 1 hora. Para más información, consulte Tiempos de archivo.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado fileapi.h (incluya Windows.h)

Consulte también

FILETIME

FILE_ID_INFO

Constantes de atributo de archivo

GetFileInformationByHandle

GetFileInformationByHandleEx