WDF_ALIGN_SIZE_UP函数 (wdfcore.h)

[适用于 KMDF 和 UMDF]

WDF_ALIGN_SIZE_UP 函数返回与指定对齐偏移量对齐的下一个更高的缓冲区大小。

语法

size_t WDF_ALIGN_SIZE_UP(
  [in] size_t Length,
  [in] size_t AlignTo
);

参数

[in] Length

内存缓冲区的长度(以字节为单位)。

[in] AlignTo

对齐偏移量(以字节为单位)。 此值必须是 2 的幂,例如 2、4、8、16 等。

返回值

WDF_ALIGN_SIZE_UP 返回对齐的缓冲区大小(以字节为单位)。

言论

驱动程序可以使用 WDF_ALIGN_SIZE_UPWDF_ALIGN_SIZE_DOWN 来计算与指定对齐偏移量对齐的缓冲区大小。 如果驱动程序必须分配多个连续缓冲区(如果每个缓冲区必须从地址对齐边界开始),则此计算非常有用。

如果任一输入参数的值太大,算术溢出会导致 WDF_ALIGN_SIZE_UP 返回小于 长度的值。 代码应测试此条件。

例子

下面的代码示例接收缓冲区大小,并返回与 DWORD 地址边界对齐的大小(当前大小或下一个更大的大小)。

bufferSizeAligned = WDF_ALIGN_SIZE_UP(bufferSize,
                                      sizeof(DWORD));
if (bufferSizeAligned < bufferSize)
{
    // Buffer too large.
    ...
}

要求

要求 价值
目标平台 普遍
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdfcore.h (包括 Wdf.h)
Wdf01000.sys(请参阅框架库版本控制。
IRQL 任何 IRQL。

另请参阅

WDF_ALIGN_SIZE_DOWN