Signed-off-by: Huw Davies huw@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); }