// wdfcore.h
size_t WDF_ALIGN_SIZE_DOWN(
[in] size_t Length,
[in] size_t AlignTo
);
View the official Windows Driver Kit DDI referenceNo description available.
[Applies to KMDF and UMDF]
The WDF_ALIGN_SIZE_DOWN function returns the next-lower buffer size that is aligned to a specified alignment offset.
Length [in]The length, in bytes, of a memory buffer.
AlignTo [in]The alignment offset, in bytes. This value must be a power of 2, such as 2, 4, 8, 16, and so on.
WDF_ALIGN_SIZE_DOWN returns the aligned buffer size, in bytes.
Drivers can use WDF_ALIGN_SIZE_UP or WDF_ALIGN_SIZE_DOWN to calculate a buffer size that is aligned to a specified alignment offset. This calculation is useful if your driver must allocate multiple contiguous buffers, if each buffer must begin at an address alignment boundary.
The following code example receives a buffer size and returns the size (either the current size or the next-lower size) that aligns to a DWORD address boundary.
bufferSizeAligned = WDF_ALIGN_SIZE_DOWN(bufferSize,
sizeof(DWORD));