https://git.reactos.org/?p=reactos.git;a=commitdiff;h=de6313d89e8c28d6390a1cd7e8f6bfd783918e02

commit de6313d89e8c28d6390a1cd7e8f6bfd783918e02
Author:     Hermès Bélusca-Maïto <[email protected]>
AuthorDate: Fri Jun 23 15:56:20 2023 +0200
Commit:     Hermès Bélusca-Maïto <[email protected]>
CommitDate: Sun Jun 25 21:25:07 2023 +0200

    [VIDEOPRT] Reformat VideoPortVerifyAccessRanges()
    
    Fix indentation, add SAL annotations and Doxygen description.
---
 sdk/include/ddk/video.h             |   6 +-
 win32ss/drivers/videoprt/resource.c | 158 ++++++++++++++++++++----------------
 2 files changed, 90 insertions(+), 74 deletions(-)

diff --git a/sdk/include/ddk/video.h b/sdk/include/ddk/video.h
index d4f32002b15..58c2420754b 100644
--- a/sdk/include/ddk/video.h
+++ b/sdk/include/ddk/video.h
@@ -1251,9 +1251,9 @@ VPAPI
 VP_STATUS
 NTAPI
 VideoPortVerifyAccessRanges(
-  IN PVOID HwDeviceExtension,
-  IN ULONG NumAccessRanges,
-  IN PVIDEO_ACCESS_RANGE AccessRanges);
+    _In_ PVOID HwDeviceExtension,
+    _In_opt_ ULONG NumAccessRanges,
+    _In_reads_opt_(NumAccessRanges) PVIDEO_ACCESS_RANGE AccessRanges);
 
 VPAPI
 VOID
diff --git a/win32ss/drivers/videoprt/resource.c 
b/win32ss/drivers/videoprt/resource.c
index cd85c9feb43..1cbf1f609a9 100644
--- a/win32ss/drivers/videoprt/resource.c
+++ b/win32ss/drivers/videoprt/resource.c
@@ -816,84 +816,100 @@ VideoPortGetAccessRanges(
     return NO_ERROR;
 }
 
-/*
- * @implemented
- */
-
-VP_STATUS NTAPI
+/**
+ * @brief
+ * Claims or releases a range of hardware resources and checks for conflicts.
+ *
+ * @param[in]   HwDeviceExtension
+ * The miniport device extension.
+ *
+ * @param[in]   NumAccessRanges
+ * The number of hardware resource ranges in the @p AccessRanges array.
+ * Specify zero to release the hardware resources held by the miniport.
+ *
+ * @param[in]   AccessRanges
+ * The array of hardware resource ranges to claim ownership.
+ * Specify NULL to release the hardware resources held by the miniport.
+ *
+ * @return
+ * NO_ERROR if the resources have been successfully claimed or released.
+ * ERROR_INVALID_PARAMETER if an error or a conflict occurred.
+ **/
+VP_STATUS
+NTAPI
 VideoPortVerifyAccessRanges(
-   IN PVOID HwDeviceExtension,
-   IN ULONG NumAccessRanges,
-   IN PVIDEO_ACCESS_RANGE AccessRanges)
+    _In_ PVOID HwDeviceExtension,
+    _In_opt_ ULONG NumAccessRanges,
+    _In_reads_opt_(NumAccessRanges) PVIDEO_ACCESS_RANGE AccessRanges)
 {
-   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
-   BOOLEAN ConflictDetected;
-   ULONG i;
-   PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
-   PCM_RESOURCE_LIST ResourceList;
-   ULONG ResourceListSize;
-   NTSTATUS Status;
+    PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
+    BOOLEAN ConflictDetected;
+    ULONG i;
+    PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
+    PCM_RESOURCE_LIST ResourceList;
+    ULONG ResourceListSize;
+    NTSTATUS Status;
 
-   TRACE_(VIDEOPRT, "VideoPortVerifyAccessRanges\n");
+    TRACE_(VIDEOPRT, "VideoPortVerifyAccessRanges\n");
 
-   DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
+    DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
 
-   /* Create the resource list */
-   ResourceListSize = sizeof(CM_RESOURCE_LIST)
-      + (NumAccessRanges - 1) * sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR);
-   ResourceList = ExAllocatePool(PagedPool, ResourceListSize);
-   if (!ResourceList)
-   {
-      WARN_(VIDEOPRT, "ExAllocatePool() failed\n");
-      return ERROR_NOT_ENOUGH_MEMORY;
-   }
+    /* Create the resource list */
+    ResourceListSize = sizeof(CM_RESOURCE_LIST)
+        + (NumAccessRanges - 1) * sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR);
+    ResourceList = ExAllocatePool(PagedPool, ResourceListSize);
+    if (!ResourceList)
+    {
+        WARN_(VIDEOPRT, "ExAllocatePool() failed\n");
+        return ERROR_NOT_ENOUGH_MEMORY;
+    }
 
-   /* Fill resource list */
-   ResourceList->Count = 1;
-   ResourceList->List[0].InterfaceType = DeviceExtension->AdapterInterfaceType;
-   ResourceList->List[0].BusNumber = DeviceExtension->SystemIoBusNumber;
-   ResourceList->List[0].PartialResourceList.Version = 1;
-   ResourceList->List[0].PartialResourceList.Revision = 1;
-   ResourceList->List[0].PartialResourceList.Count = NumAccessRanges;
-   for (i = 0; i < NumAccessRanges; i++, AccessRanges++)
-   {
-      PartialDescriptor = 
&ResourceList->List[0].PartialResourceList.PartialDescriptors[i];
-      if (AccessRanges->RangeInIoSpace)
-      {
-         PartialDescriptor->Type = CmResourceTypePort;
-         PartialDescriptor->u.Port.Start = AccessRanges->RangeStart;
-         PartialDescriptor->u.Port.Length = AccessRanges->RangeLength;
-      }
-      else
-      {
-         PartialDescriptor->Type = CmResourceTypeMemory;
-         PartialDescriptor->u.Memory.Start = AccessRanges->RangeStart;
-         PartialDescriptor->u.Memory.Length = AccessRanges->RangeLength;
-      }
-      if (AccessRanges->RangeShareable)
-         PartialDescriptor->ShareDisposition = CmResourceShareShared;
-      else
-         PartialDescriptor->ShareDisposition = CmResourceShareDeviceExclusive;
-      PartialDescriptor->Flags = 0;
-      if (AccessRanges->RangePassive & VIDEO_RANGE_PASSIVE_DECODE)
-         PartialDescriptor->Flags |= CM_RESOURCE_PORT_PASSIVE_DECODE;
-      if (AccessRanges->RangePassive & VIDEO_RANGE_10_BIT_DECODE)
-         PartialDescriptor->Flags |= CM_RESOURCE_PORT_10_BIT_DECODE;
-   }
+    /* Fill resource list */
+    ResourceList->Count = 1;
+    ResourceList->List[0].InterfaceType = 
DeviceExtension->AdapterInterfaceType;
+    ResourceList->List[0].BusNumber = DeviceExtension->SystemIoBusNumber;
+    ResourceList->List[0].PartialResourceList.Version = 1;
+    ResourceList->List[0].PartialResourceList.Revision = 1;
+    ResourceList->List[0].PartialResourceList.Count = NumAccessRanges;
+    for (i = 0; i < NumAccessRanges; i++, AccessRanges++)
+    {
+        PartialDescriptor = 
&ResourceList->List[0].PartialResourceList.PartialDescriptors[i];
+        if (AccessRanges->RangeInIoSpace)
+        {
+            PartialDescriptor->Type = CmResourceTypePort;
+            PartialDescriptor->u.Port.Start = AccessRanges->RangeStart;
+            PartialDescriptor->u.Port.Length = AccessRanges->RangeLength;
+        }
+        else
+        {
+            PartialDescriptor->Type = CmResourceTypeMemory;
+            PartialDescriptor->u.Memory.Start = AccessRanges->RangeStart;
+            PartialDescriptor->u.Memory.Length = AccessRanges->RangeLength;
+        }
+        if (AccessRanges->RangeShareable)
+            PartialDescriptor->ShareDisposition = CmResourceShareShared;
+        else
+            PartialDescriptor->ShareDisposition = 
CmResourceShareDeviceExclusive;
+        PartialDescriptor->Flags = 0;
+        if (AccessRanges->RangePassive & VIDEO_RANGE_PASSIVE_DECODE)
+            PartialDescriptor->Flags |= CM_RESOURCE_PORT_PASSIVE_DECODE;
+        if (AccessRanges->RangePassive & VIDEO_RANGE_10_BIT_DECODE)
+            PartialDescriptor->Flags |= CM_RESOURCE_PORT_10_BIT_DECODE;
+    }
 
-   /* Try to acquire all resource ranges */
-   Status = IoReportResourceForDetection(
-      DeviceExtension->DriverObject,
-      NULL, 0, /* Driver List */
-      DeviceExtension->PhysicalDeviceObject,
-      ResourceList, ResourceListSize,
-      &ConflictDetected);
-   ExFreePool(ResourceList);
-
-   if (!NT_SUCCESS(Status) || ConflictDetected)
-      return ERROR_INVALID_PARAMETER;
-   else
-      return NO_ERROR;
+    /* Try to acquire all resource ranges */
+    Status = IoReportResourceForDetection(
+                DeviceExtension->DriverObject,
+                NULL, 0, /* Driver List */
+                DeviceExtension->PhysicalDeviceObject,
+                ResourceList, ResourceListSize,
+                &ConflictDetected);
+    ExFreePool(ResourceList);
+
+    if (!NT_SUCCESS(Status) || ConflictDetected)
+        return ERROR_INVALID_PARAMETER;
+    else
+        return NO_ERROR;
 }
 
 /*

Reply via email to