[Winpcap-users] While testing Gianlucas winpcap 3.1 [prerelease]...

Gianluca Varenni gianluca.varenni at cacetech.com
Mon Aug 1 19:01:46 GMT 2005

----- Original Message ----- 
From: "Marc Wetzel" <mwse at gmx.de>
To: <winpcap-users at winpcap.org>
Sent: Monday, August 01, 2005 5:05 AM
Subject: [Winpcap-users] While testing Gianlucas winpcap 3.1 [prerelease]...

>I won't call this a bugreport, because I tried out
> Gianlucas private build as you could download it from 
> (http://www.winpcap.org/gianluca/...)
> But maybe you are interested in my findings...
> #1:
> First of all I'm mainly interested in sniffing on WAN devices, as they 
> where previously
> exported by the Devicename \Device\NPF_GenericNdisWanAdapter
> Now the devicename changed to \Device\NPF_GenericDialupAdapter.
> Ok this was the easy one...

That is correct. We basically renamed the adapter (and its description) 
because "ndiswan" was obscure and confusing.

> But you might remember, that I had trouble using winpcap3.1.b4/WAN devices 
> with Delphi,
> because of some kind of COM initialization problems.
> It only worked if I do a CoInitializeEx(NIL, COINIT_MULTITHREADED) at the 
> very start of the code.

I know. This is one of the biggest headaches I had with WinPcap and NdisWan.

> #2:
> With the prerelease I have now other problems...
> If I use CoInitializeEx(NIL, COINIT_MULTITHREADED) I only see my 
> Ethernet-Device (using pcap_findalldevs).

This is correct. Basically, the NetMon COM component used by WinPcap to 
capture from PPP does NOT work in the MULTITHREADED threading model on 
Windows XP. As a consequence, that device is not listed *if* COM has already 
been initialized with that threading model.

> And if I comment the CoInitializeEx call out, I see all devices as 
> expected, but then it fails
> in the call to  pcap_open() with the error message "The system cannot find 
> the device" (just as before).

Uhm, are you sure? I've thoroughly tested it without any problem on my 
machine. Have you tried building a small C app (or one in the devpack) and 
see if it works?

If you don't initialize COM, winpcap initializes it with CoInitialize(NULL) 
before opening the GenericDialupAdapter.

> Just an addendum:
> #3:
> Using CoInitializeEx(NIL, COINIT_MULTITHREADED) in a Com-Application is 
> not possible,
> e.g. embedding the IE-ActiveX object will always fail. This means that 
> having an application which uses
> both the IE-ActiveX and winpcap (sniffing on WAN devices) is not possible.
> Sniffing ethernet devices is not touched by this problem.
> Maybe I am completely wrong?
> Does anybody have a clue, or is this a bug?

I think that's what I explained before. On Windows XP the MS NetMon COM 
component does NOT support the MULTITHREADED threading model. At the moment 
I haven't found an easy solution to this issue.

Have  a nice day

> Regards
> /Marc
> _______________________________________________
> Winpcap-users mailing list
> Winpcap-users at winpcap.org
> https://www.winpcap.org/mailman/listinfo/winpcap-users

More information about the Winpcap-users mailing list