Freigeben über


RtlFindSetBitsAndClear-Funktion (wdm.h)

Die RtlFindSetBitsAndClear-Routine sucht nach einem Bereich von festgelegten Bits einer angeforderten Größe innerhalb einer Bitmap und löscht alle Bits im Bereich, wenn sie gefunden wurden.

Syntax

NTSYSAPI ULONG RtlFindSetBitsAndClear(
  [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 Setbits diese Anforderung erfüllen.

[in] HintIndex

Gibt eine nullbasierte Bitposition an, um die nach einem bestimmten Bitbereich der angegebenen Größe gesucht werden soll.

Rückgabewert

RtlFindSetBitsAndClear gibt entweder den nullbasierten Startbitindex für einen festgelegten Bitbereich der angeforderten Größe zurück, die gelöscht wurde, 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 RtlFindSetBitsAndClear die gesamte Bitmap, um einen bestimmten Bitbereich der angeforderten Größe zu finden. Es beginnt jedoch mit der Suche nach dem angeforderten Bereich in der Nähe von HintIndex, sodass Anrufer einen solchen Bereich schneller löschen können, wenn sie geeignete Hinweise geben können, wo sie suchen sollten.

Aufrufer von RtlFindSetBitsAndClear müssen unter IRQL <= APC_LEVEL ausgeführt werden, wenn der Speicher, der die Bitmapvariable enthält, auslagerungsfähig ist oder der Arbeitsspeicher bei BitMapHeader ausgelagert werden kann. Andernfalls kann RtlFindSetBitsAndClear in 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

RtlAreBitsSet

RtlClearAllBits

RtlClearBits

RtlFindSetBits

RtlInitializeBitMap

RtlNumberOfSetBits