<div>So we added nm and NPF to dependencies to our service and the service started up just fine. But within the Service it is hanging on the pcap_findalldevs. So adding those two dependencies got it to start up but it just sits there in the pcap_findalldevs call.
</div>
<div>&nbsp;</div>
<div>Does anyone have a working service which is using winpcap that just doesn't hang in pcap_findalldevs?</div>
<div>&nbsp;</div>
<div>Thanks<br>&nbsp;</div>
<div><span class="gmail_quote">On 3/27/06, <b class="gmail_sendername">Bryan Kadzban</b> &lt;<a href="mailto:bryan@kadzban.is-a-geek.net">bryan@kadzban.is-a-geek.net</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">matt jaffa wrote:<br>&gt; Hi,<br>&gt;<br>&gt; When we are calling pcap_findalldevs in a Windows service the service
<br>&gt; seems to hang in that function call.<br><br>Your service needs to depend on NPF.<br><br>The reason is that NPF is set up to start on demand (basically, when the<br>first program makes a packet.dll or wpcap.dll call, the service will be
<br>started), not at startup.&nbsp;&nbsp;When packet.dll loads (it's a dependency of<br>wpcap.dll), it tries to start the NPF service for you, but since your<br>service is starting, the service control manager is holding a lock.&nbsp;&nbsp;It
<br>has to release the lock before any other service can start.&nbsp;&nbsp;(Eventually<br>something times out, NPF gets to start, packet.dll loads, and your<br>service finishes starting up.)<br><br>The fix is to make NPF start before your service; the only supported way
<br>to do this is to set a DependOnService REG_MULTI_SZ value in your<br>service's registry key.&nbsp;&nbsp;The data in the registry value should be the<br>name of any services you depend on; setting it to NPF by itself is<br>probably sufficient.
<br><br>Er, actually...&nbsp;&nbsp;If you're using a new enough WinPcap version (probably<br>3.1 and newer), you'll also have to depend on the nm (Network Monitor)<br>service.&nbsp;&nbsp;(packet.dll loads up wanpacket.dll, which loads up another DLL
<br>that starts the nm service if it's needed.&nbsp;&nbsp;So the same thing applies;<br>nm has to be running before either packet.dll or wanpacket.dll get<br>loaded.)&nbsp;&nbsp;So set it to both NPF and nm.<br><br><br>_______________________________________________
<br>Winpcap-users mailing list<br><a href="mailto:Winpcap-users@winpcap.org">Winpcap-users@winpcap.org</a><br><a href="https://www.winpcap.org/mailman/listinfo/winpcap-users">https://www.winpcap.org/mailman/listinfo/winpcap-users
</a><br><br><br><br></blockquote></div><br>