функция 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_UP или WDF_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. |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по