Enumeración STGC (wtypes.h)
Las constantes de enumeración STGC especifican las condiciones para realizar la operación de confirmación en los métodos IStorage::Commit e IStream::Commit .
Syntax
typedef enum tagSTGC {
STGC_DEFAULT = 0,
STGC_OVERWRITE = 1,
STGC_ONLYIFCURRENT = 2,
STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
STGC_CONSOLIDATE = 8
} STGC;
Constantes
STGC_DEFAULT Valor: 0 Puede especificar esta condición con STGC_CONSOLIDATE o alguna combinación de las otras tres marcas de esta lista de elementos. Use este valor para aumentar la legibilidad del código. |
STGC_OVERWRITE Valor: 1 La operación de confirmación puede sobrescribir los datos existentes para reducir los requisitos generales de espacio. Este valor no se recomienda para el uso típico porque no es tan sólido como el valor predeterminado. En este caso, es posible que la operación de confirmación produzca un error después de sobrescribir los datos antiguos, pero antes de que se confirmen completamente los nuevos datos. A continuación, ni la versión anterior ni la nueva versión del objeto de almacenamiento se conservarán. Puede usar este valor en los casos siguientes:
Tenga en cuenta que la operación de confirmación comprueba que existe un espacio adecuado antes de que se produzca cualquier sobrescritura. Por lo tanto, incluso con este valor especificado, si se produce un error en la operación de confirmación debido a los requisitos de espacio, los datos antiguos son seguros. Sin embargo, es posible que se produzca una pérdida de datos con el valor de STGC_OVERWRITE especificado si se produce un error en la operación de confirmación por cualquier motivo distinto de la falta de espacio en disco. |
STGC_ONLYIFCURRENT Valor: 2 Impide que varios usuarios de un objeto de almacenamiento sobrescriban los cambios entre sí. La operación de confirmación solo se produce si no se han producido cambios en el objeto de almacenamiento guardado porque el usuario lo abrió más recientemente. Por lo tanto, la versión guardada del objeto de almacenamiento es la misma versión que el usuario ha estado editando. Si otros usuarios han cambiado el objeto de almacenamiento, se produce un error en la operación de confirmación y devuelve el valor STG_E_NOTCURRENT. Para invalidar este comportamiento, llame de nuevo al método IStorage::Commit o IStream::Commit mediante el valor STGC_DEFAULT . |
STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE Valor: 4 Confirma los cambios en una caché de disco de escritura subyacente, pero no guarda la memoria caché en el disco. En una caché de disco de escritura subyacente, la operación que escribe en el disco realmente escribe en una caché de disco, lo que aumenta el rendimiento. La memoria caché se escribe finalmente en el disco, pero normalmente no hasta después de que la operación de escritura ya se haya devuelto. El aumento del rendimiento se produce a costa de un mayor riesgo de perder datos si se produce un problema antes de guardar la memoria caché y se pierden los datos de la memoria caché. Si no especifica este valor, la confirmación de cambios en los objetos de almacenamiento de nivel raíz es sólida incluso si se usa una memoria caché de disco. El proceso de confirmación en dos fases garantiza que los datos se almacenan en el disco y no solo en la memoria caché del disco. |
STGC_CONSOLIDATE Valor: 8 Windows 2000 y Windows XP: indica que un almacenamiento debe consolidarse después de confirmarse, lo que da lugar a un archivo más pequeño en el disco. Esta marca solo es válida en el objeto de almacenamiento más externo que se ha abierto en modo de transacción. No es válido para las secuencias. La marca STGC_CONSOLIDATE se puede combinar con cualquier otra marca STGC. |
Comentarios
Puede especificar STGC_DEFAULT o alguna combinación de STGC_OVERWRITE, STGC_ONLYIFCURRENT y STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE para las operaciones de confirmación normales. Puede especificar STGC_CONSOLIDATE con cualquier otra marca STGC.
Normalmente, use STGC_ONLYIFCURRENT para proteger el objeto de almacenamiento en casos en los que más de un usuario pueda editar el objeto simultáneamente.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado | wtypes.h |