Mercurial > libpst
comparison xml/libpst.in @ 149:f9773b6368e0
improve documentation of .pst format.
remove decrypt option from getidblock - we always decrypt.
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Sat, 28 Feb 2009 11:55:48 -0800 |
parents | bdb38b434c0a |
children | 06aa84023b48 |
comparison
equal
deleted
inserted
replaced
148:b47d04257b43 | 149:f9773b6368e0 |
---|---|
31 </partintro> | 31 </partintro> |
32 | 32 |
33 | 33 |
34 <refentry id="readpst.1"> | 34 <refentry id="readpst.1"> |
35 <refentryinfo> | 35 <refentryinfo> |
36 <date>2009-02-01</date> | 36 <date>2009-02-28</date> |
37 </refentryinfo> | 37 </refentryinfo> |
38 | 38 |
39 <refmeta> | 39 <refmeta> |
40 <refentrytitle>readpst</refentrytitle> | 40 <refentrytitle>readpst</refentrytitle> |
41 <manvolnum>1</manvolnum> | 41 <manvolnum>1</manvolnum> |
231 </refentry> | 231 </refentry> |
232 | 232 |
233 | 233 |
234 <refentry id="lspst.1"> | 234 <refentry id="lspst.1"> |
235 <refentryinfo> | 235 <refentryinfo> |
236 <date>2009-02-01</date> | 236 <date>2009-02-28</date> |
237 </refentryinfo> | 237 </refentryinfo> |
238 | 238 |
239 <refmeta> | 239 <refmeta> |
240 <refentrytitle>lspst</refentrytitle> | 240 <refentrytitle>lspst</refentrytitle> |
241 <manvolnum>1</manvolnum> | 241 <manvolnum>1</manvolnum> |
334 </refentry> | 334 </refentry> |
335 | 335 |
336 | 336 |
337 <refentry id="readpstlog.1"> | 337 <refentry id="readpstlog.1"> |
338 <refentryinfo> | 338 <refentryinfo> |
339 <date>2009-02-01</date> | 339 <date>2009-02-28</date> |
340 </refentryinfo> | 340 </refentryinfo> |
341 | 341 |
342 <refmeta> | 342 <refmeta> |
343 <refentrytitle>readpstlog</refentrytitle> | 343 <refentrytitle>readpstlog</refentrytitle> |
344 <manvolnum>1</manvolnum> | 344 <manvolnum>1</manvolnum> |
518 </refentry> | 518 </refentry> |
519 | 519 |
520 | 520 |
521 <refentry id="pst2ldif.1"> | 521 <refentry id="pst2ldif.1"> |
522 <refentryinfo> | 522 <refentryinfo> |
523 <date>2009-02-01</date> | 523 <date>2009-02-28</date> |
524 </refentryinfo> | 524 </refentryinfo> |
525 | 525 |
526 <refmeta> | 526 <refmeta> |
527 <refentrytitle>pst2ldif</refentrytitle> | 527 <refentrytitle>pst2ldif</refentrytitle> |
528 <manvolnum>1</manvolnum> | 528 <manvolnum>1</manvolnum> |
694 </refentry> | 694 </refentry> |
695 | 695 |
696 | 696 |
697 <refentry id="pst2dii.1"> | 697 <refentry id="pst2dii.1"> |
698 <refentryinfo> | 698 <refentryinfo> |
699 <date>2009-02-01</date> | 699 <date>2009-02-28</date> |
700 </refentryinfo> | 700 </refentryinfo> |
701 | 701 |
702 <refmeta> | 702 <refmeta> |
703 <refentrytitle>pst2dii</refentrytitle> | 703 <refentrytitle>pst2dii</refentrytitle> |
704 <manvolnum>1</manvolnum> | 704 <manvolnum>1</manvolnum> |
828 </refentry> | 828 </refentry> |
829 | 829 |
830 | 830 |
831 <refentry id="pst.5"> | 831 <refentry id="pst.5"> |
832 <refentryinfo> | 832 <refentryinfo> |
833 <date>2009-02-01</date> | 833 <date>2009-02-28</date> |
834 </refentryinfo> | 834 </refentryinfo> |
835 | 835 |
836 <refmeta> | 836 <refmeta> |
837 <refentrytitle>outlook.pst</refentrytitle> | 837 <refentrytitle>outlook.pst</refentrytitle> |
838 <manvolnum>5</manvolnum> | 838 <manvolnum>5</manvolnum> |
851 </refsynopsisdiv> | 851 </refsynopsisdiv> |
852 | 852 |
853 <refsect1 id='pst.file.overview.5'> | 853 <refsect1 id='pst.file.overview.5'> |
854 <title>Overview</title> | 854 <title>Overview</title> |
855 <para> | 855 <para> |
856 Each item in a .pst file is identified by two id values ID1 and ID2. | 856 Low level or primitive items in a .pst file are identified by an I_ID |
857 There are two separate b-trees indexed by these ID1 and ID2 values. | 857 value. Higher level or composite items in a .pst file are identified by |
858 a D_ID value. | |
859 There are two separate b-trees indexed by these I_ID and D_ID values. | |
858 Starting with Outlook 2003, the file format changed from one with 32 | 860 Starting with Outlook 2003, the file format changed from one with 32 |
859 bit pointers, to one with 64 bit pointers. We describe both formats | 861 bit pointers, to one with 64 bit pointers. We describe both formats |
860 here. | 862 here. |
861 </para> | 863 </para> |
862 </refsect1> | 864 </refsect1> |
915 format. Index type 0x0f seems to be rare, and so far the data seems | 917 format. Index type 0x0f seems to be rare, and so far the data seems |
916 to be identical to that in type 0x0e files. Index type 0x17 is the | 918 to be identical to that in type 0x0e files. Index type 0x17 is the |
917 newer 64 bit Outlook format. Index type 0x15 seems to be rare, and | 919 newer 64 bit Outlook format. Index type 0x15 seems to be rare, and |
918 according to the libpff project should have the same format as type | 920 according to the libpff project should have the same format as type |
919 0x17 files. It was found in a 64-bit pst file created by Visual | 921 0x17 files. It was found in a 64-bit pst file created by Visual |
920 Recovery. Encryption type 0x00 is no encryption, type 0x01 is | 922 Recovery. It may be that index types less than 0x10 are 32 bit, and |
923 index types greater than or equal to 0x10 are 64 bit, and the low order | |
924 four bits of the index type is some subtype or minor version number. | |
925 </para> | |
926 <para> | |
927 Encryption type 0x00 is no encryption, type 0x01 is | |
921 "compressible" encryption which is a simple substitution cipher, and | 928 "compressible" encryption which is a simple substitution cipher, and |
922 type 0x02 is "strong" encryption, which is a simple three rotor Enigma | 929 type 0x02 is "strong" encryption, which is a simple three rotor Enigma |
923 cipher from WWII. | 930 cipher from WWII. |
924 </para> | 931 </para> |
925 <para> | 932 <para> |
926 offsetIndex1 is the file offset of the root of the | 933 offsetIndex1 is the file offset of the root of the |
927 index1 b-tree, which contains (ID1, offset, size, unknown) tuples | 934 index1 b-tree, which contains (I_ID, offset, size, unknown) tuples |
928 for each item in the file. backPointer1 is the value that should | 935 for each item in the file. backPointer1 is the value that should |
929 appear in the parent pointer of that root node. | 936 appear in the parent pointer of that root node. |
930 </para> | 937 </para> |
931 <para> | 938 <para> |
932 offsetIndex2 is the file offset of the root of the | 939 offsetIndex2 is the file offset of the root of the |
933 index2 b-tree, which contains (ID2, DESC-ID1, LIST-ID1, PARENT-ID2) | 940 index2 b-tree, which contains (D_ID, DESC-I_ID, TREE-I_ID, PARENT-D_ID) |
934 tuples for each item in the file. backPointer2 is the value that should | 941 tuples for each item in the file. backPointer2 is the value that should |
935 appear in the parent pointer of that root node. | 942 appear in the parent pointer of that root node. |
936 </para> | 943 </para> |
937 </refsect1> | 944 </refsect1> |
938 | 945 |
1049 are active. The nodeLevel is non-zero for this style of nodes. | 1056 are active. The nodeLevel is non-zero for this style of nodes. |
1050 The leaf nodes have a different format. The backPointer must | 1057 The leaf nodes have a different format. The backPointer must |
1051 match the backPointer from the triple that pointed to this node. | 1058 match the backPointer from the triple that pointed to this node. |
1052 </para> | 1059 </para> |
1053 <para> | 1060 <para> |
1054 Each item in this node is a triple of (ID1, backPointer, offset) | 1061 Each item in this node is a triple of (I_ID, backPointer, offset) |
1055 where the offset points to the next deeper node in the tree, the | 1062 where the offset points to the next deeper node in the tree, the |
1056 backPointer value must match the backPointer in that deeper node, | 1063 backPointer value must match the backPointer in that deeper node, |
1057 and ID1 is the lowest ID1 value in the subtree. | 1064 and I_ID is the lowest I_ID value in the subtree. |
1058 </para> | 1065 </para> |
1059 </refsect1> | 1066 </refsect1> |
1060 | 1067 |
1061 <refsect1 id='pst.file.node1.64.5'> | 1068 <refsect1 id='pst.file.node1.64.5'> |
1062 <title>64 bit Index 1 Node</title> | 1069 <title>64 bit Index 1 Node</title> |
1120 are active. The nodeLevel is non-zero for this style of nodes. | 1127 are active. The nodeLevel is non-zero for this style of nodes. |
1121 The leaf nodes have a different format. The backPointer must | 1128 The leaf nodes have a different format. The backPointer must |
1122 match the backPointer from the triple that pointed to this node. | 1129 match the backPointer from the triple that pointed to this node. |
1123 </para> | 1130 </para> |
1124 <para> | 1131 <para> |
1125 Each item in this node is a triple of (ID1, backPointer, offset) | 1132 Each item in this node is a triple of (I_ID, backPointer, offset) |
1126 where the offset points to the next deeper node in the tree, the | 1133 where the offset points to the next deeper node in the tree, the |
1127 backPointer value must match the backPointer in that deeper node, | 1134 backPointer value must match the backPointer in that deeper node, |
1128 and ID1 is the lowest ID1 value in the subtree. | 1135 and I_ID is the lowest I_ID value in the subtree. |
1129 </para> | 1136 </para> |
1130 </refsect1> | 1137 </refsect1> |
1131 | 1138 |
1132 <refsect1 id='pst.file.leaf1.32.5'> | 1139 <refsect1 id='pst.file.leaf1.32.5'> |
1133 <title>32 bit Index 1 Leaf Node</title> | 1140 <title>32 bit Index 1 Leaf Node</title> |
1191 are active. The nodeLevel is zero for these leaf nodes. | 1198 are active. The nodeLevel is zero for these leaf nodes. |
1192 The backPointer must match the backPointer from the triple | 1199 The backPointer must match the backPointer from the triple |
1193 that pointed to this node. | 1200 that pointed to this node. |
1194 </para> | 1201 </para> |
1195 <para> | 1202 <para> |
1196 Each item in this node is a tuple of (ID1, offset, size, unknown) | 1203 Each item in this node is a tuple of (I_ID, offset, size, unknown) |
1197 The two low order bits of the ID1 value seem to be flags. I have | 1204 The two low order bits of the I_ID value seem to be flags. I have |
1198 never seen a case with bit zero set. Bit one indicates that the | 1205 never seen a case with bit zero set. Bit one indicates that the |
1199 item is <emphasis>not</emphasis> encrypted. Note that references | 1206 item is <emphasis>not</emphasis> encrypted. Note that references |
1200 to these ID1 values elsewhere may have the low order bit set (and | 1207 to these I_ID values elsewhere may have the low order bit set (and |
1201 I don't know what that means), but when we do the search in this | 1208 I don't know what that means), but when we do the search in this |
1202 tree we need to clear that bit so that we can find the correct item. | 1209 tree we need to clear that bit so that we can find the correct item. |
1203 </para> | 1210 </para> |
1204 </refsect1> | 1211 </refsect1> |
1205 | 1212 |
1265 are active. The nodeLevel is zero for these leaf nodes. | 1272 are active. The nodeLevel is zero for these leaf nodes. |
1266 The backPointer must match the backPointer from the triple | 1273 The backPointer must match the backPointer from the triple |
1267 that pointed to this node. | 1274 that pointed to this node. |
1268 </para> | 1275 </para> |
1269 <para> | 1276 <para> |
1270 Each item in this node is a tuple of (ID1, offset, size, unknown) | 1277 Each item in this node is a tuple of (I_ID, offset, size, unknown) |
1271 The two low order bits of the ID1 value seem to be flags. I have | 1278 The two low order bits of the I_ID value seem to be flags. I have |
1272 never seen a case with bit zero set. Bit one indicates that the | 1279 never seen a case with bit zero set. Bit one indicates that the |
1273 item is <emphasis>not</emphasis> encrypted. Note that references | 1280 item is <emphasis>not</emphasis> encrypted. Note that references |
1274 to these ID1 values elsewhere may have the low order bit set (and | 1281 to these I_ID values elsewhere may have the low order bit set (and |
1275 I don't know what that means), but when we do the search in this | 1282 I don't know what that means), but when we do the search in this |
1276 tree we need to clear that bit so that we can find the correct item. | 1283 tree we need to clear that bit so that we can find the correct item. |
1277 </para> | 1284 </para> |
1278 </refsect1> | 1285 </refsect1> |
1279 | 1286 |
1339 are active. The nodeLevel is non-zero for this style of nodes. | 1346 are active. The nodeLevel is non-zero for this style of nodes. |
1340 The leaf nodes have a different format. The backPointer must | 1347 The leaf nodes have a different format. The backPointer must |
1341 match the backPointer from the triple that pointed to this node. | 1348 match the backPointer from the triple that pointed to this node. |
1342 </para> | 1349 </para> |
1343 <para> | 1350 <para> |
1344 Each item in this node is a triple of (ID2, backPointer, offset) | 1351 Each item in this node is a triple of (D_ID, backPointer, offset) |
1345 where the offset points to the next deeper node in the tree, the | 1352 where the offset points to the next deeper node in the tree, the |
1346 backPointer value must match the backPointer in that deeper node, | 1353 backPointer value must match the backPointer in that deeper node, |
1347 and ID2 is the lowest ID2 value in the subtree. | 1354 and D_ID is the lowest D_ID value in the subtree. |
1348 </para> | 1355 </para> |
1349 </refsect1> | 1356 </refsect1> |
1350 | 1357 |
1351 <refsect1 id='pst.file.node2.64.5'> | 1358 <refsect1 id='pst.file.node2.64.5'> |
1352 <title>64 bit Index 2 Node</title> | 1359 <title>64 bit Index 2 Node</title> |
1410 are active. The nodeLevel is non-zero for this style of nodes. | 1417 are active. The nodeLevel is non-zero for this style of nodes. |
1411 The leaf nodes have a different format. The backPointer must | 1418 The leaf nodes have a different format. The backPointer must |
1412 match the backPointer from the triple that pointed to this node. | 1419 match the backPointer from the triple that pointed to this node. |
1413 </para> | 1420 </para> |
1414 <para> | 1421 <para> |
1415 Each item in this node is a triple of (ID2, backPointer, offset) | 1422 Each item in this node is a triple of (D_ID, backPointer, offset) |
1416 where the offset points to the next deeper node in the tree, the | 1423 where the offset points to the next deeper node in the tree, the |
1417 backPointer value must match the backPointer in that deeper node, | 1424 backPointer value must match the backPointer in that deeper node, |
1418 and ID2 is the lowest ID2 value in the subtree. | 1425 and D_ID is the lowest D_ID value in the subtree. |
1419 </para> | 1426 </para> |
1420 </refsect1> | 1427 </refsect1> |
1421 | 1428 |
1422 <refsect1 id='pst.file.leaf2.32.5'> | 1429 <refsect1 id='pst.file.leaf2.32.5'> |
1423 <title>32 bit Index 2 Leaf Node</title> | 1430 <title>32 bit Index 2 Leaf Node</title> |
1470 are active. The nodeLevel is zero for these leaf nodes. | 1477 are active. The nodeLevel is zero for these leaf nodes. |
1471 The backPointer must match the backPointer from the triple | 1478 The backPointer must match the backPointer from the triple |
1472 that pointed to this node. | 1479 that pointed to this node. |
1473 </para> | 1480 </para> |
1474 <para> | 1481 <para> |
1475 Each item in this node is a tuple of (ID2, DESC-ID1, LIST-ID1, PARENT-ID2) | 1482 Each item in this node is a tuple of (D_ID, DESC-I_ID, TREE-I_ID, PARENT-D_ID). |
1483 The DESC-I_ID points to the main data for this item via the index1 tree. | |
1484 The TREE-I_ID is zero or points to Associated Tree Item 0x0002 via the index1 tree. | |
1485 The PARENT-D_ID points to the parent of this item in this index2 tree. | |
1476 </para> | 1486 </para> |
1477 </refsect1> | 1487 </refsect1> |
1478 | 1488 |
1479 <refsect1 id='pst.file.leaf2.64.5'> | 1489 <refsect1 id='pst.file.leaf2.64.5'> |
1480 <title>64 bit Index 2 Leaf Node</title> | 1490 <title>64 bit Index 2 Leaf Node</title> |
1527 are active. The nodeLevel is zero for these leaf nodes. | 1537 are active. The nodeLevel is zero for these leaf nodes. |
1528 The backPointer must match the backPointer from the triple | 1538 The backPointer must match the backPointer from the triple |
1529 that pointed to this node. | 1539 that pointed to this node. |
1530 </para> | 1540 </para> |
1531 <para> | 1541 <para> |
1532 Each item in this node is a tuple of (ID2, DESC-ID1, LIST-ID1, PARENT-ID2) | 1542 Each item in this node is a tuple of (D_ID, DESC-I_ID, TREE-I_ID, PARENT-D_ID) |
1543 The DESC-I_ID points to the main data for this item via the index1 tree. | |
1544 The TREE-I_ID is zero or points to Associated Tree Item 0x0002 via the index1 tree. | |
1545 The PARENT-D_ID points to the parent of this item in this index2 tree. | |
1533 </para> | 1546 </para> |
1534 </refsect1> | 1547 </refsect1> |
1535 | 1548 |
1536 <refsect1 id='pst.file.list.32.5'> | 1549 <refsect1 id='pst.file.list.32.5'> |
1537 <title>32 bit Associated List Item 0x0002</title> | 1550 <title>32 bit Associated Tree Item 0x0002</title> |
1538 <para> | 1551 <para> |
1539 Contains associations between id1 and id2 for the items controlled by the record. | 1552 A D_ID value may point to an entry in the index2 tree with a non-zero |
1540 In the above 32 bit leaf node, we have a tuple of (0x61, 0x02a82c, 0x02a836, 0) | 1553 TREE-I_ID which points to this descriptor block via the index1 |
1541 0x02a836 is the ID1 of the associated list, and we can lookup that ID1 value | 1554 tree. It maps local ID2 values (referenced in the main data for the |
1542 in the index1 b-tree to find the (offset,size) of the data in the .pst file. | 1555 original D_ID item) to I_ID values. This descriptor block contains |
1556 triples of (ID2, I_ID, CHILD-I_ID) where the local ID2 data can be | |
1557 found via I_ID, and CHILD-I_ID is either zero or it points to another | |
1558 Associated Tree Item via the index1 tree. | |
1559 </para> | |
1560 <para> | |
1561 In the above 32 bit leaf node, we have a tuple of (0x61, 0x02a82c, | |
1562 0x02a836, 0) 0x02a836 is the I_ID of the associated tree, and we can | |
1563 lookup that I_ID value in the index1 b-tree to find the (offset,size) | |
1564 of the data in the .pst file. | |
1543 </para> | 1565 </para> |
1544 <literallayout class="monospaced"><![CDATA[ | 1566 <literallayout class="monospaced"><![CDATA[ |
1545 0000 02 00 01 00 9f 81 00 00 30 a8 02 00 00 00 00 00 | 1567 0000 02 00 01 00 9f 81 00 00 30 a8 02 00 00 00 00 00 |
1546 | 1568 |
1547 0000 signature [2 bytes] 0x0002 constant | 1569 0000 signature [2 bytes] 0x0002 constant |
1548 0002 count [2 bytes] 0x0001 in this case | 1570 0002 count [2 bytes] 0x0001 in this case |
1549 repeating | 1571 repeating |
1550 0004 id2 [4 bytes] 0x00819f in this case | 1572 0004 id2 [4 bytes] 0x00819f in this case |
1551 0008 id [4 bytes] 0x02a830 in this case | 1573 0008 i_id [4 bytes] 0x02a830 in this case |
1552 000c table2 [4 bytes] 0 in this case | 1574 000c child-i_id [4 bytes] 0 in this case |
1553 ]]></literallayout> | 1575 ]]></literallayout> |
1554 </refsect1> | 1576 </refsect1> |
1555 | 1577 |
1556 <refsect1 id='pst.file.list.64.5'> | 1578 <refsect1 id='pst.file.list.64.5'> |
1557 <title>64 bit Associated List Item 0x0002</title> | 1579 <title>64 bit Associated Tree Item 0x0002</title> |
1558 <para> | 1580 <para> |
1559 Contains associations between id1 and id2 for the items controlled by the record. | 1581 This descriptor block contains a tree that maps local ID2 values |
1582 to I_ID entries, similar to the 32 bit version described above. | |
1560 </para> | 1583 </para> |
1561 <literallayout class="monospaced"><![CDATA[ | 1584 <literallayout class="monospaced"><![CDATA[ |
1562 0000 02 00 02 00 00 00 00 00 92 06 00 00 00 00 00 00 | 1585 0000 02 00 02 00 00 00 00 00 92 06 00 00 00 00 00 00 |
1563 0010 a8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 1586 0010 a8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
1564 0020 3f 80 00 00 00 00 00 00 98 00 00 00 00 00 00 00 | 1587 0020 3f 80 00 00 00 00 00 00 98 00 00 00 00 00 00 00 |
1569 0004 unknown [4 bytes] 0 possibly constant | 1592 0004 unknown [4 bytes] 0 possibly constant |
1570 repeating | 1593 repeating |
1571 0008 id2 [4 bytes] 0x000692 in this case | 1594 0008 id2 [4 bytes] 0x000692 in this case |
1572 000c unknown1 [2 bytes] 0 may be a count or size | 1595 000c unknown1 [2 bytes] 0 may be a count or size |
1573 000e unknown2 [2 bytes] 0 may be a count or size | 1596 000e unknown2 [2 bytes] 0 may be a count or size |
1574 0010 id [8 bytes] 0x0000a8 in this case | 1597 0010 i_id [8 bytes] 0x0000a8 in this case |
1575 0018 table2 [8 bytes] 0 in this case | 1598 0018 child-i_id [8 bytes] 0 in this case |
1576 ]]></literallayout> | 1599 ]]></literallayout> |
1577 </refsect1> | 1600 </refsect1> |
1578 | 1601 |
1579 <refsect1 id='pst.file.desc.5'> | 1602 <refsect1 id='pst.file.desc.5'> |
1580 <title>Associated Descriptor Item 0xbcec</title> | 1603 <title>Associated Descriptor Item 0xbcec</title> |
1581 <para> | 1604 <para> |
1582 Contains information about the item, which may be email, contact, or | 1605 Contains information about the item, which may be email, contact, or |
1583 other outlook types. In the above leaf node, we have a tuple of (0x21, | 1606 other outlook types. In the above leaf node, we have a tuple of (0x21, |
1584 0x00e638, 0, 0) 0x00e638 is the ID1 of the associated descriptor, and we | 1607 0x00e638, 0, 0) 0x00e638 is the I_ID of the associated descriptor, and we |
1585 can lookup that ID1 value in the index1 b-tree to find the (offset,size) | 1608 can lookup that I_ID value in the index1 b-tree to find the (offset,size) |
1586 of the data in the .pst file. | 1609 of the data in the .pst file. |
1587 </para> | 1610 </para> |
1588 <literallayout class="monospaced"><![CDATA[ | 1611 <literallayout class="monospaced"><![CDATA[ |
1589 0000 3c 01 ec bc 20 00 00 00 00 00 00 00 b5 02 06 00 | 1612 0000 3c 01 ec bc 20 00 00 00 00 00 00 00 b5 02 06 00 |
1590 0010 40 00 00 00 f9 0f 02 01 60 00 00 00 01 30 1e 00 | 1613 0010 40 00 00 00 f9 0f 02 01 60 00 00 00 01 30 1e 00 |
2077 </refsect1> | 2100 </refsect1> |
2078 | 2101 |
2079 <refsect1 id='pst.file.desc3.32.5'> | 2102 <refsect1 id='pst.file.desc3.32.5'> |
2080 <title>32 bit Associated Descriptor Item 0x0101</title> | 2103 <title>32 bit Associated Descriptor Item 0x0101</title> |
2081 <para> | 2104 <para> |
2082 This descriptor block contains a list of ID1 values. It is used when | 2105 This descriptor block contains a list of I_ID values. It is used when |
2083 an ID1 (that would normally point to a type 0x7cec or 0xbcec | 2106 an I_ID (that would normally point to a type 0x7cec or 0xbcec |
2084 descriptor block) contains more data than can fit in any single | 2107 descriptor block) contains more data than can fit in any single |
2085 descriptor of those types. In this case, it points to a type 0x0101 | 2108 descriptor of those types. In this case, it points to a type 0x0101 |
2086 block, which contains a list of ID1 values that themselves point to | 2109 block, which contains a list of I_ID values that themselves point to |
2087 the actual descriptor blocks. The total length value in the 0x0101 | 2110 the actual descriptor blocks. The total length value in the 0x0101 |
2088 header is the sum of the lengths of the blocks pointed to by the list | 2111 header is the sum of the lengths of the blocks pointed to by the list |
2089 of ID1 values. The result is an array of subblocks, that may contain | 2112 of I_ID values. The result is an array of subblocks, that may contain |
2090 index references where the high order 16 bits specify which descriptor | 2113 index references where the high order 16 bits specify which descriptor |
2091 subblock to use. Only the first descriptor subblock contains the | 2114 subblock to use. Only the first descriptor subblock contains the |
2092 signature (0xbcec or 0x7cec). | 2115 signature (0xbcec or 0x7cec). |
2093 </para> | 2116 </para> |
2094 <literallayout class="monospaced"><![CDATA[ | 2117 <literallayout class="monospaced"><![CDATA[ |
2096 | 2119 |
2097 0000 signature [2 bytes] 0x0101 constant | 2120 0000 signature [2 bytes] 0x0101 constant |
2098 0002 count [2 bytes] 0x0002 in this case | 2121 0002 count [2 bytes] 0x0002 in this case |
2099 0004 total length [4 bytes] 0x002826 in this case | 2122 0004 total length [4 bytes] 0x002826 in this case |
2100 repeating | 2123 repeating |
2101 0008 id1 [4 bytes] 0x0c7718 in this case | 2124 0008 i_id [4 bytes] 0x0c7718 in this case |
2102 000c id1 [4 bytes] 0x0004b8 in this case | 2125 000c i_id [4 bytes] 0x0004b8 in this case |
2103 ]]></literallayout> | 2126 ]]></literallayout> |
2104 </refsect1> | 2127 </refsect1> |
2105 | 2128 |
2106 <refsect1 id='pst.file.desc3.64.5'> | 2129 <refsect1 id='pst.file.desc3.64.5'> |
2107 <title>64 bit Associated Descriptor Item 0x0101</title> | 2130 <title>64 bit Associated Descriptor Item 0x0101</title> |
2108 <para> | 2131 <para> |
2109 This descriptor block contains a list of ID1 values. | 2132 This descriptor block contains a list of I_ID values, similar to the |
2133 32 bit version described above. | |
2110 </para> | 2134 </para> |
2111 <literallayout class="monospaced"><![CDATA[ | 2135 <literallayout class="monospaced"><![CDATA[ |
2112 0000 01 01 02 00 ea 29 00 00 10 83 00 00 00 00 00 00 | 2136 0000 01 01 02 00 ea 29 00 00 10 83 00 00 00 00 00 00 |
2113 0010 1c 83 00 00 00 00 00 00 | 2137 0010 1c 83 00 00 00 00 00 00 |
2114 | 2138 |
2115 0000 signature [2 bytes] 0x0101 constant | 2139 0000 signature [2 bytes] 0x0101 constant |
2116 0002 count [2 bytes] 0x0002 in this case | 2140 0002 count [2 bytes] 0x0002 in this case |
2117 0004 total length [4 bytes] 0x0029ea in this case | 2141 0004 total length [4 bytes] 0x0029ea in this case |
2118 repeating | 2142 repeating |
2119 0008 id1 [8 bytes] 0x008310 in this case | 2143 0008 i_id [8 bytes] 0x008310 in this case |
2120 0010 id1 [8 bytes] 0x00831c in this case | 2144 0010 i_id [8 bytes] 0x00831c in this case |
2121 ]]></literallayout> | 2145 ]]></literallayout> |
2122 </refsect1> | 2146 </refsect1> |
2123 | 2147 |
2124 </refentry> | 2148 </refentry> |
2125 </reference> | 2149 </reference> |