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。

こちらもご覧ください

WDF_ALIGN_SIZE_DOWN