Condividi tramite


COPYFILE2_MESSAGE struttura (winbase.h)

Passato alla funzione di callback CopyFile2ProgressRoutine con informazioni su un'operazione di copia in sospeso.

Sintassi

typedef struct COPYFILE2_MESSAGE {
  COPYFILE2_MESSAGE_TYPE Type;
  DWORD                  dwPadding;
  union {
    struct {
      DWORD          dwStreamNumber;
      DWORD          dwReserved;
      HANDLE         hSourceFile;
      HANDLE         hDestinationFile;
      ULARGE_INTEGER uliChunkNumber;
      ULARGE_INTEGER uliChunkSize;
      ULARGE_INTEGER uliStreamSize;
      ULARGE_INTEGER uliTotalFileSize;
    } ChunkStarted;
    struct {
      DWORD          dwStreamNumber;
      DWORD          dwFlags;
      HANDLE         hSourceFile;
      HANDLE         hDestinationFile;
      ULARGE_INTEGER uliChunkNumber;
      ULARGE_INTEGER uliChunkSize;
      ULARGE_INTEGER uliStreamSize;
      ULARGE_INTEGER uliStreamBytesTransferred;
      ULARGE_INTEGER uliTotalFileSize;
      ULARGE_INTEGER uliTotalBytesTransferred;
    } ChunkFinished;
    struct {
      DWORD          dwStreamNumber;
      DWORD          dwReserved;
      HANDLE         hSourceFile;
      HANDLE         hDestinationFile;
      ULARGE_INTEGER uliStreamSize;
      ULARGE_INTEGER uliTotalFileSize;
    } StreamStarted;
    struct {
      DWORD          dwStreamNumber;
      DWORD          dwReserved;
      HANDLE         hSourceFile;
      HANDLE         hDestinationFile;
      ULARGE_INTEGER uliStreamSize;
      ULARGE_INTEGER uliStreamBytesTransferred;
      ULARGE_INTEGER uliTotalFileSize;
      ULARGE_INTEGER uliTotalBytesTransferred;
    } StreamFinished;
    struct {
      DWORD dwReserved;
    } PollContinue;
    struct {
      COPYFILE2_COPY_PHASE CopyPhase;
      DWORD                dwStreamNumber;
      HRESULT              hrFailure;
      DWORD                dwReserved;
      ULARGE_INTEGER       uliChunkNumber;
      ULARGE_INTEGER       uliStreamSize;
      ULARGE_INTEGER       uliStreamBytesTransferred;
      ULARGE_INTEGER       uliTotalFileSize;
      ULARGE_INTEGER       uliTotalBytesTransferred;
    } Error;
  } Info;
} COPYFILE2_MESSAGE;

Members

Type

Valore dell'enumerazione COPYFILE2_MESSAGE_TYPE utilizzata come discriminante per l'unione info all'interno di questa struttura.

Valore Significato
COPYFILE2_CALLBACK_CHUNK_STARTED
1
Indica che un singolo blocco di un flusso è stato avviato per la copia. Le informazioni si trovano nella struttura ChunkStarted all'interno dell'unione info .
COPYFILE2_CALLBACK_CHUNK_FINISHED
2
Indica la copia di un singolo blocco di un flusso completato. Le informazioni si trovano nella struttura ChunkFinished all'interno dell'unione info .
COPYFILE2_CALLBACK_STREAM_STARTED
3
Indica che sia gli handle di origine che di destinazione per un flusso sono stati aperti e la copia del flusso sta per essere avviata. Le informazioni si trovano nella struttura StreamStarted all'interno dell'unione info . Ciò non indica che la copia è stata avviata per tale flusso.
COPYFILE2_CALLBACK_STREAM_FINISHED
4
Indica che l'operazione di copia per un flusso è stata completata correttamente o a causa di un COPYFILE2_PROGRESS_STOP restituito da CopyFile2ProgressRoutine. Le informazioni si trovano nella struttura StreamFinished all'interno dell'unione info .
COPYFILE2_CALLBACK_POLL_CONTINUE
5
Può essere inviato periodicamente. Le informazioni si trovano nella struttura PollContinue all'interno dell'unione info .
COPYFILE2_CALLBACK_ERROR
6
Errore durante l'operazione di copia. Le informazioni si trovano nella struttura Di errore all'interno dell'unione info .

dwPadding

Info

Info.ChunkStarted

Questa struttura è selezionata se il membro Type è impostato su COPYFILE2_CALLBACK_CHUNK_STARTED (1).

Info.ChunkStarted.dwStreamNumber

Indica quale flusso all'interno del file sta per essere copiato. Il valore usato per identificare un flusso all'interno di un file inizierà a uno (1) e sarà sempre superiore a qualsiasi flusso precedente per tale file.

Info.ChunkStarted.dwReserved

Questo membro è riservato per l'uso interno.

Info.ChunkStarted.hSourceFile

Gestire il flusso di origine.

Info.ChunkStarted.hDestinationFile

Gestire il flusso di destinazione.

Info.ChunkStarted.uliChunkNumber

Indica quale blocco all'interno del flusso corrente sta per essere copiato. Il valore usato per un blocco inizierà a zero (0) e sarà sempre superiore a quello di qualsiasi blocco precedente per il flusso corrente.

Info.ChunkStarted.uliChunkSize

Dimensioni del blocco copiato, in byte.

Info.ChunkStarted.uliStreamSize

Dimensioni del flusso corrente, in byte.

Info.ChunkStarted.uliTotalFileSize

Dimensioni di tutti i flussi per questo file, in byte.

Info.ChunkFinished

Questa struttura viene selezionata se il membro Type è impostato su COPYFILE2_CALLBACK_CHUNK_FINISHED (2).

ChunkFinished.dwReserved

Questo membro è riservato per l'uso interno.

Info.ChunkFinished.dwStreamNumber

Indica quale flusso all'interno del file sta per essere copiato. Il valore usato per identificare un flusso all'interno di un file inizierà a uno (1) e sarà sempre superiore a qualsiasi flusso precedente per tale file.

Info.ChunkFinished.dwFlags

Info.ChunkFinished.hSourceFile

Gestire il flusso di origine.

Info.ChunkFinished.hDestinationFile

Gestire il flusso di destinazione.

Info.ChunkFinished.uliChunkNumber

Indica quale blocco all'interno del flusso corrente è in fase di elaborazione. Il valore usato per un blocco inizierà a zero (0) e sarà sempre superiore a quello di qualsiasi blocco precedente per il flusso corrente.

Info.ChunkFinished.uliChunkSize

Dimensioni del blocco copiato, in byte.

Info.ChunkFinished.uliStreamSize

Dimensioni del flusso corrente, in byte.

Info.ChunkFinished.uliStreamBytesTransferred

Totale byte copiati per questo flusso finora.

Info.ChunkFinished.uliTotalFileSize

Dimensioni di tutti i flussi per questo file, in byte.

Info.ChunkFinished.uliTotalBytesTransferred

Totale byte copiati per questo file finora.

Info.StreamStarted

Questa struttura viene selezionata se il membro Type è impostato su COPYFILE2_CALLBACK_STREAM_STARTED (3).

Info.StreamStarted.dwStreamNumber

Indica quale flusso all'interno del file sta per essere copiato. Il valore usato per identificare un flusso all'interno di un file inizierà a uno (1) e sarà sempre superiore a qualsiasi flusso precedente per tale file.

Info.StreamStarted.dwReserved

Questo membro è riservato per l'uso interno.

Info.StreamStarted.hSourceFile

Gestire il flusso di origine.

Info.StreamStarted.hDestinationFile

Gestire il flusso di destinazione.

Info.StreamStarted.uliStreamSize

Dimensioni del flusso corrente, in byte.

Info.StreamStarted.uliTotalFileSize

Dimensioni di tutti i flussi per questo file, in byte.

Info.StreamFinished

Questa struttura viene selezionata se il membro Type è impostato su COPYFILE2_CALLBACK_STREAM_FINISHED (4).

Info.StreamFinished.dwStreamNumber

Indica quale flusso all'interno del file sta per essere copiato. Il valore usato per identificare un flusso all'interno di un file inizierà a uno (1) e sarà sempre superiore a qualsiasi flusso precedente per tale file.

Info.StreamFinished.dwReserved

Questo membro è riservato per l'uso interno.

Info.StreamFinished.hSourceFile

Gestire il flusso di origine.

Info.StreamFinished.hDestinationFile

Gestire il flusso di destinazione.

Info.StreamFinished.uliStreamSize

Dimensioni del flusso corrente, in byte.

Info.StreamFinished.uliStreamBytesTransferred

Totale byte copiati per questo flusso finora.

Info.StreamFinished.uliTotalFileSize

Dimensioni di tutti i flussi per questo file, in byte.

Info.StreamFinished.uliTotalBytesTransferred

Totale byte copiati per questo file finora.

Info.PollContinue

Questa struttura viene selezionata se il membro Type è impostato su COPYFILE2_CALLBACK_POLL_CONTNUE (5).

Info.PollContinue.dwReserved

Questo membro è riservato per l'uso interno.

Info.Error

Questa struttura viene selezionata se il membro Type è impostato su COPYFILE2_CALLBACK_ERROR (6).

Info.Error.CopyPhase

Valore dell'enumerazione COPYFILE2_COPY_PHASE che indica la fase corrente della copia al momento dell'errore.

Info.Error.dwStreamNumber

Numero del flusso che è stato elaborato al momento dell'errore.

Info.Error.hrFailure

Valore che indica il problema.

Info.Error.dwReserved

Questo membro è riservato per l'uso interno.

Info.Error.uliChunkNumber

Indica quale blocco all'interno del flusso corrente è stato elaborato al momento dell'errore. Il valore usato per un blocco inizierà a zero (0) e sarà sempre superiore a quello di qualsiasi blocco precedente per il flusso corrente.

Info.Error.uliStreamSize

Dimensioni, in byte, del flusso in fase di elaborazione.

Info.Error.uliStreamBytesTransferred

Numero di byte trasferiti correttamente per il flusso in fase di elaborazione.

Info.Error.uliTotalFileSize

Dimensioni, in byte, del file totale da elaborare.

Info.Error.uliTotalBytesTransferred

Numero di byte trasferiti correttamente per l'intera operazione di copia.

Commenti

Per compilare un'applicazione che usa la struttura COPYFILE2_MESSAGE , definire la macro _WIN32_WINNT come 0x0601 o versione successiva. Per altre informazioni, vedere Uso delle intestazioni di Windows.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 [app desktop | App UWP]
Intestazione winbase.h (include Windows.h)