#ifndef _NTRTL_H
/**
* The RtlAreBitsClear routine determines whether a given range of bits within a bitmap variable is clear.
*
* \param BitMapHeader A pointer to the RTL_BITMAP structure that describes the bitmap. This structure must have been initialized by the RtlInitializeBitMap routine.
* \param StartingIndex Specifies the start of the bit range to be examined. This is a zero-based value indicating the position of the first bit in the range.
* \param Length Specifies how many bits to check.
* \return RtlAreBitsClear returns TRUE if Length contiguous bits starting at StartingIndex are clear (that is, all the bits from StartingIndex to (StartingIndex + Length) -1). It returns FALSE if any bit in the given range is set, if the given range is not a proper subset of the bitmap, or if Length is zero.
* \remarks Callers of RtlAreBitsClear must be running at IRQL <= APC_LEVEL if the memory that contains the bitmap variable is pageable or the memory at BitMapHeader is pageable. Otherwise, RtlAreBitsClear can be called at any IRQL.
* \sa https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-rtlarebitsclear
*/
_Check_return_
NTSYSAPI
BOOLEAN
NTAPI
RtlAreBitsClear(
_In_ PRTL_BITMAP BitMapHeader,
_In_ ULONG StartingIndex,
_In_ ULONG Length
);
View code on GitHub// wdm.h
NTSYSAPI BOOLEAN RtlAreBitsClear(
[in] PRTL_BITMAP BitMapHeader,
[in] ULONG StartingIndex,
[in] ULONG Length
);
View the official Windows Driver Kit DDI referenceThis function is documented in Windows Driver Kit.
The RtlAreBitsClear routine determines whether a given range of bits within a bitmap variable is clear.
BitMapHeader [in]A pointer to the RTL_BITMAP structure that describes the bitmap. This structure must have been initialized by the RtlInitializeBitMap routine.
StartingIndex [in]Specifies the start of the bit range to be tested. This is a zero-based value indicating the position of the first bit in the range.
Length [in]Specifies how many bits to test.
RtlAreBitsClear returns TRUE if Length consecutive bits beginning at StartingIndex are clear (that is, all the bits from StartingIndex to (StartingIndex + Length) -1). It returns FALSE if any bit in the given range is set, if the given range is not a proper subset of the bitmap, or if the given Length is zero.
Callers of RtlAreBitsClear must be running at IRQL <= APC_LEVEL if the memory that contains the bitmap variable is pageable or the memory at BitMapHeader is pageable. Otherwise, RtlAreBitsClear can be called at any IRQL.