The code in capture_win_ifnames.c assume there's always
a GUID in the ifname. Not so here. From my 'tcpdump -D':
1: \\.\airpcap00
2: \Device\NPF_GenericDialupAdapter
3: \Device\NPF_{7F56352E-EF2F-49F4-844C-BA1FA0105667}
4: \Device\NPF_{8D3A23A7-9C6C-408B-A23B-6736F9E56510}
5: \Device\NPF_{37FC13D9-2F52-47CA-AB64-32B2B434C749}
6: \Device\NPF_{75451EE7-5145-471A-BAF5-124BE8439D10}
So a "dumpcap.exe -L" complains:
Failed the extract guid from interface devicename, unicode convert result=14, guid input ='\\.\airpcap00',
LastErrorCode=0x00000000.
Failed the extract guid from interface devicename, unicode convert result=21, guid input ='GenericDialupAdapter',
LastErrorCode=0x00000000.
...
Besides the code seems to need a Vista SDK since 'NETIO_STATUS' here
(Win-XP SP3) is only defined in <netioapi.h>. Which is not included AFAICS.
Verified by "cl -showIncludes". A small fix:
--- SVN-Latest\capture_win_ifnames.c Thu Nov 22 01:56:25 2012
+++ capture_win_ifnames.c Thu Nov 22 18:16:21 2012
@@ -48,6 +48,14 @@
#include "capture_ifinfo.h"
#include "capture_win_ifnames.h"
#include "wsutil/file_util.h"
+
+#ifndef NDIS_IF_MAX_STRING_SIZE
+#define NDIS_IF_MAX_STRING_SIZE IF_MAX_STRING_SIZE /* =256 in <ifdef.h> */
+#endif
+
+#ifndef NETIO_STATUS
+#define NETIO_STATUS DWORD
+#endif
/* Link with ole32.lib - provides CLSIDFromString() to convert guid text to a GUID */
#pragma comment(lib, "ole32.lib")
--gv