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 返回小于 Length 的无效值。 代码应测试此条件。

示例

下面的代码示例接收缓冲区大小,并返回与 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)
Library Wdf01000.sys (请参阅框架库 Versioning.)
IRQL 任何 IRQL。

另请参阅

WDF_ALIGN_SIZE_DOWN