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.
Los servicios de Almacenamiento estructurado se organizan en tres categorías de interfaces de . Cada conjunto representa un nivel sucesivo de direccionamiento indirecto o abstracción entre un archivo compuesto, los objetos que contiene y los medios físicos en los que se almacenan estos componentes individuales.
La primera categoría de interfaces consta de IStorage, IStreamy IRootStorage . Las dos primeras interfaces definen cómo se almacenan los objetos dentro de un archivo compuesto. Estas interfaces proporcionan métodos para abrir elementos de almacenamiento, confirmar y revertir cambios, copiar y mover elementos, y leer y escribir secuencias. Estas interfaces no reconocen los formatos de datos nativos de los objetos individuales y, por tanto, no tienen métodos para guardar esos objetos en el almacenamiento persistente. La interfaz IRootStorage tiene un único método para asociar un documento compuesto con un nombre de sistema de archivos subyacente. Los clientes deben implementar estas interfaces para sus archivos compuestos.
La segunda categoría de interfaces consta de las interfaces IPersist, que los objetos implementan para administrar sus datos persistentes. Estas interfaces proporcionan métodos para leer los formatos de datos de objetos individuales y, por tanto, saber cómo almacenarlos. Los objetos son responsables de implementar estas interfaces porque los clientes no conocen los formatos de datos nativos de sus objetos anidados. Sin embargo, estas interfaces no tienen conocimiento de medios de almacenamiento físico específicos.
Una tercera categoría consta de una sola interfaz, ILockBytes, que proporciona métodos para escribir archivos en medios físicos específicos, como un disco duro o una unidad de cinta. Sin embargo, la mayoría de las aplicaciones no implementarán la interfaz ILockBytes porque COM ya proporciona implementaciones para las dos situaciones más comunes, que son la implementación basada en archivos y la implementación basada en memoria. El objeto de almacenamiento de archivos compuesto llama a los métodos ILockBytes que no los llama directamente en la implementación.
Límites de implementación de archivos compuestos
La implementación COM de la arquitectura de Almacenamiento estructurado se denomina archivos compuestos. Los objetos de almacenamiento, tal como se implementan en archivos compuestos, incluyen una implementación de las IPropertyStorage y interfaces de IPropertySetStorage.
Los punteros a la implementación de archivos compuestos de estas interfaces se adquieren llamando a la función stgCreateStorageExpara crear un nuevo objeto de archivo compuesto o stgOpenStorageEx para abrir un archivo compuesto creado anteriormente.
Un método alternativo para adquirir un puntero a la implementación de archivos compuestos de estas interfaces es llamando a la función stgCreateDocfile anterior y más limitada o función stgOpenStorage. Las cuatro funciones se tratan como implementaciones de archivos compuestos.
La implementación de archivos compuestos se puede configurar para usar sectores de bytes de 512 o 4096, tal como se define en la estructuraSTGOPTIONS de.
La implementación de archivos compuestos de archivos compuestos está sujeta a las siguientes restricciones de implementación.
| Límite | Archivo compuesto |
|---|---|
| Límites de tamaño de archivo: | 512: 2 gigabytes (GB) 4096: Hasta límites del sistema de archivos |
| Tamaño máximo del montón necesario para los elementos abiertos: | 512: 4 megabytes (MB) 4096: Hasta límites de memoria virtual |
| Se abre la raíz simultánea (se abre el mismo archivo): | Si se especifican STGM_READ y STGM_SHARE_DENY_WRITE, los límites se dictan según los límites del sistema de archivos. De lo contrario, hay un límite de 20 aperturas de raíz simultáneas del mismo archivo. |
| Número de elementos de un archivo: | 512: Ilimitado, pero el rendimiento puede degradarse si el número de elementos en los miles 4096: Ilimitado |
Debido al límite de tamaño de montón de 4 MB, el número de elementos abiertos en modo transaccionado suele limitarse a varios miles de elementos.