[Winpcap-users] While testing Gianlucas winpcap 3.1
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
> But maybe you are interested in my findings...
> 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.
> 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:
> 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
> Winpcap-users mailing list
> Winpcap-users at winpcap.org
More information about the Winpcap-users