Freigeben über


COPYFILE2_MESSAGE-Struktur (winbase.h)

Wird an die Rückruffunktion CopyFile2ProgressRoutine mit Informationen zu einem ausstehenden Kopiervorgang übergeben.

Syntax

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;

Member

Type

Wert aus der COPYFILE2_MESSAGE_TYPE Enumeration, die als Diskriminant für die Info-Union innerhalb dieser Struktur verwendet wird.

Wert Bedeutung
COPYFILE2_CALLBACK_CHUNK_STARTED
1
Gibt an, dass ein einzelner Teil eines Datenstroms mit dem Kopieren begonnen hat. Informationen befinden sich in der Struktur ChunkStarted innerhalb der Info-Union .
COPYFILE2_CALLBACK_CHUNK_FINISHED
2
Gibt an, dass die Kopie eines einzelnen Abschnitts eines Datenstroms abgeschlossen wurde. Informationen befinden sich in der Struktur ChunkFinished innerhalb der Info-Union .
COPYFILE2_CALLBACK_STREAM_STARTED
3
Gibt an, dass sowohl Quell- als auch Zielhandles für einen Stream geöffnet wurden und die Kopie des Datenstroms gestartet werden soll. Informationen befinden sich in der StreamStarted-Struktur innerhalb der Info-Union . Dies gibt nicht an, dass die Kopie für diesen Stream gestartet wurde.
COPYFILE2_CALLBACK_STREAM_FINISHED
4
Gibt an, dass der Kopiervorgang für einen Stream erfolgreich abgeschlossen wurde, entweder erfolgreich oder aufgrund einer COPYFILE2_PROGRESS_STOP Rückgabe von CopyFile2ProgressRoutine. Informationen befinden sich in der StreamFinished-Struktur innerhalb der Info-Union .
COPYFILE2_CALLBACK_POLL_CONTINUE
5
Kann in regelmäßigen Abständen gesendet werden. Informationen befinden sich in der PollContinue-Struktur innerhalb der Info-Union .
COPYFILE2_CALLBACK_ERROR
6
Während des Kopiervorgangs ist ein Fehler aufgetreten. Informationen befinden sich in der Fehlerstruktur innerhalb der Info-Union .

dwPadding

Info

Info.ChunkStarted

Diese Struktur wird ausgewählt, wenn das Element Typ auf COPYFILE2_CALLBACK_CHUNK_STARTED (1) festgelegt ist.

Info.ChunkStarted.dwStreamNumber

Gibt an, welcher Stream in der Datei kopiert werden soll. Der Wert, der zum Identifizieren eines Datenstroms in einer Datei verwendet wird, beginnt bei eins (1) und ist immer höher als jeder vorherige Stream für diese Datei.

Info.ChunkStarted.dwReserved

Dieser Member ist für die interne Verwendung reserviert.

Info.ChunkStarted.hSourceFile

Handle für den Quelldatenstrom.

Info.ChunkStarted.hDestinationFile

Handle für den Zieldatenstrom.

Info.ChunkStarted.uliChunkNumber

Gibt an, welcher Block innerhalb des aktuellen Datenstroms kopiert werden soll. Der für einen Block verwendete Wert beginnt bei null (0) und ist immer höher als der eines vorherigen Blocks für den aktuellen Stream.

Info.ChunkStarted.uliChunkSize

Größe des kopierten Blöckes in Byte.

Info.ChunkStarted.uliStreamSize

Größe des aktuellen Datenstroms in Byte.

Info.ChunkStarted.uliTotalFileSize

Größe aller Streams für diese Datei in Bytes.

Info.ChunkFinished

Diese Struktur wird ausgewählt, wenn der Typmember auf COPYFILE2_CALLBACK_CHUNK_FINISHED (2) festgelegt ist.

ChunkFinished.dwReserved

Dieser Member ist für die interne Verwendung reserviert.

Info.ChunkFinished.dwStreamNumber

Gibt an, welcher Stream in der Datei kopiert werden soll. Der Wert, der zum Identifizieren eines Datenstroms in einer Datei verwendet wird, beginnt bei eins (1) und ist immer höher als jeder vorherige Stream für diese Datei.

Info.ChunkFinished.dwFlags

Info.ChunkFinished.hSourceFile

Handle für den Quelldatenstrom.

Info.ChunkFinished.hDestinationFile

Handle für den Zieldatenstrom.

Info.ChunkFinished.uliChunkNumber

Gibt an, welcher Block innerhalb des aktuellen Datenstroms verarbeitet wird. Der für einen Block verwendete Wert beginnt bei null (0) und ist immer höher als der eines vorherigen Blocks für den aktuellen Stream.

Info.ChunkFinished.uliChunkSize

Größe des kopierten Blöckes in Byte.

Info.ChunkFinished.uliStreamSize

Größe des aktuellen Datenstroms in Byte.

Info.ChunkFinished.uliStreamBytesTransferred

Gesamtbytes, die bisher für diesen Stream kopiert wurden.

Info.ChunkFinished.uliTotalFileSize

Größe aller Streams für diese Datei in Bytes.

Info.ChunkFinished.uliTotalBytesTransferred

Gesamtbytes, die bisher für diese Datei kopiert wurden.

Info.StreamStarted

Diese Struktur wird ausgewählt, wenn der Typmember auf COPYFILE2_CALLBACK_STREAM_STARTED (3) festgelegt ist.

Info.StreamStarted.dwStreamNumber

Gibt an, welcher Stream in der Datei kopiert werden soll. Der Wert, der zum Identifizieren eines Datenstroms in einer Datei verwendet wird, beginnt bei eins (1) und ist immer höher als jeder vorherige Stream für diese Datei.

Info.StreamStarted.dwReserved

Dieser Member ist für die interne Verwendung reserviert.

Info.StreamStarted.hSourceFile

Handle für den Quelldatenstrom.

Info.StreamStarted.hDestinationFile

Handle für den Zieldatenstrom.

Info.StreamStarted.uliStreamSize

Größe des aktuellen Datenstroms in Byte.

Info.StreamStarted.uliTotalFileSize

Größe aller Streams für diese Datei in Bytes.

Info.StreamFinished

Diese Struktur wird ausgewählt, wenn das Element Typ auf COPYFILE2_CALLBACK_STREAM_FINISHED (4) festgelegt ist.

Info.StreamFinished.dwStreamNumber

Gibt an, welcher Stream in der Datei kopiert werden soll. Der Wert, der zum Identifizieren eines Datenstroms in einer Datei verwendet wird, beginnt bei eins (1) und ist immer höher als jeder vorherige Stream für diese Datei.

Info.StreamFinished.dwReserved

Dieser Member ist für die interne Verwendung reserviert.

Info.StreamFinished.hSourceFile

Handle für den Quelldatenstrom.

Info.StreamFinished.hDestinationFile

Handle für den Zieldatenstrom.

Info.StreamFinished.uliStreamSize

Größe des aktuellen Datenstroms in Byte.

Info.StreamFinished.uliStreamBytesTransferred

Gesamtbytes, die bisher für diesen Stream kopiert wurden.

Info.StreamFinished.uliTotalFileSize

Größe aller Streams für diese Datei in Bytes.

Info.StreamFinished.uliTotalBytesTransferred

Gesamtbytes, die bisher für diese Datei kopiert wurden.

Info.PollContinue

Diese Struktur wird ausgewählt, wenn das Element Typ auf COPYFILE2_CALLBACK_POLL_CONTNUE (5) festgelegt ist.

Info.PollContinue.dwReserved

Dieser Member ist für die interne Verwendung reserviert.

Info.Error

Diese Struktur wird ausgewählt, wenn der Typmember auf COPYFILE2_CALLBACK_ERROR (6) festgelegt ist.

Info.Error.CopyPhase

Wert aus der COPYFILE2_COPY_PHASE-Enumeration , der die aktuelle Phase der Kopie zum Zeitpunkt des Fehlers angibt.

Info.Error.dwStreamNumber

Die Nummer des Datenstroms, der zum Zeitpunkt des Fehlers verarbeitet wurde.

Info.Error.hrFailure

Wert, der das Problem angibt.

Info.Error.dwReserved

Dieser Member ist für die interne Verwendung reserviert.

Info.Error.uliChunkNumber

Gibt an, welcher Block innerhalb des aktuellen Datenstroms zum Zeitpunkt des Fehlers verarbeitet wurde. Der für einen Block verwendete Wert beginnt bei null (0) und ist immer höher als der eines vorherigen Blocks für den aktuellen Stream.

Info.Error.uliStreamSize

Größe des verarbeiteten Datenstroms in Byte.

Info.Error.uliStreamBytesTransferred

Anzahl der Bytes, die für den verarbeiteten Stream erfolgreich übertragen wurden.

Info.Error.uliTotalFileSize

Größe der gesamt verarbeiteten Datei in Byte.

Info.Error.uliTotalBytesTransferred

Anzahl der Bytes, die für den gesamten Kopiervorgang erfolgreich übertragen wurden.

Hinweise

Um eine Anwendung zu kompilieren, die die COPYFILE2_MESSAGE-Struktur verwendet, definieren Sie das _WIN32_WINNT Makro als 0x0601 oder höher. Weitere Informationen finden Sie unter Verwenden der Windows-Header.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [Desktop-Apps | UWP-Apps]
Kopfzeile winbase.h (einschließlich Windows.h)