def create_padding_block(sizeOfPaddingAndHeaderInBytes):
    """
    Creates an analog UXG binary padding block with header. The padding block
    is used to align binary blocks as needed so each block starts on a 16 byte
    boundary.  This padding block is also used to align PDW streaming data on
    4096 byte boundaries.

    Args:
        sizeOfPaddingAndHeaderInBytes (int): Total size of resulting padding
            binary block and header combined.
    Returns:
        binary block containing padding header and padded data
    """

    paddingHeaderSize = 16
    paddingFillerSize = sizeOfPaddingAndHeaderInBytes - paddingHeaderSize

    padBlockId = (1).to_bytes(4, byteorder='little')
    res3 = (0).to_bytes(4, byteorder='little')
    size = (paddingFillerSize).to_bytes(8, byteorder='little')
    # Padding Header Above = 16 bytes

    # X bytes of padding required to ensure PDW stream contents
    # (not PDW header) starts @ byte 4097 or (multiple of 4096)+1
    padData = (0).to_bytes(paddingFillerSize, byteorder='little')
    padding = [padBlockId, res3, size, padData]

    return padding