Função RtlFindSetBitsAndClear (wdm.h)

A rotina RtlFindSetBitsAndClear pesquisa um intervalo de bits de conjunto de um tamanho solicitado em um bitmap e limpa todos os bits no intervalo quando ele foi localizado.

Sintaxe

NTSYSAPI ULONG RtlFindSetBitsAndClear(
  [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 de conjunto contíguo atenderão a essa solicitação.

[in] HintIndex

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

Retornar valor

RtlFindSetBitsAndClear retorna o índice de bit inicial baseado em zero para um intervalo de bits definido do tamanho solicitado que ele limpou ou retorna 0xFFFFFFFF se não encontrar esse intervalo dentro da variável bitmap fornecida.

Comentários

Para uma chamada bem-sucedida, a posição de bit retornada não é necessariamente equivalente ao HintIndex especificado. Se necessário, RtlFindSetBitsAndClear pesquisa todo o bitmap para localizar um intervalo de bits definido do tamanho solicitado. No entanto, ele começa a pesquisar o intervalo solicitado perto de HintIndex, para que os chamadores possam limpar esse intervalo mais rapidamente quando puderem fornecer dicas apropriadas sobre onde começar a procurar.

Os chamadores de RtlFindSetBitsAndClear 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, RtlFindSetBitsAndClear pode ser chamado em qualquer IRQL.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 2000.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL (seção Consulte Comentários)

Confira também

RTL_BITMAP

RtlAreBitsSet

RtlClearAllBits

RtlClearBits

RtlFindSetBits

RtlInitializeBitMap

RtlNumberOfSetBits