3.4 0x06Primary Stream

This section provides an example of a 0x06Primary stream (1) that contains an IRMDSTransformInfo structure (section 2.2.6). Note that the first portion of this structure consists of a TransformInfoHeader structure (section 2.1.8).

 00000000:  58 00 00 00 01 00 00 00  4C 00 00 00 7B 00 43 00
 00000010:  37 00 33 00 44 00 46 00  41 00 43 00 44 00 2D 00
 00000020:  30 00 36 00 31 00 46 00  2D 00 34 00 33 00 42 00
 00000030:  30 00 2D 00 38 00 42 00  36 00 34 00 2D 00 30 00
 00000040:  43 00 36 00 32 00 30 00  44 00 32 00 41 00 38 00
 00000050:  42 00 35 00 30 00 7D 00  3E 00 00 00 4D 00 69 00
 00000060:  63 00 72 00 69 00 73 00  6F 00 66 00 74 00 2E 00
 00000070:  4D 00 65 00 74 00 61 00  64 00 61 00 74 00 61 00
 00000080:  2E 00 44 00 52 00 4D 00  54 00 72 00 61 00 6E 00
 00000090:  73 00 66 00 6F 00 72 00  6D 00 00 00 01 00 00 00
 000000A0:  01 00 00 00 01 00 00 00  04 00 00 00 26 2F 00 00
 000000B0:  3C 3F 78 6D 6C 20 76 65  72 73 69 6F 6E 3D 22 31


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

TransformInfoHeader.TransformLength

TransformInfoHeader.TransformType

TransformInfoHeader.TransformID (variable)

...

TransformInfoHeader.TransformName (variable)

...

TransformInfoHeader.ReaderVersion.vMajor

TransformInfoHeader.ReaderVersion.vMinor

TransformInfoHeader.UpdaterVersion.vMajor

TransformInfoHeader.UpdaterVersion.vMinor

TransformInfoHeader.WriterVersion.vMajor

TransformInfoHeader.WriterVersion.vMinor

ExtensibilityHeader

XrMLLicense (variable)

...

TransformInfoHeader.TransformLength (4 bytes): 0x00000058 specifies the number of bytes in this structure before TransformInfoHeader.TransformName.

TransformInfoHeader.TransformType (4 bytes): 0x00000001 specifies the type of transform to be applied.

TransformInfoHeader.TransformID (variable): "{C73DFACD-061F-43B0-8B64-0C620D2A8B50}" specifies a unique, invariant identifier associated with this transform. This string is contained in a UNICODE-LP-P4 structure (section 2.1.2); therefore, the first 4 bytes of the structure contain 0x0000004C, which specifies the length, in bytes, of the string. The string is not null-terminated.

TransformInfoHeader.TransformName (variable): "Microsoft.Metadata.DRMTransform" specifies the logical name of the transform. This string is contained in a UNICODE-LP-P4 structure; therefore, the first 4 bytes of the structure contain 0x0000003E, which specifies the length, in bytes, of the string. The string is not null-terminated; however, the structure is padded with 2 bytes to ensure that its length is a multiple of 4 bytes.

TransformInfoHeader.ReaderVersion.vMajor (2 bytes): 0x0001 specifies the major component of the reader version of the software component that created this structure.

TransformInfoHeader.ReaderVersion.vMinor (2 bytes): 0x0000 specifies the minor component of the reader version of the software component that created this structure.

TransformInfoHeader.UpdaterVersion.vMajor (2 bytes): 0x0001 specifies the major component of the updater version of the software component that created this structure.

TransformInfoHeader.UpdaterVersion.vMinor (2 bytes): 0x0000 specifies the minor component of the updater version of the software component that created this structure.

TransformInfoHeader.WriterVersion.vMajor (2 bytes): 0x0001 specifies the major component of the writer version of the software component that created this structure.

TransformInfoHeader.WriterVersion.vMinor (2 bytes): 0x0000 specifies the minor component of the writer version of the software component that created this structure.

ExtensibilityHeader (4 bytes): 0x00000004 specifies that no further information exists in the ExtensibilityHeader structure (section 2.2.5).

XrMLLicense (variable): An XrML license as described in [MS-RMPR]. This string is contained in a UTF-8-LP-P4 structure (section 2.1.3); therefore, the first 4 bytes of the structure contain 0x00002F26, which specifies the length, in bytes, of the string. The string is not null-terminated; however, the structure is padded with 2 bytes to ensure that its length is a multiple of 4 bytes.