[PATCH 3/6] iphlpapi: Implement GetNumberOfInterfaces() on top of nsi.

Huw Davies huw at codeweavers.com
Thu Jul 8 02:59:59 CDT 2021


Signed-off-by: Huw Davies <huw at codeweavers.com>
---
 dlls/iphlpapi/iphlpapi_main.c  | 21 +++++++++------------
 dlls/iphlpapi/tests/iphlpapi.c |  4 ----
 2 files changed, 9 insertions(+), 16 deletions(-)

diff --git a/dlls/iphlpapi/iphlpapi_main.c b/dlls/iphlpapi/iphlpapi_main.c
index b869570bac0..d8696f62ab7 100644
--- a/dlls/iphlpapi/iphlpapi_main.c
+++ b/dlls/iphlpapi/iphlpapi_main.c
@@ -2376,21 +2376,18 @@ DWORD WINAPI GetNetworkParams(PFIXED_INFO pFixedInfo, PULONG pOutBufLen)
  * RETURNS
  *  NO_ERROR on success, ERROR_INVALID_PARAMETER if pdwNumIf is NULL.
  */
-DWORD WINAPI GetNumberOfInterfaces(PDWORD pdwNumIf)
+DWORD WINAPI GetNumberOfInterfaces( DWORD *count )
 {
-  DWORD ret;
+    DWORD err, num;
 
-  TRACE("pdwNumIf %p\n", pdwNumIf);
-  if (!pdwNumIf)
-    ret = ERROR_INVALID_PARAMETER;
-  else {
-    *pdwNumIf = get_interface_indices( FALSE, NULL );
-    ret = NO_ERROR;
-  }
-  TRACE("returning %d\n", ret);
-  return ret;
-}
+    TRACE( "count %p\n", count );
+    if (!count) return ERROR_INVALID_PARAMETER;
 
+    err = NsiEnumerateObjectsAllParameters( 1, 1, &NPI_MS_NDIS_MODULEID, NSI_NDIS_IFINFO_TABLE, NULL, 0,
+                                            NULL, 0, NULL, 0, NULL, 0, &num );
+    *count = err ? 0 : num;
+    return err;
+}
 
 /******************************************************************
  *    GetPerAdapterInfo (IPHLPAPI.@)
diff --git a/dlls/iphlpapi/tests/iphlpapi.c b/dlls/iphlpapi/tests/iphlpapi.c
index 87aeb99d6d9..bbd3ac2cc9e 100644
--- a/dlls/iphlpapi/tests/iphlpapi.c
+++ b/dlls/iphlpapi/tests/iphlpapi.c
@@ -138,10 +138,6 @@ static void testGetNumberOfInterfaces(void)
     }
 
     apiReturn = GetNumberOfInterfaces(&numInterfaces);
-    if (apiReturn == ERROR_NOT_SUPPORTED) {
-        skip("GetNumberOfInterfaces is not supported\n");
-        return;
-    }
     ok(apiReturn == NO_ERROR,
        "GetNumberOfInterfaces returned %d, expected 0\n", apiReturn);
 }
-- 
2.23.0




More information about the wine-devel mailing list