Función RtlFindSetBitsAndClear (wdm.h)
La rutina RtlFindSetBitsAndClear busca un intervalo de bits establecidos de un tamaño solicitado dentro de un mapa de bits y borra todos los bits del intervalo cuando se encuentra.
Sintaxis
NTSYSAPI ULONG RtlFindSetBitsAndClear(
[in] PRTL_BITMAP BitMapHeader,
[in] ULONG NumberToFind,
[in] ULONG HintIndex
);
Parámetros
[in] BitMapHeader
Puntero a la estructura RTL_BITMAP que describe el mapa de bits. Esta estructura debe haber sido inicializada por la rutina RtlInitializeBitMap .
[in] NumberToFind
Especifica cuántos bits de conjunto contiguos cumplirán esta solicitud.
[in] HintIndex
Especifica una posición de bits de base cero alrededor de la que empezar a buscar un intervalo de bits establecido del tamaño especificado.
Valor devuelto
RtlFindSetBitsAndClear devuelve el índice de bits inicial basado en cero para un intervalo de bits establecido del tamaño solicitado que ha borrado o devuelve 0xFFFFFFFF si no encuentra dicho intervalo dentro de la variable de mapa de bits especificada.
Comentarios
Para una llamada correcta, la posición de bits devuelta no es necesariamente equivalente a la hintIndex especificada. Si es necesario, RtlFindSetBitsAndClear busca en todo el mapa de bits para buscar un intervalo de bits establecido del tamaño solicitado. Sin embargo, comienza a buscar el rango solicitado cerca de HintIndex, por lo que los autores de llamadas pueden borrar este rango más rápidamente cuando pueden proporcionar sugerencias adecuadas sobre dónde empezar a buscar.
Los autores de llamadas de RtlFindSetBitsAndClear deben ejecutarse en IRQL <= APC_LEVEL si la memoria que contiene la variable de mapa de bits es paginable o la memoria en BitMapHeader es paginable. De lo contrario, se puede llamar a RtlFindSetBitsAndClear en cualquier IRQL.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows 2000. |
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL (consulte la sección Comentarios) |