This current code is not completely correct on GNU/Linux (SuSE 8.2) and FreeBSD and probably most other platforms. Gerald ChangeLog: Properly cast parameters to sysctl() in getInterfacePhysicalByName(). Index: ifenum.c =================================================================== RCS file: /home/wine/wine/dlls/iphlpapi/ifenum.c,v retrieving revision 1.2 diff -u -3 -p -r1.2 ifenum.c --- ifenum.c 13 May 2003 04:49:15 -0000 1.2 +++ ifenum.c 20 May 2003 08:48:00 -0000 @@ -682,7 +682,7 @@ DWORD getInterfacePhysicalByName(const c if (!name || !len || !addr || !type) return ERROR_INVALID_PARAMETER; - if (sysctl(mib, 6, NULL, &len, NULL, 0) < 0) + if (sysctl(mib, 6, NULL, (size_t*)&len, NULL, 0) < 0) return ERROR_NO_MORE_FILES; buf = (u_char *)malloc(mibLen);