2.2.32.4.1 HASH_HEADER

All content information files MUST start with a valid format HASH_HEADER as follows.

Content information follows this header at an offset indicated by the HashBlobOffset field, if HashVersion is set to SRV_HASH_VER_1, the Content Information data structure is as specified in [MS-PCCRC] section 2.3; if HashVersion is set to SRV_HASH_VER_2, the Content Information data structure is as specified in [MS-PCCRC] section 2.4.


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

HashType

HashVersion

SourceFileChangeTime

...

SourceFileSize

...

HashBlobLength

HashBlobOffset

Dirty

SourceFileNameLength

SourceFileName (variable)

...

HashType (4 bytes): The hash type indicates what the hash is used for. This field MUST be constructed using the following value.

Value

Meaning

SRV_HASH_TYPE_PEER_DIST

0x00000001

Indicates that the hash is used for branch caching as described in [MS-PCCRC].

HashVersion (4 bytes): The version number of the algorithm used to create the Content Information. This field MUST be constructed using one of the following values.

Value

Meaning

SRV_HASH_VER_1

0x00000001

Branch cache version 1.

SRV_HASH_VER_2

0x00000002

Branch cache version 2. This value is only applicable for servers that implement the SMB 3.x dialect family.

SourceFileChangeTime (8 bytes): The last update time for the source file from which the Content Information is generated, in FILETIME format as specified in [MS-DTYP] section 2.3.3.

SourceFileSize (8 bytes): The length, in bytes, of the source file from which the Content Information is generated.

HashBlobLength (4 bytes): The length, in bytes, of the Content Information.

HashBlobOffset (4 bytes): The offset of the Content Information, in bytes, from the beginning of the Content Information File.

Dirty (2 bytes): A flag that indicates whether the Content Information File is currently being updated. A nonzero value indicates TRUE.

SourceFileNameLength (2 bytes): The length, in bytes, of the source file full name.

SourceFileName (variable): A variable-length buffer that contains the source file full name, with length indicated by SourceFileNameLength.<70>