Compartilhar via


STGM

Windows Mobile SupportedWindows Embedded CE Supported

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