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、4、8、16 などの 2 の累乗である必要があります。
戻り値
WDF_ALIGN_SIZE_UP は、アラインされたバッファー サイズをバイト単位で返します。
注釈
ドライバーは 、WDF_ALIGN_SIZE_UP または WDF_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 |
Header | wdfcore.h (Wdf.h を含む) |
Library | Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。 |
IRQL | 任意の IRQL。 |