Função RtlFindClearBits (wdm.h)

A rotina RtlFindClearBits procura um intervalo de bits claros de um tamanho solicitado em um bitmap.

Sintaxe

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

Parâmetros

[in] BitMapHeader

Um ponteiro para a estrutura RTL_BITMAP que descreve o bitmap. Essa estrutura deve ter sido inicializada pela rotina RtlInitializeBitMap .

[in] NumberToFind

Especifica quantos bits claros contíguos atenderão a essa solicitação.

[in] HintIndex

Especifica uma posição de bit baseada em zero da qual começar a procurar um intervalo de bits claro do tamanho especificado.

Retornar valor

RtlFindClearBits retorna o índice de bit inicial baseado em zero para um intervalo de bits claro de pelo menos o tamanho solicitado ou retorna 0xFFFFFFFF se não encontrar esse intervalo dentro do bitmap fornecido.

Comentários

Para uma chamada bem-sucedida, a posição de bit retornada não é necessariamente equivalente ao HintIndex especificado. Se necessário, RtlFindClearBits pesquisa todo o bitmap para localizar um intervalo de bits claro do tamanho solicitado. Os chamadores podem encontrar esse intervalo mais rapidamente quando podem fornecer dicas apropriadas sobre onde começar a procurar.

Se um intervalo correspondente não for encontrado entre o índice de dica e o final do bitmap, RtlFindClearBits continuará pesquisando desde o início do bitmap até o índice de dica.

Se você quiser retornar apenas um índice maior ou igual a algum valor, use RtlFindNextForwardRunClear .

Os chamadores de RtlFindClearBits devem estar em execução em IRQL <= APC_LEVEL se a memória que contém a variável bitmap for paginável ou a memória em BitMapHeader for paginável. Caso contrário, RtlFindClearBits pode ser chamado em qualquer IRQL.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= APC_LEVEL (seção Consulte Comentários)

Confira também

RTL_BITMAP

RtlAreBitsClear

RtlFindClearBitsAndSet

RtlFindFirstRunClear

RtlFindLongestRunClear

RtlFindSetBits

RtlInitializeBitMap

RtlNumberOfClearBits