estrutura ATOMIC_CREATE_ECP_CONTEXT (ntifs.h)

A estrutura ATOMIC_CREATE_ECP_CONTEXT contém o contexto de parâmetro de criação extra (ECP) que permite que operações complementares sejam executadas em um arquivo atomicamente durante a criação.

Sintaxe

typedef struct _ATOMIC_CREATE_ECP_CONTEXT {
  USHORT               Size;
  USHORT               InFlags;
  USHORT               OutFlags;
  USHORT               ReparseBufferLength;
  PREPARSE_DATA_BUFFER ReparseBuffer;
  LONGLONG             FileSize;
  LONGLONG             ValidDataLength;
  PFILE_TIMESTAMPS     FileTimestamps;
  ULONG                FileAttributes;
  ULONG                UsnSourceInfo;
  USN                  Usn;
  ULONG                SuppressFileAttributeInheritanceMask;
  ULONG                InOpFlags;
  ULONG                OutOpFlags;
  ULONG                InGenFlags;
  ULONG                OutGenFlags;
  ULONG                CaseSensitiveFlagsMask;
  ULONG                InCaseSensitiveFlags;
  ULONG                OutCaseSensitiveFlags;
} ATOMIC_CREATE_ECP_CONTEXT, *PATOMIC_CREATE_ECP_CONTEXT;

Membros

Size

O tamanho dessa estrutura de contexto, em bytes.

InFlags

Sinalizadores que indicam as operações complementares solicitadas a serem executadas com a operação de criação.

Valor Significado
ATOMIC_CREATE_ECP_IN_FLAG_SPARSE_SPECIFIED Solicita que o sinalizador esparso seja definido no arquivo.
ATOMIC_CREATE_ECP_IN_FLAG_REPARSE_POINT_SPECIFIED Solicita que um ponto de nova análise seja definido no arquivo.
ATOMIC_CREATE_ECP_IN_FLAG_EOF_SPECIFIED Solicita que um tamanho de arquivo seja definido no arquivo. Isso também implica
que a alocação no disco ocorrerá para dar suporte ao tamanho do arquivo solicitado.
ATOMIC_CREATE_ECP_IN_FLAG_VDL_SPECIFIED Solicita que um comprimento de dados válido seja definido no arquivo. Isso também implica que o tamanho do arquivo seja definido como pelo menos o comprimento de dados válido solicitado. OBSERVAÇÃO: isso é considerado uma operação privilegiada se puder potencialmente
expor dados não inicializados.
ATOMIC_CREATE_ECP_IN_FLAG_OPERATION_MASK Use esse sinalizador como uma máscara para especificar os outros valores de sinalizador InFlags .
ATOMIC_CREATE_ECP_IN_FLAG_BEST_EFFORT Indica que o sistema de arquivos deve executar a operação de criação mesmo que algumas das operações complementares solicitadas não possam ser
executados ou não têm suporte do sistema de arquivos. O chamador pode marcar OutFlags para ver quais operações foram executadas. Se esse sinalizador não for especificado, o sistema de arquivos deverá falhar na operação de criação se não puder executar todas as operações complementares solicitadas com êxito.

OutFlags

Sinalizadores que indicam as operações complementares reais executadas com uma operação de criação bem-sucedida.

Valor Significado
ATOMIC_CREATE_ECP_OUT_FLAG_SPARSE_SET Indica que o sinalizador esparso foi definido no arquivo.
ATOMIC_CREATE_ECP_OUT_FLAG_REPARSE_POINT_SET Indica que um ponto de nova análise foi definido no arquivo.
ATOMIC_CREATE_ECP_OUT_FLAG_EOF_SET Indica que um tamanho de arquivo foi definido no arquivo e que a alocação em disco ocorreu para dar suporte ao tamanho do arquivo solicitado.
ATOMIC_CREATE_ECP_OUT_FLAG_VDL_SET Indica que um comprimento de dados válido foi definido no arquivo e que o tamanho do arquivo foi definido como pelo menos o comprimento de dados válido solicitado.
ATOMIC_CREATE_ECP_OUT_FLAG_OPERATION_MASK Use esse valor de sinalizador como uma máscara para determinar as operações complementares que foram executadas com a operação de criação.

ReparseBufferLength

O comprimento do membro ReparseBuffer . Esse valor não pode exceder o MAXIMUM_REPARSE_DATA_BUFFER_SIZE (16K).

ReparseBuffer

O valor opcional que indica o tipo de buffer usado na operação de criação. Os valores possíveis são REPARSE_DATA_BUFFER ou REPARSE_GUID_DATA_BUFFER.

FileSize

O valor opcional usado com ATOMIC_CREATE_ECP_IN_FLAG_EOF_SPECIFIED para indicar o tamanho do arquivo solicitado a ser definido no arquivo.

ValidDataLength

O valor opcional usado com ATOMIC_CREATE_ECP_IN_FLAG_VDL_SPECIFIED para indicar o comprimento de dados válido solicitado a ser definido no arquivo.

FileTimestamps

Ponteiro para uma estrutura de FILE_TIMESTAMPS opcional que contém a última instância registrada de ações específicas em um arquivo.

FileAttributes

Especifica os atributos de um arquivo.

UsnSourceInfo

Especifica sinalizadores opcionais de informações de origem usn (número de sequência de atualização).

Usn

Especifica o USN (Número de Sequência de Atualização). Esse valor é preenchido no final de GUID_ECP_ATOMIC_CREATE .

SuppressFileAttributeInheritanceMask

Máscara que indica os atributos de arquivo cujas regras de herança normais devem ser suprimidas.

InOpFlags

ATOMIC_CREATE_ECP_IN_OP_FLAG_xxx sinalizadores.

OutOpFlags

ATOMIC_CREATE_ECP_OUT_OP_FLAG_xxx sinalizadores.

InGenFlags

ATOMIC_CREATE_ECP_IN_GN_FLAG_xxx sinalizadores.

OutGenFlags

ATOMIC_CREATE_ECP_OUT_GN_FLAG_xxx sinalizadores.

CaseSensitiveFlagsMask

Indica quais sinalizadores de FILE_CS_FLAG_xxx são especificados; os sistemas de arquivos devem escolher os valores padrão para outros sinalizadores.

InCaseSensitiveFlags

Sinalizadores sensíveis a maiúsculas e minúsculas de entrada no arquivo. Mesmo que nenhuma BEST_EFFORT seja especificada, os sistemas de arquivos podem ignorar alguns dos InCaseSensitiveFlags. O comportamento é semelhante a FileCaseSensitiveInformation para que os chamadores possam examinar OutCaseSensitiveFlags para conhecer os sinalizadores definidos. Se não houver suporte para um sinalizador em algum arquivo ou diretório, BEST_EFFORT entraria em vigor.

OutCaseSensitiveFlags

Esse membro retorna os sinalizadores que diferenciam maiúsculas de minúsculas no arquivo, mesmo que nenhum InCaseSensitiveFlags seja especificado.

Comentários

O valor GUID_ECP_ATOMIC_CREATE** definido pelo sistema é usado com essa estrutura de contexto ECP ao chamar rotinas de suporte relacionadas ao ECP, como FltAllocateExtraCreateParameter e FsRtlRemoveExtraCreateParameter.

Consulte Introdução a parâmetros de criação extra para obter mais informações.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1607
Servidor mínimo com suporte Windows Server 2016
Cabeçalho ntifs.h