[VIDEOPRT] VideoPortGetAccessRanges: Return ERROR_MORE_DATA if there exist more device access ranges that can be returned than what is specified by NumAccessRanges.

This commit is contained in:
Hermès Bélusca-Maïto 2023-06-28 17:12:36 +02:00
parent 122eaeb6ad
commit 5cb2b73988
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0

View file

@ -617,6 +617,8 @@ VideoPortUnmapMemory(
* - NO_ERROR if the resources have been successfully claimed or released. * - NO_ERROR if the resources have been successfully claimed or released.
* - ERROR_INVALID_PARAMETER if an error or a conflict occurred. * - ERROR_INVALID_PARAMETER if an error or a conflict occurred.
* - ERROR_DEV_NOT_EXIST if the device is not found. * - 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. * - ERROR_NOT_ENOUGH_MEMORY if there is not enough memory available.
**/ **/
VP_STATUS VP_STATUS
@ -767,7 +769,7 @@ VideoPortGetAccessRanges(
if (NumAccessRanges < LegacyAccessRangeCount) if (NumAccessRanges < LegacyAccessRangeCount)
{ {
ERR_(VIDEOPRT, "Too many legacy access ranges found\n"); 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)); RtlCopyMemory(AccessRanges, LegacyAccessRanges, LegacyAccessRangeCount * sizeof(VIDEO_ACCESS_RANGE));
@ -837,7 +839,7 @@ VideoPortGetAccessRanges(
AssignedCount >= NumAccessRanges) AssignedCount >= NumAccessRanges)
{ {
ERR_(VIDEOPRT, "Too many access ranges found\n"); ERR_(VIDEOPRT, "Too many access ranges found\n");
return ERROR_NOT_ENOUGH_MEMORY; return ERROR_MORE_DATA;
} }
else if (Descriptor->Type == CmResourceTypeMemory) else if (Descriptor->Type == CmResourceTypeMemory)
{ {
@ -878,6 +880,7 @@ VideoPortGetAccessRanges(
else else
DeviceExtension->InterruptShared = FALSE; DeviceExtension->InterruptShared = FALSE;
} }
// else if (Descriptor->Type == CmResourceTypeDma) // TODO!
else else
{ {
ASSERT(FALSE); ASSERT(FALSE);