Each data structure in a value list must begin on a DWORD boundary. This means that the distance (in bytes) between the start of the value list buffer and the start of any data structure is always an even multiple of sizeof(DWORD).

If a data structure contains variable length data, you might have to advance a few extra bytes before adding the next data structure in order to ensure DWORD-alignment (see the diagram in Value Lists). Use the ALIGN_CLUSPROP macro to calculate the correct alignment size.

The extra bytes lying between data structures in a value list are referred to as "padding."

Note that the Length member of the data structure should specify the actual size of the data, not the size returned by ALIGN_CLUSPROP. For more information and examples of using ALIGN_CLUSPROP, see Using Lists and Tables.