https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5cb2b739886d56a08795e…
commit 5cb2b739886d56a08795e387250da6a7729537f4
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Wed Jun 28 17:12:36 2023 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Wed Jun 28 17:22:01 2023 +0200
[VIDEOPRT] VideoPortGetAccessRanges: Return ERROR_MORE_DATA if there exist more device
access ranges that can be returned than what is specified by NumAccessRanges.
---
win32ss/drivers/videoprt/resource.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/win32ss/drivers/videoprt/resource.c b/win32ss/drivers/videoprt/resource.c
index 14ca0e8d163..25c5a89f62c 100644
--- a/win32ss/drivers/videoprt/resource.c
+++ b/win32ss/drivers/videoprt/resource.c
@@ -617,6 +617,8 @@ VideoPortUnmapMemory(
* - NO_ERROR if the resources have been successfully claimed or released.
* - ERROR_INVALID_PARAMETER if an error or a conflict occurred.
* - ERROR_DEV_NOT_EXIST if the device is not found.
+ * - ERROR_MORE_DATA if there exist more device access ranges available
+ * than what is specified by @p NumAccessRanges.
* - ERROR_NOT_ENOUGH_MEMORY if there is not enough memory available.
**/
VP_STATUS
@@ -767,7 +769,7 @@ VideoPortGetAccessRanges(
if (NumAccessRanges < LegacyAccessRangeCount)
{
ERR_(VIDEOPRT, "Too many legacy access ranges found\n");
- return ERROR_NOT_ENOUGH_MEMORY;
+ return ERROR_NOT_ENOUGH_MEMORY; // ERROR_MORE_DATA;
}
RtlCopyMemory(AccessRanges, LegacyAccessRanges, LegacyAccessRangeCount *
sizeof(VIDEO_ACCESS_RANGE));
@@ -837,7 +839,7 @@ VideoPortGetAccessRanges(
AssignedCount >= NumAccessRanges)
{
ERR_(VIDEOPRT, "Too many access ranges found\n");
- return ERROR_NOT_ENOUGH_MEMORY;
+ return ERROR_MORE_DATA;
}
else if (Descriptor->Type == CmResourceTypeMemory)
{
@@ -878,6 +880,7 @@ VideoPortGetAccessRanges(
else
DeviceExtension->InterruptShared = FALSE;
}
+ // else if (Descriptor->Type == CmResourceTypeDma) // TODO!
else
{
ASSERT(FALSE);