PUCHAR Buffer;
PUCHAR Ptr;
ULONG BlockIndex;
+ ULONG LastIndex;
PVOID BlockPtr;
NTSTATUS Status;
/* Write dirty blocks */
FileOffset.QuadPart = (ULONGLONG)BufferSize;
BlockIndex = 0;
- while (TRUE)
+ while (BlockIndex < RegistryHive->BlockListSize)
{
+ LastIndex = BlockIndex;
BlockIndex = RtlFindSetBits(&RegistryHive->DirtyBitMap,
1,
BlockIndex);
- if ((BlockIndex == (ULONG)-1) ||
- (BlockIndex >= RegistryHive->BlockListSize))
+ if (BlockIndex == (ULONG)-1 || BlockIndex < LastIndex)
{
DPRINT("No more set bits\n");
Status = STATUS_SUCCESS;
HANDLE FileHandle;
LARGE_INTEGER FileOffset;
ULONG BlockIndex;
+ ULONG LastIndex;
PVOID BlockPtr;
NTSTATUS Status;
}
BlockIndex = 0;
- while (TRUE)
+ while (BlockIndex < RegistryHive->BlockListSize)
{
+ LastIndex = BlockIndex;
BlockIndex = RtlFindSetBits(&RegistryHive->DirtyBitMap,
1,
BlockIndex);
- if ((BlockIndex == (ULONG)-1) ||
- (BlockIndex >= RegistryHive->BlockListSize))
+ if (BlockIndex == (ULONG)-1 || BlockIndex < LastIndex)
{
DPRINT("No more set bits\n");
Status = STATUS_SUCCESS;