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);