次の方法で共有


RtlFindClearBits 関数 (wdm.h)

RtlFindClearBits ルーチンは、ビットマップ内で要求されたサイズのクリア ビットの範囲を検索します。

構文

NTSYSAPI ULONG RtlFindClearBits(
  [in] PRTL_BITMAP BitMapHeader,
  [in] ULONG       NumberToFind,
  [in] ULONG       HintIndex
);

パラメーター

[in] BitMapHeader

ビットマップを記述する RTL_BITMAP 構造体へのポインター。 この構造体は 、RtlInitializeBitMap ルーチンによって初期化されている必要があります。

[in] NumberToFind

この要求を満たす連続するクリア ビットの数を指定します。

[in] HintIndex

指定したサイズのクリア ビット範囲の検索を開始する 0 から始まるビット位置を指定します。

戻り値

RtlFindClearBits は、少なくとも要求されたサイズのクリア ビット範囲の 0 から始まる開始ビット インデックスを返すか、指定されたビットマップ内でそのような範囲が見つからない場合は0xFFFFFFFFを返します。

注釈

呼び出しが成功した場合、返されるビット位置は、必ずしも指定された HintIndex と等しいとは限りません。 必要に応じて、 RtlFindClearBits はビットマップ全体を検索して、要求されたサイズのクリア ビット範囲を見つけます。 呼び出し元は、検索を開始する場所に関する適切なヒントを提供できる場合に、このような範囲をより迅速に見つけることができます。

ヒント インデックスとビットマップの末尾の間に一致する範囲が見つからない場合、 RtlFindClearBits はビットマップの先頭からヒント インデックスへの検索を続行します。

一部の値以上のインデックスのみを返す場合は、代わりに RtlFindNextForwardRunClear を 使用します。

ビットマップ変数を含むメモリがページング可能であるか、BitMapHeader のメモリがページング可能な場合、RtlFindClearBits の呼び出し元は IRQL <= APC_LEVELで実行されている必要があります。 それ以外の場合は、任意の IRQL で RtlFindClearBits を呼び出すことができます。

要件

要件
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL IRQL <= APC_LEVEL (「解説」セクションを参照)

こちらもご覧ください

RTL_BITMAP

RtlAreBitsClear

RtlFindClearBitsAndSet

RtlFindFirstRunClear

RtlFindLongestRunClear

RtlFindSetBits

RtlInitializeBitMap

RtlNumberOfClearBits