PST File Format SDK v0.4
Loading...
Searching...
No Matches
Block Structures
+ Collaboration diagram for Block Structures:

Classes

struct  pstsdk::disk::block_trailer< ulonglong >
 Unicode store version of the block trailer. More...
 
struct  pstsdk::disk::block_trailer< ulong >
 ANSI store version of the block trailer. More...
 
struct  pstsdk::disk::external_block< T >
 External block definition. More...
 
struct  pstsdk::disk::extended_block< ulonglong >
 Unicode store version of the extended block. More...
 
struct  pstsdk::disk::extended_block< ulong >
 ANSI store version of the extended block. More...
 
struct  pstsdk::disk::sub_leaf_entry< T >
 Entries on a leaf sub_block. More...
 
struct  pstsdk::disk::sub_nonleaf_entry< T >
 Entries on a nonleaf sub_block. More...
 
struct  pstsdk::disk::sub_block< T, EntryType >
 Subnode Blocks. More...
 
struct  pstsdk::disk::sub_nonleaf_block< T >
 Subnode non-leaf block. More...
 
struct  pstsdk::disk::sub_leaf_block< T >
 Subnode leaf block. More...
 

Enumerations

enum  pstsdk::disk::block_types { pstsdk::disk::block_type_external = 0x00 , pstsdk::disk::block_type_extended = 0x01 , pstsdk::disk::block_type_sub = 0x02 }
 The different block types. More...
 

Functions

template<typename T >
size_t pstsdk::disk::align_disk (size_t size)
 Aligns a block size to the size on disk.
 
size_t pstsdk::disk::align_slot (size_t size)
 Aligns a block size to the slot size.
 
template<typename T >
bool pstsdk::disk::bid_is_external (T bid)
 Determines if a block is external or not.
 
template<typename T >
bool pstsdk::disk::bid_is_internal (T bid)
 Determines if a block is internal or not.
 

Variables

const size_t pstsdk::disk::max_block_disk_size = 8 * 1024
 The maximum individual block size.
 
const uint pstsdk::disk::block_id_internal_bit = 0x2
 The internal bit indicates a block is an extended_block or a subnode_block.
 
const uint pstsdk::disk::block_id_increment = 0x4
 The block id counter in the header is incremented by this amount for each block.
 

Detailed Description

Enumeration Type Documentation

◆ block_types

The different block types.

See also
[MS-PST] 2.2.2.8.3
Enumerator
block_type_external 

An external data block.

block_type_extended 

An extended block type.

block_type_sub 

A subnode block type.

Definition at line 938 of file disk.h.

Function Documentation

◆ align_disk()

template<typename T >
size_t pstsdk::disk::align_disk ( size_t  size)
inline

Aligns a block size to the size on disk.

Adds the block trailer and slot alignment to the data size

Template Parameters
Tulonglong for a unicode store, ulong for an ANSI store
Parameters
[in]sizeBlock size
Returns
The aligned block size
See also
[MS-PST] 2.2.2.7.7.3

Definition at line 1683 of file disk.h.

◆ align_slot()

size_t pstsdk::disk::align_slot ( size_t  size)
inline

Aligns a block size to the slot size.

Round size up to the next largest multiple of bytes_per_slot

Parameters
[in]sizeBlock size
Returns
The block size, aligned to slot size
See also
[MS-PST] 2.2.2.7.7.3

Definition at line 1688 of file disk.h.

◆ bid_is_external()

template<typename T >
bool pstsdk::disk::bid_is_external ( bid)

Determines if a block is external or not.

Template Parameters
Tulonglong for a unicode store, ulong for an ANSI store
Parameters
[in]bidThe id of the block
Returns
true if the block is external
See also
[MS-PST] 2.2.2.2/i

Definition at line 987 of file disk.h.

◆ bid_is_internal()

template<typename T >
bool pstsdk::disk::bid_is_internal ( bid)

Determines if a block is internal or not.

Template Parameters
Tulonglong for a unicode store, ulong for an ANSI store
Parameters
[in]bidThe id of the block
Returns
true if the block is internal
See also
[MS-PST] 2.2.2.2/i

Definition at line 996 of file disk.h.

Variable Documentation

◆ block_id_increment

const uint pstsdk::disk::block_id_increment = 0x4

The block id counter in the header is incremented by this amount for each block.

See also
[MS-PST] 2.2.2.6/bidNextB

Definition at line 978 of file disk.h.

◆ block_id_internal_bit

const uint pstsdk::disk::block_id_internal_bit = 0x2

The internal bit indicates a block is an extended_block or a subnode_block.

See also
[MS-PST] 2.2.2.2/i

Definition at line 973 of file disk.h.

◆ max_block_disk_size

const size_t pstsdk::disk::max_block_disk_size = 8 * 1024

The maximum individual block size.

See also
[MS-PST] 2.2.2.8

Definition at line 933 of file disk.h.