estrutura COPYFILE2_EXTENDED_PARAMETERS_V2 (winbase.h)

Contém funcionalidades adicionais atualizadas além da estrutura COPYFILE2_EXTENDED_PARAMETERS para a função CopyFile2 .

Sintaxe

typedef struct COPYFILE2_EXTENDED_PARAMETERS_V2 {
  DWORD                         dwSize;
  DWORD                         dwCopyFlags;
  BOOL                          *pfCancel;
  PCOPYFILE2_PROGRESS_ROUTINE   pProgressRoutine;
  PVOID                         pvCallbackContext;
  DWORD                         dwCopyFlagsV2;
  ULONG                         ioDesiredSize;
  ULONG                         ioDesiredRate;
  LPPROGRESS_ROUTINE            pProgressRoutineOld;
  PCOPYFILE2_CREATE_OPLOCK_KEYS SourceOplockKeys;
#if ...
  PVOID                         reserved[6];
#elif
  PVOID                         reserved[7];
#else
  PVOID                         reserved[8];
#endif
} COPYFILE2_EXTENDED_PARAMETERS_V2;

Membros

dwSize

Contém o tamanho dessa estrutura, sizeof(COPYFILE2_EXTENDED_PARAMETERS_V2).

dwCopyFlags

Contém uma combinação de zero ou mais desses valores de sinalizador.

Valor Significado
COPY_FILE_FAIL_IF_EXISTS
0x00000001
Se o arquivo de destino existir, a operação de cópia falhará imediatamente. Se existir um arquivo ou diretório com o nome de destino, a chamada de função CopyFile2 falhará com HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS) ou HRESULT_FROM_WIN32(ERROR_FILE_EXISTS). Se COPY_FILE_RESUME_FROM_PAUSE também for especificado, uma falha só será disparada se o arquivo de destino não tiver um cabeçalho de reinicialização válido.
COPY_FILE_RESTARTABLE
0x00000002
O arquivo é copiado de uma maneira que pode ser reiniciada se os mesmos nomes de arquivo de origem e destino forem usados novamente. Isso é mais lento.
COPY_FILE_OPEN_SOURCE_FOR_WRITE
0x00000004
O arquivo é copiado e o arquivo de origem é aberto para acesso de gravação.
COPY_FILE_ALLOW_DECRYPTED_DESTINATION
0x00000008
A cópia será tentada mesmo se o arquivo de destino não puder ser criptografado.
COPY_FILE_COPY_SYMLINK
0x00000800
Se o arquivo de origem for um link simbólico, o arquivo de destino também será um link simbólico apontando para o mesmo arquivo que o link simbólico de origem.
COPY_FILE_NO_BUFFERING
0x00001000
A cópia é executada usando E/S sem buffer, ignorando os recursos de cache do sistema. Esse sinalizador é recomendado para cópias de arquivo muito grandes. Não é recomendável pausar cópias que estão usando esse sinalizador.
COPY_FILE_REQUEST_SECURITY_PRIVILEGES
0x00002000
A cópia é tentada, especificando ACCESS_SYSTEM_SECURITY para o arquivo de origem e ACCESS_SYSTEM_SECURITY \| WRITE_DAC \| WRITE_OWNER para o arquivo de destino. Se essas solicitações forem negadas, a solicitação de acesso será reduzida ao nível de privilégio mais alto para o qual o acesso é concedido. Para obter mais informações, consulte Direito de Acesso à SACL. Isso pode ser usado para permitir que o retorno de chamada CopyFile2ProgressRoutine execute operações que exigem privilégios mais altos, como copiar os atributos de segurança para o arquivo.
COPY_FILE_RESUME_FROM_PAUSE
0x00004000
O arquivo de destino é examinado para ver se ele foi copiado usando COPY_FILE_RESTARTABLE. Nesse caso, a cópia será retomada. Caso contrário, o arquivo será totalmente copiado.
COPY_FILE_NO_OFFLOAD
0x00040000
Não tente usar o mecanismo de descarregamento de cópia do Windows. Isso geralmente não é recomendado.
COPY_FILE_IGNORE_EDP_BLOCK
0x00400000
Em vez de bloquear, o arquivo deve ser copiado e criptografado no destino, se houver suporte do sistema de arquivos de destino. Com suporte no Windows 10 e posterior.
COPY_FILE_IGNORE_SOURCE_ENCRYPTION
0x00800000
Ignorar o estado criptografado do arquivo de origem. Com suporte no Windows 10 e posterior.
COPY_FILE_DONT_REQUEST_DEST_WRITE_DAC
0x02000000
Não solicite WRITE_DAC para o acesso ao arquivo de destino. Com suporte no Windows 10 e posterior.
COPY_FILE_OPEN_AND_COPY_REPARSE_POINT
0x00200000
Sempre copie o ponto de nova análise, independentemente do tipo. É responsabilidade do chamador entender o significado do ponto de nova análise. Com suporte no Windows 10, build 19041 e posterior.
COPY_FILE_DIRECTORY
0x00000080
Indica que o arquivo de origem é um arquivo de diretório. Quando fornecido, o arquivo de origem é aberto com FILE_OPEN_FOR_BACKUP_INTENT. O arquivo de diretório terá seus fluxos de dados alternativos, informações de ponto de nova análise e EAs copiados como um arquivo normal. Com suporte no Windows 10, build 19041 e posterior.
COPY_FILE_SKIP_ALTERNATE_STREAMS
0x00008000
Não copie fluxos de dados alternativos. Com suporte no Windows 10, build 19041 e posterior.
COPY_FILE_DISABLE_PRE_ALLOCATION
0x04000000
Não pré-alocar o tamanho do arquivo de destino antes de executar a cópia. Com suporte no Windows 10, build 19041 e posterior.
COPY_FILE_ENABLE_LOW_FREE_SPACE_MODE
0x08000000
Habilitar o modo LowFreeSpace. Nenhuma E/S sobreposta é usada. O descarregamento ODX e SMB não são tentados. Com suporte no Windows 10, build 19041 e posterior.
COPY_FILE_REQUEST_COMPRESSED_TRAFFIC
0x10000000
Solicite que o canal de transferência subjacente compacte os dados durante a operação de cópia. A solicitação pode não ter suporte para todos os meios, caso em que ela é ignorada. Os atributos e parâmetros de compactação (complexidade computacional, uso de memória) não são configuráveis por meio dessa API e estão sujeitos a alterações entre diferentes versões do sistema operacional.

Esse sinalizador foi introduzido em Windows 10, versão 1903 e Windows Server 2022. Em Windows 10, o sinalizador tem suporte para arquivos que residem em compartilhamentos SMB, em que a versão do protocolo SMB negociada é SMB v3.1.1 ou superior.
COPY_FILE_ENABLE_SPARSE_COPY
0x20000000
Habilite a retenção do estado esparso do arquivo durante a cópia. Com suporte no Windows 11, build 22H2 e posterior.

pfCancel

Se esse sinalizador for definido como TRUE durante a operação de cópia, a operação de cópia será cancelada.

pProgressRoutine

O endereço opcional de uma função de retorno de chamada do tipo PCOPYFILE2_PROGRESS_ROUTINE que é chamado sempre que outra parte do arquivo é copiada. Este parâmetro pode ser NULL. Para obter mais informações sobre a função de retorno de chamada de progresso, consulte a função de retorno de chamada CopyFile2ProgressRoutine . Se pProgressRoutineOld e pProgressRoutine forem fornecidos, pProgressRoutineOld terá precedência.

pvCallbackContext

Um ponteiro para informações de contexto específicas do aplicativo a serem passadas para o CopyFile2ProgressRoutine.

dwCopyFlagsV2

Contém uma combinação de zero ou mais desses valores de sinalizador.

Valor Significado
COPY_FILE2_V2_DONT_COPY_JUNCTIONS
0x00000001
Desabilite a cópia de junções.

ioDesiredSize

Opcional. O tamanho solicitado (em bytes) para cada operação de E/S (ou seja, um ciclo de leitura/gravação ao copiar o arquivo). Isso poderá ser reduzido se a memória insuficiente estiver disponível. Se zero, o tamanho padrão será usado. Isso poderá ser ignorado se ioDesiredRate também for fornecido

ioDesiredRate

Opcional. A taxa média de E/S solicitada, em quilobytes por segundo. Se zero, as cópias são executadas o mais rápido possível.

pProgressRoutineOld

SourceOplockKeys

reserved[6]

reserved[7]

reserved[8]

pProgressRoutineOld. Opcional. O endereço de uma função de retorno de chamada de estilo antigo do tipo LPPROGRESS_ROUTINE que é chamado sempre que outra parte do arquivo é copiada. Este parâmetro pode ser NULL. Para obter mais informações, sobre a função de retorno de chamada de progresso, consulte LPPROGRESS_ROUTINE retorno de chamada. Se pProgressRoutineOld e pProgressRoutine forem fornecidos, pProgressRoutineOld terá precedência.

Comentários

Para compilar um aplicativo que usa essa estrutura, defina a macro _WIN32_WINNT como _WIN32_WINNT_WIN8 ou posterior. Para obter mais informações, consulte Usando os cabeçalhos do Windows.

Requisitos

   
Cliente mínimo com suporte Windows 11 [aplicativos da área de trabalho Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 [aplicativos da área de trabalho Aplicativos UWP]
Cabeçalho winbase.h (incluir Windows.h)

Confira também

CopyFile2

COPYFILE2_EXTENDED_PARAMETERS

CopyFile2ProgressRoutine

Estruturas de gerenciamento de arquivos

LPPROGRESS_ROUTINE

Como usar os cabeçalhos do Windows