add winpcap 4.0.2 from url http://www.winpcap.org/
[natblaster.git] / winpcap / packetNtx / Dll / NpfImExt.c
blob01d720e2feb89b17bd96c135bc17f9db0a82835d
1 #include "NpfImExt.h"
2 #include <windows.h>
4 #include "debug.h"
6 #ifdef HAVE_NPFIM_API
8 NPF_IM_HANDLERS g_NpfImHandlers;
9 HMODULE g_hNpfImDll;
11 BOOL LoadNpfImDll()
13 TRACE_ENTER("LoadNpfImDll");
15 if (g_hNpfImDll != NULL)
17 TRACE_EXIT("LoadNpfImDll");
18 return TRUE;
21 g_hNpfImDll = LoadLibraryA("NpfIm.dll");
23 if (g_hNpfImDll == NULL)
25 TRACE_EXIT("LoadNpfImDll");
26 return FALSE;
29 g_NpfImHandlers.NpfImFreeDeviceList = (NpfImFreeDeviceListHandler) GetProcAddress(g_hNpfImDll,"NpfImFreeDeviceList");
30 g_NpfImHandlers.NpfImGetCaptureReadEvent = (NpfImGetCaptureReadEventHandler) GetProcAddress(g_hNpfImDll,"NpfImGetCaptureReadEvent");
31 g_NpfImHandlers.NpfImGetCaptureStatistics = (NpfImGetCaptureStatisticsHandler) GetProcAddress(g_hNpfImDll,"NpfImGetCaptureStatistics");
32 g_NpfImHandlers.NpfImGetDeviceList = (NpfImGetDeviceListHandler) GetProcAddress(g_hNpfImDll,"NpfImGetDeviceList");
33 g_NpfImHandlers.NpfImGetIpAddresses = (NpfImGetIpAddressesHandler) GetProcAddress(g_hNpfImDll,"NpfImGetIpAddresses");
34 g_NpfImHandlers.NpfImGetLinkSpeed = (NpfImGetLinkSpeedHandler) GetProcAddress(g_hNpfImDll,"NpfImGetLinkSpeed");
35 // g_NpfImHandlers.NpfImGetMacAddress = (NpfImGetMacAddressHandler) GetProcAddress(g_hNpfImDll,"NpfImGetMacAddress");
36 g_NpfImHandlers.NpfImGetMedium = (NpfImGetMediumHandler) GetProcAddress(g_hNpfImDll,"NpfImGetMedium");
37 g_NpfImHandlers.NpfImGetRunningDriverVersion= (NpfImGetRunningDriverVersionHandler) GetProcAddress(g_hNpfImDll,"NpfImGetRunningDriverVersion");
38 g_NpfImHandlers.NpfImIssueQueryOid = (NpfImIssueQueryOidHandler) GetProcAddress(g_hNpfImDll,"NpfImIssueQueryOid");
39 // g_NpfImHandlers.NpfImIssueSetOid = (NpfImIssueSetOidHandler) GetProcAddress(g_hNpfImDll,"NpfImIssueSetOid");
40 g_NpfImHandlers.NpfImOpenDevice = (NpfImOpenDeviceHandler) GetProcAddress(g_hNpfImDll,"NpfImOpenDevice");
41 g_NpfImHandlers.NpfImReceivePackets = (NpfImReceivePacketsHandler) GetProcAddress(g_hNpfImDll,"NpfImReceivePackets");
42 g_NpfImHandlers.NpfImSetBpfFilter = (NpfImSetBpfFilterHandler) GetProcAddress(g_hNpfImDll,"NpfImSetBpfFilter");
43 g_NpfImHandlers.NpfImSetCaptureBufferSize = (NpfImSetCaptureBufferSizeHandler) GetProcAddress(g_hNpfImDll,"NpfImSetCaptureBufferSize");
44 g_NpfImHandlers.NpfImSetMinToCopy = (NpfImSetMinToCopyHandler) GetProcAddress(g_hNpfImDll,"NpfImSetMinToCopy");
45 g_NpfImHandlers.NpfImSetReadTimeout = (NpfImSetReadTimeoutHandler) GetProcAddress(g_hNpfImDll,"NpfImSetReadTimeout");
46 g_NpfImHandlers.NpfImCloseDevice = (NpfImCloseDeviceHandler) GetProcAddress(g_hNpfImDll, "NpfImCloseDevice");
48 if (
49 g_NpfImHandlers.NpfImCloseDevice == NULL
50 || g_NpfImHandlers.NpfImFreeDeviceList == NULL
51 || g_NpfImHandlers.NpfImGetCaptureReadEvent == NULL
52 || g_NpfImHandlers.NpfImGetCaptureStatistics == NULL
53 || g_NpfImHandlers.NpfImGetDeviceList == NULL
54 || g_NpfImHandlers.NpfImGetIpAddresses == NULL
55 || g_NpfImHandlers.NpfImGetLinkSpeed == NULL
56 // || g_NpfImHandlers.NpfImGetMacAddress == NULL
57 || g_NpfImHandlers.NpfImGetMedium == NULL
58 || g_NpfImHandlers.NpfImGetRunningDriverVersion == NULL
59 || g_NpfImHandlers.NpfImIssueQueryOid == NULL
60 // || g_NpfImHandlers.NpfImIssueSetOid == NULL
61 || g_NpfImHandlers.NpfImOpenDevice == NULL
62 || g_NpfImHandlers.NpfImReceivePackets == NULL
63 || g_NpfImHandlers.NpfImSetBpfFilter == NULL
64 || g_NpfImHandlers.NpfImSetCaptureBufferSize == NULL
65 || g_NpfImHandlers.NpfImSetMinToCopy == NULL
66 || g_NpfImHandlers.NpfImSetReadTimeout == NULL
69 UnloadNpfImDll();
70 TRACE_EXIT("LoadNpfImDll");
71 return FALSE;
74 TRACE_EXIT("LoadNpfImDll");
75 return TRUE;
78 BOOL UnloadNpfImDll()
80 TRACE_ENTER("UnloadNpfImDll");
82 if (g_hNpfImDll == NULL)
84 TRACE_EXIT("UnloadNpfImDll");
85 return FALSE;
88 FreeLibrary(g_hNpfImDll);
89 g_hNpfImDll = NULL;
90 ZeroMemory(&g_NpfImHandlers, sizeof(g_NpfImHandlers));
92 TRACE_EXIT("UnloadNpfImDll");
93 return TRUE;
96 #endif //HAVE_NPFIM_API