2.3.1 Header

The Header structure MUST be at the beginning of the file.

This structure has the following format.


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

guidFileType (16 bytes)

...

...

guidFile (16 bytes)

...

...

guidLegacyFileVersion (16 bytes)

...

...

guidFileFormat (16 bytes)

...

...

ffvLastCodeThatWroteToThisFile

ffvOldestCodeThatHasWrittenToThisFile

ffvNewestCodeThatHasWrittenToThisFile

ffvOldestCodeThatMayReadThisFile

fcrLegacyFreeChunkList

...

fcrLegacyTransactionLog

...

cTransactionsInLog

cbLegacyExpectedFileLength

rgbPlaceholder

...

fcrLegacyFileNodeListRoot

...

cbLegacyFreeSpaceInFreeChunkList

fNeedsDefrag

fRepairedFile

fNeedsGarbageCollect

fHasNoEmbeddedFileObjects

guidAncestor (16 bytes)

...

...

crcName

fcrHashedChunkList

...

...

fcrTransactionLog

...

...

fcrFileNodeListRoot

...

...

fcrFreeChunkList

...

...

cbExpectedFileLength

...

cbFreeSpaceInFreeChunkList

...

guidFileVersion (16 bytes)

...

...

nFileVersionGeneration

...

guidDenyReadFileVersion (16 bytes)

...

...

grfDebugLogFlags

fcrDebugLog

...

...

fcrAllocVerificationFreeChunkList

...

...

bnCreated

bnLastWroteToThisFile

bnOldestWritten

bnNewestWritten

rgbReserved (728 bytes)

...

...

guidFileType (16 bytes): A GUID, as specified by [MS-DTYP], that specifies the type of the revision store file. MUST be one of the values from the following table.

File format

Value

.one

{7B5C52E4-D88C-4DA7-AEB1-5378D02996D3}

.onetoc2

{43FF2FA1-EFD9-4C76-9EE2-10EA5722765F}

guidFile (16 bytes): A GUID, as specified by [MS-DTYP], that specifies the identity of this revision store file. SHOULD be globally unique.

guidLegacyFileVersion (16 bytes): MUST be "{00000000-0000-0000-0000-000000000000}" and MUST be ignored.

guidFileFormat (16 bytes): A GUID, as specified by [MS-DTYP], that specifies that the file is a revision store file. MUST be "{109ADD3F-911B-49F5-A5D0-1791EDC8AED8}".

ffvLastCodeThatWroteToThisFile (4 bytes): An unsigned integer. MUST be one of the values in the following table, depending on the file type.

File format

Value

.one

0x0000002A

.onetoc2

0x0000001B

ffvOldestCodeThatHasWrittenToThisFile (4 bytes): An unsigned integer. MUST be one of the values in the following table, depending on the file format of this file.

File format

Value

.one

0x0000002A

.onetoc2

0x0000001B

ffvNewestCodeThatHasWrittenToThisFile (4 bytes): An unsigned integer. MUST be one of the values in the following table, depending on the file format of this file.

File format

Value

.one

0x0000002A

.onetoc2

0x0000001B

ffvOldestCodeThatMayReadThisFile (4 bytes): An unsigned integer. MUST be one of the values in the following table, depending on the file format of this file.

File format

Value

.one

0x0000002A

.onetoc2

0x0000001B

fcrLegacyFreeChunkList (8 bytes): A FileChunkReference32 structure (section 2.2.4.1) that MUST have a value of "fcrZero" (see section 2.2.4).

fcrLegacyTransactionLog (8 bytes): A FileChunkReference32 structure that MUST be "fcrNil" (see section 2.2.4).

cTransactionsInLog (4 bytes): An unsigned integer that specifies the number of transactions in the transaction log (section 2.3.3). MUST NOT be zero.

cbLegacyExpectedFileLength (4 bytes): An unsigned integer that MUST be zero, and MUST be ignored.

rgbPlaceholder (8 bytes): An unsigned integer that MUST be zero, and MUST be ignored.

fcrLegacyFileNodeListRoot (8 bytes): A FileChunkReference32 structure that MUST be "fcrNil".

cbLegacyFreeSpaceInFreeChunkList (4 bytes): An unsigned integer that MUST be zero, and MUST be ignored.

fNeedsDefrag (1 byte): MUST be ignored.

fRepairedFile (1 byte): MUST be ignored.

fNeedsGarbageCollect (1 byte): MUST be ignored.

fHasNoEmbeddedFileObjects (1 byte): An unsigned integer that MUST be zero, and MUST be ignored.

guidAncestor (16 bytes): A GUID that specifies the Header.guidFile field of the table of contents file, as specified by [MS-ONE] section 2.1.15, given by the following table:

Table of contents file format

Location of table of contents file

Section file (.one)

Table of contents file is located in the same directory as this file.

Table of contents file (.onetoc2)

Table of contents file is located in the parent directory of this file.

If the GUID is {00000000-0000-0000-0000-000000000000}, this field does not reference a table of contents file.

crcName (4 bytes): An unsigned integer that specifies the CRC value (section 2.1.2) of the name of this revision store file. The name is the Unicode representation of the file name with its extension and an additional null character at the end. This CRC is calculated using the CRC algorithm for the .one file (section 2.1.2), regardless of this revision store file format.

fcrHashedChunkList (12 bytes): A FileChunkReference64x32 structure (section 2.2.4.4) that specifies a reference to the first FileNodeListFragment in a hashed chunk list (section 2.3.4). If the value of the FileChunkReference64x32 structure is "fcrZero" or "fcrNil", the hashed chunk list does not exist.

fcrTransactionLog (12 bytes): A FileChunkReference64x32 structure that specifies a reference to the first TransactionLogFragment structure (section 2.3.3.1) in a transaction log (section 2.3.3). The value of the fcrTransactionLog field MUST NOT be "fcrZero" and MUST NOT be "fcrNil".

fcrFileNodeListRoot (12 bytes): A FileChunkReference64x32 structure that specifies a reference to a root file node list (section 2.1.14). The value of the fcrFileNodeListRoot field MUST NOT be "fcrZero" and MUST NOT be "fcrNil".

fcrFreeChunkList (12 bytes): A FileChunkReference64x32 structure that specifies a reference to the first FreeChunkListFragment structure (section 2.3.2.1). If the value of the FileChunkReference64x32 structure is "fcrZero" or "fcrNil", then the free chunk list (section 2.3.2) does not exist.

cbExpectedFileLength (8 bytes): An unsigned integer that specifies the size, in bytes, of this revision store file.

cbFreeSpaceInFreeChunkList (8 bytes): An unsigned integer that SHOULD<3> specify the size, in bytes, of the free space specified by the free chunk list.

guidFileVersion (16 bytes): A GUID, as specified by [MS-DTYP]. When either the value of cTransactionsInLog field or the guidDenyReadFileVersion field is being changed, guidFileVersion MUST be changed to a new GUID.

nFileVersionGeneration (8 bytes): An unsigned integer that specifies the number of times the file has changed. MUST be incremented when the guidFileVersion field changes.

guidDenyReadFileVersion (16 bytes): A GUID, as specified by [MS-DTYP]. When the existing contents of the file are being changed, excluding the Header structure of the file and unused storage blocks, guidDenyReadFileVersion MUST be changed to a new GUID.

grfDebugLogFlags (4 bytes): MUST be zero. MUST be ignored.

fcrDebugLog (12 bytes): A FileChunkReference64x32 structure that MUST have a value "fcrZero". MUST be ignored.

fcrAllocVerificationFreeChunkList (12 bytes): A FileChunkReference64x32 structure that MUST be "fcrZero". MUST be ignored.

bnCreated (4 bytes): An unsigned integer that specifies the build number of the application that created this revision store file. SHOULD<4> be ignored.

bnLastWroteToThisFile (4 bytes): An unsigned integer that specifies the build number of the application that last wrote to this revision store file. SHOULD<5> be ignored.

bnOldestWritten (4 bytes): An unsigned integer that specifies the build number of the oldest application that wrote to this revision store file. SHOULD<6> be ignored.

bnNewestWritten (4 bytes): An unsigned integer that specifies the build number of the newest application that wrote to this revision store file. SHOULD<7> be ignored.

rgbReserved (728 bytes): MUST be zero. MUST be ignored.