RtlFindClearBitsAndSet-Funktion (wdm.h)

Die RtlFindClearBitsAndSet-Routine sucht nach einem Bereich von klaren Bits einer angeforderten Größe innerhalb einer Bitmap und legt alle Bits im Bereich fest, wenn sie gefunden wurden.

Syntax

NTSYSAPI ULONG RtlFindClearBitsAndSet(
  [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

RtlFindClearBitsAndSet gibt entweder den nullbasierten Startbitindex für einen eindeutigen Bitbereich der angeforderten Größe zurück, oder es gibt 0xFFFFFFFF zurück, wenn ein solcher Bereich innerhalb der angegebenen Bitmapvariable nicht gefunden werden kann.

Hinweise

Bei einem erfolgreichen Aufruf entspricht die zurückgegebene Bitposition nicht unbedingt der angegebenen HintIndex-Position. Bei Bedarf durchsucht RtlFindClearBitsAndSet die gesamte Bitmap, um einen eindeutigen Bitbereich der angeforderten Größe zu finden. Es beginnt jedoch mit der Suche nach dem angeforderten Bereich aus HintIndex, sodass Aufrufer einen solchen Bereich schneller zurücksetzen lassen können, wenn sie geeignete Hinweise dazu geben können, wo sie suchen sollten.

Aufrufer von RtlFindClearBitsAndSet 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 RtlFindClearBitsAndSet an jedem IRQL aufgerufen werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL (siehe Abschnitt "Hinweise")

Weitere Informationen

RTL_BITMAP

RtlAreBitsClear

RtlFindClearBits

RtlFindClearRuns

RtlFindFirstRunClear

RtlFindLastBackwardRunClear

RtlFindLongestRunClear

RtlFindNextForwardRunClear

RtlInitializeBitMap

RtlNumberOfClearBits

RtlSetAllBits

RtlSetBits