diff -r V1.0.1.0/release/winpcap/Common/Packet32.h winpcap/Common/Packet32.h
59,62d58
< #ifdef HAVE_NETANALYZER_API
< #include "..\packetNtx\Dll\netAnalyzer\netAnalyzer.h"
< #endif //HAVE_NETANALYZER_API
< 
86d81
< #define NetAnalyzer		-7	///< Custom linktype: NDIS doesn't provide an equivalent
222d216
< #define INFO_FLAG_NETANA_ADAPTER  64 ///< Flag for ADAPTER_IMFP: this is a netAnalyzer adapter
264,267d257
< 
< #ifdef HAVE_NETANALYZER_API
< netAna_ADAPTER* netAnaAdapter;
< #endif // HAVE_NETANALYZER_API
diff -r V1.0.1.0/release/winpcap/packetNtx/Dll/AdInfo.c winpcap/packetNtx/Dll/AdInfo.c
70,73d69
< #ifdef HAVE_NETANALYZER_API
< #include "netAnalyzer/netAnalyzer.h"
< static BOOLEAN PacketGetAdapterNetAnalyzer();
< #endif //HAVE_NETANALYZER_API
111,113d106
< #ifdef HAVE_NETANALYZER_API
< extern NETANADRIVER_FUNCTIONS NetAnaPfnFnc;
< #endif // HAVE_NETANALYZER_API
2228,2230d2220
< #ifdef HAVE_NETANALYZER_API
< 	PacketGetAdapterNetAnalyzer();
< #endif //HAVE_NETANALYZER_API
2309,2314d2298
< #ifdef HAVE_NETANALYZER_API
< 	if (!PacketGetAdapterNetAnalyzer())
< 	{
< 		TRACE_PRINT("PacketPopulateAdaptersInfoList: adding NetAnalyzer adapter failed.");
< 	}
< #endif //HAVE_NETANALYZER_API
2418,2491d2401
< #endif //HAVE_WANPACKET_API
< 
< 
< #ifdef HAVE_NETANALYZER_API
< // this function will add the netAnalyzer, since it's NOT called with an ADAPTER_INFO as parameter
< static BOOLEAN PacketGetAdapterNetAnalyzer()
< {
<   PADAPTER_INFO TmpAdInfo, SAdInfo;  
<   char *DeviceGuidName;
<   BOOLEAN present = FALSE;
<   BOOLEAN ret = FALSE;
<   int cnt = 0;
<   int numDev;
<   TRACE_ENTER("PacketGetAdapterNetAnalyzer");
<   if(NetAnaPfnFnc.hDll == NULL)
<     return FALSE;
< 
< 
<   /* get the device name */
<   numDev = NetAnalyzerCountDevices(NetAnaPfnFnc);
<   TRACE_PRINT1("found %d netANALYZER devices",  );
<   for(cnt=0; cnt<numDev; cnt++)
<   {
<     TRACE_PRINT("--> NetAnalyzerGetName");
<     DeviceGuidName = (CHAR*)NetAnalyzerGetName(NetAnaPfnFnc, cnt);	
<     TRACE_PRINT("<-- NetAnalyzerGetName");
<     present = FALSE;
< 
<     /* Scan the adapters list to see if this one is already present */
< 	  WaitForSingleObject(g_AdaptersInfoMutex, INFINITE);
< 	  for(SAdInfo = g_AdaptersInfoList; SAdInfo != NULL; SAdInfo = SAdInfo->Next)
< 	  {
< 		  if(strcmp(DeviceGuidName, SAdInfo->Name) == 0)
< 		  {
< 			  TRACE_PRINT("PacketGetAdapterNetAnalyzer: Adapter already present in the list");
< 			  ReleaseMutex(g_AdaptersInfoMutex);
< 			  present = TRUE;
<         ret = TRUE;
<         break;
< 		  }
< 	  }
<     
<     if(present == FALSE)
<     {
<     /* create device */
<     TmpAdInfo = GlobalAllocPtr(GMEM_MOVEABLE | GMEM_ZEROINIT, sizeof(ADAPTER_INFO));
< 	    if (TmpAdInfo == NULL) 
< 	    {
< 		    TRACE_PRINT("PacketGetAdapterNetAnalyzer: GlobalAlloc Failed allocating memory for the AdInfo structure");
< 		    ReleaseMutex(g_AdaptersInfoMutex);
< 	    }
<       else
<       {
<       strncpy(TmpAdInfo->Name, DeviceGuidName, sizeof(TmpAdInfo->Name) - 1);
<       strncpy(TmpAdInfo->Description, DeviceGuidName, sizeof(TmpAdInfo->Description) - 1);
< 
<       TmpAdInfo->Flags = INFO_FLAG_NETANA_ADAPTER;
<       TmpAdInfo->LinkLayer.LinkType = (UINT)NetAnalyzer;
<       TmpAdInfo->LinkLayer.LinkSpeed = 100 * 1000 * 1000; //100MBit Ethernet
<       memset(TmpAdInfo->MacAddress,'0',6);
< 	    TmpAdInfo->MacAddressLen = 6;
< 	    TmpAdInfo->pNetworkAddresses = NULL;
< 
< 	    TmpAdInfo->Next = g_AdaptersInfoList;
< 	    g_AdaptersInfoList = TmpAdInfo;
<       ReleaseMutex(g_AdaptersInfoMutex);
<       ret = TRUE;
<       }
<     }
<   }
<   
< 	TRACE_EXIT("PacketGetAdapterNetAnalyzer");
<   return ret;
< }
2493c2403
< #endif //HAVE_NETANALYZER_API
\ No newline at end of file
---
> #endif //HAVE_WANPACKET_API
diff -r V1.0.1.0/release/winpcap/packetNtx/Dll/Packet32.c winpcap/packetNtx/Dll/Packet32.c
53,55d52
< #ifdef HAVE_NETANALYZER_API
< #include "netAnalyzer/netAnalyzer.h"
< #endif //HAVE_NETANALYZER_API
178,180d174
< #ifdef HAVE_NETANALYZER_API
<   NETANADRIVER_FUNCTIONS NetAnaPfnFnc; 
< #endif // HAVE_NETANALYZER_API
487,489d480
< #ifdef HAVE_NETANALYZER_API
<   NetAnaLoadApiDll(&NetAnaPfnFnc); 
< #endif // HAVE_NETANALYZER_API
1667,1736d1657
< #ifdef HAVE_NETANALYZER_API
< static LPADAPTER PacketOpenAdapterNetAnalyzer(PCHAR AdapterName)
< {  
< 	LPADAPTER lpAdapter = NULL;
< 	DWORD dwLastError = ERROR_SUCCESS;
< 
< 	TRACE_ENTER("PacketOpenAdapterNetAnalyzer");
< 	TRACE_PRINT("Opening a netAnalyzer adapter...");
< 
< 	do
< 	{		
< 		lpAdapter = (LPADAPTER) GlobalAllocPtr(GMEM_MOVEABLE | GMEM_ZEROINIT,
< 			sizeof(ADAPTER));
< 
< 		if (lpAdapter == NULL)
< 		{
< 			TRACE_PRINT("GlobalAlloc failed allocating memory for the ADAPTER structure. Failing (BAD_UNIT).");
< 			dwLastError = ERROR_NOT_ENOUGH_MEMORY;
< 			break;
< 		}
< 
<     lpAdapter->netAnaAdapter = (netAna_ADAPTER*) GlobalAllocPtr(GMEM_MOVEABLE | GMEM_ZEROINIT,
< 			sizeof(netAna_ADAPTER));
< 
< 		if (lpAdapter->netAnaAdapter == NULL)
< 		{
< 			TRACE_PRINT("GlobalAlloc failed allocating memory for the netAnaAdapter structure. Failing (BAD_UNIT).");
< 			dwLastError = ERROR_NOT_ENOUGH_MEMORY;
< 			break;
< 		}
< 
< 		lpAdapter->Flags = INFO_FLAG_NETANA_ADAPTER;
<     StringCchCopyA(lpAdapter->Name, ADAPTER_NAME_LENGTH, AdapterName);
< 
<     /* open the device */
<     if(!NetAnalyzerOpenAdapter(NetAnaPfnFnc,lpAdapter->netAnaAdapter, AdapterName))
<     {
<       return NULL;
<     }
< 
<     InitializeCriticalSection(&lpAdapter->netAnaAdapter->tcsGetOldestLock);
<     //InitializeCriticalSection(&lpAdapter->netAnaAdapter->tcsCopyDeque);
< 
<     lpAdapter->ReadEvent = NetAnalyzerGetReadEvent(lpAdapter->netAnaAdapter);
< 
< 
< 		TRACE_PRINT("Successfully opened the netAnalyzer Adapter.");
< 
< 	}while(FALSE);
< 
< 
< 	if (dwLastError == ERROR_SUCCESS)
< 	{
< 		TRACE_EXIT("PacketOpenAdapterNetAnalyzer");
< 		return lpAdapter;
< 	}
< 	else
< 	{
< 		if (lpAdapter != NULL) GlobalFree(lpAdapter);
< 		
< 		TRACE_EXIT("PacketOpenAdapterNetAnalyzer");
< 		SetLastError(dwLastError);
< 		return NULL;
< 	}
< }
< 
< 
< 
< 
< #endif //HAVE_NETANALYZER_API
2074,2087d1994
< #ifdef HAVE_NETANALYZER_API
< 		if(TAdInfo->Flags == INFO_FLAG_NETANA_ADAPTER)
< 		{
< 			lpAdapter = PacketOpenAdapterNetAnalyzer(AdapterNameA);
<       if (lpAdapter == NULL)
< 			{
< 				dwLastError = GetLastError();
<         break;
< 			}
< 
< 
< 			break;
< 		}
< #endif //HAVE_NETANALYZER_API
2198,2206d2104
< #ifdef HAVE_NETANALYZER_API
<   if(lpAdapter->Flags == INFO_FLAG_NETANA_ADAPTER)
< 	{
<     NetAnalyzerCloseAdapter(NetAnaPfnFnc, lpAdapter->netAnaAdapter);    
<     DeleteCriticalSection(&lpAdapter->netAnaAdapter->tcsGetOldestLock);
<     GlobalFreePtr(lpAdapter);
<   }
< 
< #endif // HAVE_NETANALYZER_API
2401,2411d2298
< #ifdef HAVE_NETANALYZER_API
< 	
< 	if (AdapterObject->Flags == INFO_FLAG_NETANA_ADAPTER)
< 	{
<     WaitForSingleObject(AdapterObject->netAnaAdapter->hReadEvent, (AdapterObject->netAnaAdapter->readTimeout==0)?INFINITE:AdapterObject->netAnaAdapter->readTimeout);
<     res = NetAnalyzerReceivePacket(AdapterObject->netAnaAdapter, lpPacket->Buffer, lpPacket->Length, &lpPacket->ulBytesReceived);
< 
< 		TRACE_EXIT("PacketReceivePacket");
< 		return res;
< 	}
< #endif //HAVE_NETANALYZER_API
2506,2515d2392
< #ifdef HAVE_NETANALYZER_API
< 	if(AdapterObject->Flags == INFO_FLAG_NETANA_ADAPTER)
< 	{
< 		TRACE_PRINT("PacketSendPacket: packet sending not allowed with the netANALYZER");
< 
< 		TRACE_EXIT("PacketSendPacket");
< 		return FALSE;
< 	}
< #endif //HAVE_NETANALYZER_API
< 
2607,2614d2483
< #ifdef HAVE_NETANALYZER_API
< 	if(AdapterObject->Flags == INFO_FLAG_NETANA_ADAPTER)
< 	{
< 		TRACE_PRINT("PacketSendPackets: it is NOT possible to send packets with the netANALYZER");
< 		TRACE_EXIT("PacketSendPackets");
< 		return 0;
< 	}
< #endif // HAVE_NETANALYZER_API
2736,2744d2604
< 
< #ifdef HAVE_NETANALYZER_API
< 	if(AdapterObject->Flags == INFO_FLAG_NETANA_ADAPTER)
< 	{
< 		Result = NetAnalyzerSetMinToCopy(AdapterObject->netAnaAdapter, nbytes);
< 		TRACE_EXIT("PacketSetMinToCopy");		
< 		return Result;
< 	}
< #endif // HAVE_NETANALYZER_API
2850,2858d2709
< #ifdef HAVE_NETANALYZER_API
<    if (AdapterObject->Flags == INFO_FLAG_NETANA_ADAPTER)
<    {
< 	   Result = NetAnalyzerSetMode(AdapterObject->netAnaAdapter, mode);
< 	   TRACE_EXIT("PacketSetMode");
< 
< 	   return Result;
<    }
< #endif // HAVE_NETANALYZER_API
3175,3183d3025
< #ifdef HAVE_NETANALYZER_API
< 	if(AdapterObject->Flags == INFO_FLAG_NETANA_ADAPTER)
< 	{
<     
<     Result = NetAnalyzerSetReadTimeout(AdapterObject->netAnaAdapter, timeout);
< 		TRACE_EXIT("PacketSetReadTimeout");
< 		return Result;
< 	}
< #endif // HAVE_NETANALYZER_API
3264,3271d3105
< #ifdef HAVE_NETANALYZER_API
< 	if(AdapterObject->Flags == INFO_FLAG_NETANA_ADAPTER)
< 	{
<     Result = NetAnalyzerSetBufferSize(AdapterObject->netAnaAdapter, dim);		
< 		TRACE_EXIT("PacketSetBuff");
< 		return Result;
< 	}
< #endif // HAVE_NETANALYZER_API
3356,3363d3189
< #ifdef HAVE_NETANALYZER_API
< 	if(AdapterObject->Flags == INFO_FLAG_NETANA_ADAPTER)
< 	{
<     //not done yet
< 		TRACE_EXIT("PacketSetBpf");
< 		return TRUE;
< 	}
< #endif // HAVE_NETANALYZER_API
3576,3589d3401
< #ifdef HAVE_NETANALYZER_API	
< 	if ( AdapterObject->Flags == INFO_FLAG_NETANA_ADAPTER)
<   {
<       s->bs_capt = AdapterObject->netAnaAdapter->captured;
<       s->bs_recv = AdapterObject->netAnaAdapter->received;
<       s->bs_drop = 0;           // the netanalyzer getting an error if its buffer is full and stop capturing
<       s->ps_ifdrop = AdapterObject->netAnaAdapter->dropped;
< 		
< 			TRACE_EXIT("PacketGetStats");
< 	
< 			return TRUE;	
< 	}
< 
< #endif // HAVE_NETANALYZER_API
3688,3700d3499
< #ifdef HAVE_NETANALYZER_API	
< 	if ( AdapterObject->Flags == INFO_FLAG_NETANA_ADAPTER)
<   {
<       s->bs_capt = AdapterObject->netAnaAdapter->captured;
<       s->bs_recv = AdapterObject->netAnaAdapter->received;
<       s->bs_drop = AdapterObject->netAnaAdapter->dropped;
< 		
< 			TRACE_EXIT("PacketGetStats");
< 	
< 			return TRUE;	
< 	}
< 
< #endif // HAVE_NETANALYZER_API
3838,3845d3636
< #ifdef HAVE_NETANALYZER_API
< 	if(AdapterObject->Flags == INFO_FLAG_NETANA_ADAPTER)
< 	{
<     // The netANALYZER is always in promiscuous mode
< 		TRACE_EXIT("NetAnalyzerSetHwFilter");
< 		return TRUE;
< 	}
< #endif // HAVE_NETANALYZER_API
diff -r V1.0.1.0/release/winpcap/packetNtx/Dll/Project/Packet.vcproj winpcap/packetNtx/Dll/Project/Packet.vcproj
47c47
< 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API;HAVE_NETANALYZER_API"
---
> 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API"
126c126
< 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API;HAVE_NETANALYZER_API"
---
> 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API"
204c204
< 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API;HAVE_NETANALYZER_API"
---
> 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API"
283c283
< 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API;HAVE_NETANALYZER_API"
---
> 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API"
677c677
< 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_IPHELPER_API;HAVE_NETANALYZER_API"
---
> 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_IPHELPER_API"
757c757
< 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_IPHELPER_API;HAVE_NETANALYZER_API"
---
> 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_IPHELPER_API"
836c836
< 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_IPHELPER_API;HAVE_NETANALYZER_API"
---
> 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_IPHELPER_API"
916c916
< 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_AIRPCAP_API;HAVE_IPHELPER_API;HAVE_NETANALYZER_API"
---
> 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_AIRPCAP_API;HAVE_IPHELPER_API"
995c995
< 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API;HAVE_NETANALYZER_API;_DEBUG_TO_FILE"
---
> 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API;_DEBUG_TO_FILE"
1074c1074
< 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API;HAVE_NETANALYZER_API;_DEBUG_TO_FILE"
---
> 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_AIRPCAP_API;HAVE_WANPACKET_API;HAVE_IPHELPER_API;_DEBUG_TO_FILE"
1152c1152
< 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_IPHELPER_API;HAVE_NETANALYZER_API;_DEBUG_TO_FILE"
---
> 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;HAVE_AIRPCAP_API;HAVE_IPHELPER_API;_DEBUG_TO_FILE"
1232c1232
< 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_AIRPCAP_API;HAVE_IPHELPER_API;HAVE_NETANALYZER_API;_DEBUG_TO_FILE"
---
> 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS; ;HAVE_AIRPCAP_API;HAVE_IPHELPER_API;_DEBUG_TO_FILE"
1457,1460d1456
< 				RelativePath="..\netAnalyzer\netAnalyzer.cpp"
< 				>
< 			</File>
< 			<File
1580,1587d1575
< 				>
< 			</File>
< 			<File
< 				RelativePath="..\netAnalyzer\netana_user.h"
< 				>
< 			</File>
< 			<File
< 				RelativePath="..\netAnalyzer\netAnalyzer.h"
Only in V1.0.1.0/release/winpcap/packetNtx/Dll: netAnalyzer
diff -r V1.0.1.0/release/winpcap/wpcap/libpcap/gencode.c winpcap/wpcap/libpcap/gencode.c
1567,1572d1566
< 
< 	case DLT_NETANALYZER:
< 		off_linktype = -1;
< 		off_macpl = -1;
< 		off_nl = -1;
< 		return;
diff -r V1.0.1.0/release/winpcap/wpcap/libpcap/pcap/bpf.h winpcap/wpcap/libpcap/pcap/bpf.h
844,849d843
< /* Pseudo-header for Hilscher Gesellschaft für Systemautomation mbH netANALYZER
<  * devices, followed by an Ethernet frame, beginning with the MAC header and
<  * ending with the FCS. 
<  */
< #define DLT_NETANALYZER	240
< 
diff -r V1.0.1.0/release/winpcap/wpcap/libpcap/pcap-win32.c winpcap/wpcap/libpcap/pcap-win32.c
671,674d670
<   case NetAnalyzer:
< 		p->linktype = DLT_NETANALYZER;
< 		break;
< 
diff -r V1.0.1.0/release/winpcap/wpcap/libpcap/pcap.c winpcap/wpcap/libpcap/pcap.c
674,675d673
< 	DLT_CHOICE(DLT_NETANALYZER, "Hilscher netANALYZER info header"),
<   
