RtlFindClearBits-Funktion (wdm.h)

Die RtlFindClearBits-Routine sucht nach einem Bereich von klaren Bits einer angeforderten Größe innerhalb einer Bitmap.

Syntax

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

Parameter

[in] BitMapHeader

Ein Zeiger auf die RTL_BITMAP-Struktur , die die Bitmap beschreibt. Diese Struktur muss von der RtlInitializeBitMap-Routine initialisiert worden sein.

[in] NumberToFind

Gibt an, wie viele zusammenhängende eindeutige Bits diese Anforderung erfüllen.

[in] HintIndex

Gibt eine nullbasierte Bitposition an, von der aus nach einem eindeutigen Bitbereich der angegebenen Größe gesucht werden soll.

Rückgabewert

RtlFindClearBits gibt entweder den nullbasierten Anfangsbitindex für einen eindeutigen Bitbereich von mindestens der angeforderten Größe zurück, oder es wird 0xFFFFFFFF zurückgegeben, wenn ein solcher Bereich innerhalb der angegebenen Bitmap nicht gefunden werden kann.

Hinweise

Bei einem erfolgreichen Aufruf entspricht die zurückgegebene Bitposition nicht unbedingt der angegebenen HintIndex-Position. Bei Bedarf durchsucht RtlFindClearBits die gesamte Bitmap, um einen eindeutigen Bitbereich der angeforderten Größe zu finden. Anrufer können einen solchen Bereich schneller finden, wenn sie entsprechende Hinweise dazu geben können, wo sie suchen sollten.

Wenn zwischen dem Hinweisindex und dem Ende der Bitmap kein übereinstimmender Bereich gefunden wird, setzt RtlFindClearBits die Suche vom Anfang der Bitmap zurück zum Hinweisindex fort.

Wenn Nur ein Index zurückgegeben werden soll, der größer oder gleich einem Wert ist, verwenden Sie stattdessen RtlFindNextForwardRunClear .

Aufrufer von RtlFindClearBits müssen unter IRQL <= APC_LEVEL ausgeführt werden, wenn der Speicher, der die Bitmapvariable enthält, ausgelagert oder der Speicher bei BitMapHeader ausgelagert werden kann. Andernfalls kann RtlFindClearBits in jedem IRQL aufgerufen werden.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= APC_LEVEL (siehe Abschnitt "Hinweise")

Weitere Informationen

RTL_BITMAP

RtlAreBitsClear

RtlFindClearBitsAndSet

RtlFindFirstRunClear

RtlFindLongestRunClear

RtlFindSetBits

RtlInitializeBitMap

RtlNumberOfClearBits