2.12.1 Ghosted Extents Stream Structure

A ghosted extent stream structure represents ghosted extents in the DATA backup stream. Ghosted extents are a kind of sparse extents, which store a GUID representing the owner of the extent and some variable-sized metadata. The structure of the data portion of this backup stream for a specific implementation is as follows:


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Count

TotalCount

Data (variable)

...

Count (4 bytes): The number of extents in the Data portion.

TotalCount (4 bytes): The total number of ghosted extents in the stream.

Data (Variable):  The data portion of the above structure contains a variable number of extents. The number of extents is given by Count. The structure of each Extent is described below:


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Offset

...

Length

...

Guid

...

...

...

NextOffset

Size

Data (variable)

...

Offset (8 bytes): The logical byte offset in the DATA backup stream where the ghosted extent starts.

Length (8 bytes): The logical length of the ghosted extent.

GUID (16 bytes): The GUID identifier of the owner for the ghosted extent.

NextOffset (4 bytes): Offset to the next Extent structure.

Size (4 bytes): Size of the metadata of the ghosted extent.

Data (variable): Metadata of the ghosted extent.