Share via


STGC 열거형(wtypes.h)

STGC 열거형 상수는 IStorage::Commit 및 IStream::Commit 메서드에서 커밋 작업을 수행하기 위한 조건을 지정합니다.

Syntax

typedef enum tagSTGC {
  STGC_DEFAULT = 0,
  STGC_OVERWRITE = 1,
  STGC_ONLYIFCURRENT = 2,
  STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
  STGC_CONSOLIDATE = 8
} STGC;

상수

 
STGC_DEFAULT
값: 0
STGC_CONSOLIDATE 또는 이 요소 목록에서 다른 세 플래그의 일부 조합을 사용하여 이 조건을 지정할 수 있습니다. 이 값을 사용하여 코드의 가독성을 높입니다.
STGC_OVERWRITE
값: 1
커밋 작업은 전체 공간 요구 사항을 줄이기 위해 기존 데이터를 덮어쓸 수 있습니다. 이 값은 기본값만큼 강력하지 않으므로 일반적인 사용에는 권장되지 않습니다. 이 경우 이전 데이터를 덮어쓴 후 새 데이터가 완전히 커밋되기 전에 커밋 작업이 실패할 수 있습니다. 그런 다음 이전 버전이나 새 버전의 스토리지 개체는 그대로 유지되지 않습니다.





다음 경우에 이 값을 사용할 수 있습니다.


  • 사용자는 데이터를 잃을 위험이 있습니다.

  • 메모리 부족 저장 시퀀스는 스토리지 개체를 더 작은 파일에 안전하게 저장하는 데 사용됩니다.

  • 이전 커밋은 STG_E_MEDIUMFULL 반환했지만 기존 데이터를 덮어쓰면 스토리지 개체에 대한 변경 내용을 커밋할 수 있는 충분한 공간이 제공될 것입니다.


커밋 작업은 덮어쓰기가 발생하기 전에 적절한 공간이 있는지 확인합니다. 따라서 이 값을 지정하더라도 공간 요구 사항으로 인해 커밋 작업이 실패하는 경우 이전 데이터는 안전합니다. 그러나 디스크 공간 부족 이외의 이유로 커밋 작업이 실패할 경우 지정된 STGC_OVERWRITE 값으로 데이터 손실이 발생할 수 있습니다.
STGC_ONLYIFCURRENT
값: 2
스토리지 개체의 여러 사용자가 서로의 변경 내용을 덮어쓰지 않도록 합니다. 커밋 작업은 사용자가 가장 최근에 열었기 때문에 저장된 스토리지 개체를 변경하지 않은 경우에만 발생합니다. 따라서 스토리지 개체의 저장된 버전은 사용자가 편집한 버전과 동일합니다. 다른 사용자가 스토리지 개체를 변경한 경우 커밋 작업이 실패하고 STG_E_NOTCURRENT 값을 반환합니다. 이 동작을 재정의하려면 STGC_DEFAULT 값을 사용하여 IStorage::Commit 또는 IStream::Commit 메서드를 다시 호출합니다.
STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE
값: 4
변경 내용을 쓰기 숨김 디스크 캐시에 커밋하지만 캐시를 디스크에 저장하지는 않습니다. 쓰기 숨김 디스크 캐시에서 디스크에 쓰는 작업은 실제로 디스크 캐시에 기록되므로 성능이 향상됩니다. 캐시는 결국 디스크에 기록되지만 일반적으로 쓰기 작업이 이미 반환될 때까지는 기록되지 않습니다. 성능 향상은 캐시를 저장하기 전에 문제가 발생하고 캐시의 데이터가 손실될 경우 데이터 손실 위험이 증가합니다.




이 값을 지정하지 않으면 디스크 캐시를 사용하는 경우에도 루트 수준 스토리지 개체에 대한 변경 내용을 커밋하는 것이 강력합니다. 2단계 커밋 프로세스는 데이터가 디스크 캐시뿐만 아니라 디스크에 저장되도록 합니다.
STGC_CONSOLIDATE
값: 8
Windows 2000 및 Windows XP: 스토리지가 커밋된 후 통합되어야 하므로 디스크에 더 작은 파일이 생성됨을 나타냅니다. 이 플래그는 트랜잭션 모드에서 열린 가장 바깥쪽 스토리지 개체에서만 유효합니다. 스트림에는 유효하지 않습니다. STGC_CONSOLIDATE 플래그를 다른 STGC 플래그와 결합할 수 있습니다.

설명

일반 커밋 작업에 STGC_DEFAULT 또는 STGC_OVERWRITE, STGC_ONLYIFCURRENTSTGC_DANGEROUSLYCOMMITMERELYTODISKCACHE 조합을 지정할 수 있습니다. 다른 STGC 플래그를 사용하여 STGC_CONSOLIDATE 지정할 수 있습니다.

일반적으로 이상의 사용자가 동시에 개체를 편집할 수 있는 경우 STGC_ONLYIFCURRENT 사용하여 스토리지 개체를 보호합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 wtypes.h

추가 정보

IPropertyStorage

IStorage

IStream