UNREFERENCED_PARAMETER(Interface);
+ status = STATUS_INVALID_PARAMETER;
+
+ if (Count == 0)
+ goto fail1;
+
KeAcquireSpinLock(&RangeSet->Lock, &Irql);
status = STATUS_INSUFFICIENT_RESOURCES;
if (__RangeSetIsEmpty(RangeSet))
- goto fail1;
+ goto fail2;
Cursor = RangeSet->List.Flink;
goto found;
}
- goto fail2;
+ goto fail3;
found:
RangeSet->Cursor = Cursor;
return STATUS_SUCCESS;
+fail3:
+ Error("fail3\n");
+
fail2:
Error("fail2\n");
+ KeReleaseSpinLock(&RangeSet->Lock, Irql);
+
fail1:
Error("fail1 (%08x)\n", status);
- KeReleaseSpinLock(&RangeSet->Lock, Irql);
-
return status;
}
UNREFERENCED_PARAMETER(Interface);
+ status = STATUS_INVALID_PARAMETER;
+
+ if (Count == 0)
+ goto fail1;
+
KeAcquireSpinLock(&RangeSet->Lock, &Irql);
Cursor = RangeSet->Cursor;
// We need to split a range
status = RangeSetAdd(RangeSet, End + 1, Range->End, TRUE);
if (!NT_SUCCESS(status))
- goto fail1;
+ goto fail2;
Range->End = Start - 1;
return STATUS_SUCCESS;
-fail1:
- Error("fail1 (%08x)\n", status);
+fail2:
+ Error("fail2\n");
KeReleaseSpinLock(&RangeSet->Lock, Irql);
+fail1:
+ Error("fail1 (%08x)\n", status);
+
return status;
}
UNREFERENCED_PARAMETER(Interface);
+ status = STATUS_INVALID_PARAMETER;
+
+ if (Count == 0)
+ goto fail1;
+
ASSERT3S(End, >=, Start);
KeAcquireSpinLock(&RangeSet->Lock, &Irql);
}
if (!NT_SUCCESS(status))
- goto fail1;
+ goto fail2;
RangeSet->ItemCount += Count;
return STATUS_SUCCESS;
-fail1:
- Error("fail1 (%08x)\n", status);
+fail2:
+ Error("fail2\n");
KeReleaseSpinLock(&RangeSet->Lock, Irql);
+fail1:
+ Error("fail1 (%08x)\n", status);
+
return status;
}