Huw Davies : iphlpapi: Implement GetNumberOfInterfaces() on top of nsi.

Alexandre Julliard julliard at winehq.org
Thu Jul 8 16:43:50 CDT 2021


Module: wine
Branch: master
Commit: 805e30ee43e370f45fdc17f28c206e3835a6e3c8
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=805e30ee43e370f45fdc17f28c206e3835a6e3c8

Author: Huw Davies <huw at codeweavers.com>
Date:   Thu Jul  8 08:59:59 2021 +0100

iphlpapi: Implement GetNumberOfInterfaces() on top of nsi.

Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

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




More information about the wine-cvs mailing list