Condividi tramite


Funzione RtlFindSetBitsAndClear (wdm.h)

La routine RtlFindSetBitsAndClear cerca un intervallo di bit set di dimensioni richieste all'interno di una bitmap e cancella tutti i bit nell'intervallo quando si trova.

Sintassi

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

Parametri

[in] BitMapHeader

Puntatore alla struttura RTL_BITMAP che descrive la bitmap. Questa struttura deve essere stata inizializzata dalla routine RtlInitializeBitMap .

[in] NumberToFind

Specifica il numero di bit di set contigui che soddisfano questa richiesta.

[in] HintIndex

Specifica una posizione a bit zero intorno a cui iniziare a cercare un intervallo di bit impostato delle dimensioni specificate.

Valore restituito

RtlFindSetBitsAndClear restituisce l'indice di bit iniziale in base zero per un intervallo di bit impostato delle dimensioni richieste cancellate oppure restituisce 0xFFFFFFFF se non riesce a trovare tale intervallo all'interno della variabile bitmap specificata.

Commenti

Per una chiamata riuscita, la posizione del bit restituita non è necessariamente equivalente all'hintIndex specificato. Se necessario, RtlFindSetBitsAndClear cerca l'intera bitmap per individuare un intervallo di bit impostato delle dimensioni richieste. Tuttavia, inizia a cercare l'intervallo richiesto vicino a HintIndex, quindi i chiamanti possono cancellare più rapidamente tale intervallo quando possono fornire hint appropriati su dove iniziare a cercare.

I chiamanti di RtlFindSetBitsAndClear devono essere in esecuzione in IRQL <= APC_LEVEL se la memoria contenente la variabile bitmap è paginabile o la memoria in BitMapHeader è paginabile. In caso contrario, RtlFindSetBitsAndClear può essere chiamato in qualsiasi IRQL.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 2000.
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL (vedere la sezione Osservazioni)

Vedi anche

RTL_BITMAP

RtlAreBitsSet

RtlClearAllBits

RtlClearBits

RtlFindSetBits

RtlInitializeBitMap

RtlNumberOfSetBits