Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un flujo es una secuencia de bytes. En el sistema de archivos NTFS, las secuencias contienen los datos que se escriben en un archivo y que proporcionan más información sobre un archivo que atributos y propiedades. Por ejemplo, puede crear una secuencia que contenga palabras clave de búsqueda o la identidad de la cuenta de usuario que crea un archivo.
Cada secuencia asociada a un archivo tiene su propio tamaño de asignación, tamaño real y longitud de datos válida:
- El tamaño de asignación es la cantidad de espacio en disco que está reservado para una secuencia.
- El tamaño real es el número de bytes que usa un llamador.
- La longitud de datos válida (VDL) es el número de bytes inicializados a partir del tamaño de asignación de la secuencia.
Cada secuencia también mantiene su propio estado para la compresión, el cifrado y la dispersión. El atributo FILE_ATTRIBUTE_SPARSE_FILE del archivo se establece en el miembro dwFileAttributes de la estructura WIN32_FIND_DATA devuelta por las funciones FindFirstFile, FindFirstFileEx y FindNextFile si alguna de las secuencias ha sido alguna vez dispersa. GetFileAttributes, GetFileAttributesEx, GetFileAttributesTransact, GetFileInformationByHandle y GetFileInformationByHandleEx devuelven el estado disperso del flujo de datos predeterminado si no se especifica ninguna secuencia.
No hay tiempos de archivo asociados a una secuencia. Los tiempos de archivo de un archivo se actualizan cuando se actualiza cualquier secuencia de un archivo.
Los bloqueos oportunistas se mantienen por flujo de datos. Los modos de uso compartido también se mantienen por flujo. Cuando se solicita el acceso de eliminación en un archivo, el sistema operativo comprueba el acceso de eliminación en todas las secuencias abiertas de un archivo. Si otro proceso ha abierto una secuencia sin el permiso FILE_SHARE_DELETE , no puede abrir el archivo para eliminar el acceso.
Si un archivo que se copia tiene un flujo de datos y se usa el redirector de red, el archivo solo se puede copiar si el cliente tiene el permiso de lectura y el permiso de atributos de lectura.
Convenciones de nomenclatura para flujos
Cuando se especifica desde la línea de comandos del shell de Windows, el nombre completo de una secuencia es "filename:stream name:stream type", como en el ejemplo siguiente: "myfile.dat:stream1:$DATA".
Los caracteres que sean legales para un nombre de archivo también son legales para el nombre de la secuencia, incluidos los espacios. Para obtener más información, consulte Nomenclatura de un archivo. El tipo de secuencia (también denominado código de tipo de atributo) es interno para el sistema de archivos NTFS. Por lo tanto, los usuarios no pueden crear nuevos tipos de secuencia, pero pueden abrir tipos de sistema de archivos NTFS existentes. Los valores del especificador de tipo de secuencia siempre comienzan con el símbolo de signo de dólar ($). Consulte a continuación una lista de tipos de flujo.
De forma predeterminada, el flujo de datos predeterminado no tiene nombre. Para especificar completamente el flujo de datos predeterminado, use "filename::$DATA", donde $DATA es el tipo de secuencia. Este es el equivalente de "nombre de archivo". Puede crear una secuencia con nombre en el archivo mediante las convenciones de nomenclatura de archivos. Tenga en cuenta que "$DATA" es un nombre de flujo de datos legal. Por ejemplo, el nombre completo de una secuencia denominada "$DATA" en un archivo denominado "sample" sería "sample:$DATA:$DATA". Si creó una secuencia denominada "bar" en el mismo archivo, su nombre completo sería "sample:bar:$DATA".
Al crear y trabajar con archivos que tienen nombres de un solo carácter, prefija el nombre de archivo con un punto seguido de una barra invertida (.) o use un nombre de ruta de acceso completo. La razón para ello es que Windows trata los nombres de archivo de un solo carácter como letras de unidad. Cuando se especifica una letra de unidad con una ruta de acceso relativa, dos puntos separan la letra de unidad de la ruta de acceso. Cuando hay una ambigüedad sobre si un nombre de un solo carácter es una letra de unidad o un nombre de archivo, Windows supone que es una letra de unidad si la cadena que sigue a los dos puntos es una ruta de acceso válida, incluso si la letra de unidad no es válida.
Tipos de flujo
A continuación se muestra la lista de tipos de secuencia NTFS, también denominados códigos de tipo de atributo. Algunos de los tipos de secuencia son internos de NTFS y su formato no está documentado.
Tipo de flujo | Descripción |
---|---|
::$ATTRIBUTE_LIST | Contiene una lista de todos los atributos que componen el archivo e identifica dónde se encuentra cada atributo. |
::$BITMAP | Mapa de bits usado por índices para administrar el espacio libre de árbol b para un directorio. El árbol b se administra en fragmentos de 4 KB (independientemente del tamaño del clúster) y se usa para administrar la asignación de estos fragmentos. Este tipo de secuencia está presente en cada directorio. |
::$DATA | Flujo de datos. El flujo de datos predeterminado no tiene ningún nombre. Los flujos de datos se pueden enumerar mediante las funciones FindFirstStreamW y FindNextStreamW . |
::$EA | Contiene datos de atributos extendidos. |
::$EA_INFORMATION | Contiene información de soporte técnico sobre los atributos extendidos. |
::$FILE_NAME | Nombre del archivo, en caracteres Unicode. Esto incluye el nombre corto del archivo, así como los vínculos físicos. |
::$INDEX_ALLOCATION | Tipo de flujo de un directorio. Se usa para implementar la asignación de nombre de archivo para directorios grandes. Esta secuencia representa el propio directorio y contiene todos los datos del directorio. Los cambios en secuencias de este tipo se registran en el diario de cambios NTFS. El nombre de secuencia predeterminado de un tipo de secuencia $INDEX_ALLOCATION es $I 30, por lo que "DirName", "DirName::$INDEX_ALLOCATION" y "DirName:$I 30:$INDEX_ALLOCATION" son equivalentes. |
::$INDEX_ROOT | Esta secuencia representa la raíz del árbol B de un índice. Este tipo de secuencia está presente en cada directorio. |
::$LOGGED_UTILITY_STREAM | Similar a ::$DATA, pero las operaciones se registran en el diario de cambios NTFS. Usado por EFS y NTFS Transaccional (TxF). El par ":StreamName:$StreamType" para EFS es ":$EFS:$LOGGED_UTILITY_STREAM" y para TxF es ":$TXF_DATA:$LOGGED_UTILITY_STREAM". |
::$OBJECT_ID | Identificador de 16 bytes utilizado para identificar el archivo en el servicio de rastreo de enlaces. |
::$REPARSE_POINT | Datos del punto de reanálisis. |