STGM
9/8/2008
Essa enumeração contém valores usados nas interfaces de armazenamento e transmitir para indicar as condições para criar e excluir os objeto e acessar modos para o objeto.
O seguinte STGM Os valores são usados na IStorage, IStream, eIPropertySetStorage Interfaces e na StgCreateDocfile, StgCreateStorageEx, StgCreateDocfileOnILockBytes, StgOpenStorage, e StgOpenStorageEx funções para indicar as condições para criar e excluir os objeto e acessar modos para o objeto.
Elemento | Valor |
---|---|
STGM_DIRECT |
0x00000000L |
STGM_TRANSACTED |
0x00010000L |
STGM_SIMPLE |
0x08000000L |
STGM_READ |
0x00000000L |
STGM_WRITE |
0x00000001L |
STGM_READWRITE |
0x00000002L |
STGM_SHARE_DENY_NONE |
0x00000040L |
STGM_SHARE_DENY_READ |
0x00000030L |
STGM_SHARE_DENY_WRITE |
0x00000020L |
STGM_SHARE_EXCLUSIVE |
0x00000010L |
STGM_PRIORITY |
0x00040000L |
STGM_DELETEONRELEASE |
0x04000000L |
STGM_CREATE |
0x00001000L |
STGM_CONVERT |
0x00020000L |
STGM_FAILIFTHERE |
0x00000000L |
STGM_NOSCRATCH |
0x00100000L |
STGM_NOSNAPSHOT |
0x00200000L |
STGM_DIRECT_SWMR |
0x00400000L |
Elementos
- STGM_DIRECT
Em direcionar modo, cada alteração para um elemento armazenamento é gravado como ele ocorre. Essa é a usar como padrão.
STGM_TRANSACTED
No modo de transação, as alterações são armazenada em buffer e são gravados apenas se uma operação explícita de confirmação é chamado.Para ignorar as alterações, chamar o Reverter método in a IStream, IStorage, ou IPropertyStorage Interfaces.
O arquivo composto COM e NSS implementações de IStorage Fazer não suporte transacionado fluxos, o que significa que fluxos podem ser abertos somente no direcionar modo e você não pode reverter alterações-los.
Armazenamentos transacionados estiverem, no entanto, com suporte.
O arquivo composto, autônomo NSS e NTFS implementações de IPropertySetStorage Da mesma forma fazer não suporte propriedade modo simples, transacionado define como estas propriedade conjuntos são armazenados em fluxos.
No entanto, define propriedade Non-Simple, que podem ser criados por especificando o sinalizador PROPSETFLAG_NONSIMPLE in a grfFlags parâmetro de IPropertySetStorage::Create, são com suporte.
- STGM_SIMPLE
STGM_SIMPLE é um modo que fornece uma implementação muito mais rápida de um arquivo composto em um limitado, mas freqüentes usado maiúsculas e minúsculas. Ele está descrito em detalhes na seguinte seção Comentários.
- STGM_DIRECT_SWMR
O STGM_DIRECT_SWMR oferece suporte a direcionar modo de única-gravador, operações arquivo multi-Reader.
- STGM_READ
Para objetos transmitir, STGM_READ permite que você chamar o ISequentialStream::Read método. Para objetos armazenamento, você pode enumerar os elementos armazenamento e aberto-las para leitura.
- STGM_WRITE
STGM_WRITE permite que você salvar altera para o objeto.
- STGM_READWRITE
STGM_READWRITE é a combinação de STGM_READ e STGM_WRITE.
- STGM_SHARE_DENY_NONE
Especifica que aberturas subseqüentes do objeto não são negado ler ou acesso de gravação.
- STGM_SHARE_DENY_READ
Impede que outras pessoas abram posteriormente o objeto no modo STGM_READ. É geralmente usado em um objeto armazenamento raiz.
STGM_SHARE_DENY_WRITE
Impede que outras pessoas abram posteriormente o objeto no modo STGM_WRITE. Esse valor é geralmente usado para evitar cópias desnecessárias formadas um objeto abertas por usuários múltiplos.Se esse valor não for especificado, um instantâneo é feito, independentemente se há abre subseqüente ou não. Assim, você pode melhorar desempenho especificando esse valor.
- STGM_SHARE_EXCLUSIVE
A combinação de STGM_SHARE_DENY_READ e STGM_SHARE_DENY_WRITE.
STGM_PRIORITY
Abre o objeto armazenamento com acessar exclusivo para a versão mais recentemente confirmada. Assim, outros usuários não podem confirmação altera para o objeto enquanto você têm-aberto no modo prioridade.Você obtém benefícios desempenho para copiar operações, mas você evitar outros confirmar as alterações. Portanto, você deve limite de tempo você manter objetos aberto no modo prioridade. Você deve especificar STGM_DIRECT e STGM_READ com modo prioridade.
- STGM_DELETEONRELEASE
Indica que o subjacente arquivo será automaticamente destruídos quando o objeto armazenamento raiz for lançado. Essa funcionalidade é muito útil para criar arquivos temporários.
STGM_CREATE
Indica que um objeto armazenamento ou transmitir existente deve ser removido antes que novo substitui. Um novo objeto é criado quando este sinalizador for especificado, somente se o objeto existente foi removido com êxito.Este sinalizador é usado no seguinte situações:
- Quando você está tentando criar um objeto armazenamento em disco, mas um arquivo com esse nome já existe.
- Quando você está tentando criar um transmitir dentro um objeto armazenamento, mas um transmitir com o nome especificado já existe.
- Quando você estiver criando um objeto matriz byte mas um com o nome especificado já existe.
- STGM_CONVERT
Cria o novo objeto enquanto preserva dados existentes em um nomeado transmitir Conteúdo. Na maiúsculas e minúsculas de um objeto armazenamento ou uma matriz byte, os dados antigos é simples para um transmitir regardless of se a matriz arquivo existente ou byte contém atualmente uma em camadas objeto armazenamento.
- STGM_FAILIFTHERE
Faz com que a operação de criação falha se existir um objeto existente com o nome especificado. Este maiúsculas e minúsculas, STG_E_FILEALREADYEXISTS é retornado. STGM_FAILIFTHERE aplica-se objetos armazenamento tanto fluxos.
- STGM_NOSCRATCH
No modo de transação, um arquivo de rascunho é geralmente usado para salvar até que a operação confirmação. Especificar STGM_NOSCRATCH o não usado permite parte do arquivo original para ser usado como espaço transitório. Isso não afeta os dados no arquivo original e é um uso muito mais eficiente de memória.
STGM_NOSNAPSHOT
Este sinalizador é usado quando abrir um armazenamento com STGM_TRANSACTED e sem STGM_SHARE_EXCLUSIVE ou STGM_SHARE_DENY_WRITE.Neste maiúsculas e minúsculas, especificar STGM_NOSNAPSHOT impede a implementação System-provided criasse copiar um instantâneo do arquivo.
Em vez disso, as alterações para o arquivo são gravadas final do arquivo. Espaço não utilizado não é reclamado, a menos que a consolidação é feita durante a confirmação e há somente um atual gravador sobre o arquivo.
Quando o arquivo é aberto no modo não instantâneo, outro aberto não pode ser feito sem STGM_NOSNAPSHOT — em outras palavras, não é possível combinar não-instantâneo com outros modos.
Remarks
Você pode combinar esses sinalizadores, mas você pode apenas escolher um sinalizador de cada GRUPO de relacionado sinalizadores. Os grupos são indicados sob os títulos na seção anterior.
O sinalizador STGM_SIMPLE é aplicável somente quando combinado com o seguinte sinalizadores.
STGM_CREATE | STGM_READWRITE | STGM_SHARE_EXCLUSIVE
O sinalizador STGM_DIRECT pode ser combinada com um do seguinte sinalizadores:
STGM_READ | STGM_SHARE_DENY_WRITE
STGM_READWRITE | STGM_SHARE_EXCLUSIVE
STGM_READ | STGM_PRIORITY
Observe que direcionar modo foi inferido por falta de STGM_TRANSACTED.
Com único-gravador, Multi-Reader, direcionar modo, a seguinte são combinações sinalizador válido:
STGM_DIRECT_SWMR | STGM_READWRITE | STGM_SHARE_DENY_WRITE
e
STGM_DIRECT_SWMR | STGM_READ | STGM_SHARE_DENY_NONE
Esse modo é útil para aplicativos que completo executar operações salvar. Ele tem o seguinte restrições:
- Não há nenhum suporte para substorages.
- Acesso aos fluxos segue um padrão linear. Uma vez liberado um transmitir, que transmitir não pode ser aberto novamente para operações de leitura/gravação. O IStorage::OpenStream método não com suporte nessa implementação.
- Objetos de armazenamento e transmitir não podem ser empacotados.
- Cada transmitir é menos 4096 bytes de comprimento. Se menos de 4096 bytes são gravados um transmitir pelo tempo de transmitir é lançado, a transmitir será estendido para conter 4096 bytes.
- Na implementação arquivo composto, somente um subconjunto dos métodos de IStorage e IStream está disponível.
Especificamente, no modo simples, com suporte IStorage Os métodos são Falha de QueryInterface, AddRef, Lançamento, CreateStream, Confirmar, e SetClass. Além disso, SetElementTimes é com suporte com um NULL Nome, permitindo que os aplicativos definir horários em um armazenamento raiz no modo Simples.
Suporte para IStream Os métodos são Falha de QueryInterface, AddRef, Lançamento, Busca, e SetSize. Além disso, Leitura e Gravar Métodos em ISequentialStream São com suporte.
Todos os outros métodos de IStorage e IStream Retorne STG_E_INVALIDFUNCTION.
Arquivo modos otimização como STGM_SIMPLE, STGM_NOSCRATCH e STGM_NOSNAPSHOT não são com suporte para NTFS armazenamento estruturado nativo arquivos. Ao armazenar armazenamento objetos em sistemas NTFS no formato nativo arquivo, os arquivos são automaticamente convertidos em regular formato arquivo para todos os non-NT e FAT partições.
Requisitos
Header | objbase.h |
Windows Embedded CE | Windows CE 3.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
ISequentialStream::Read
IStorage
IStream
StgCreateDocfileOnILockBytes
StgOpenStorage