 |
|
Packet Sniffer SDK DLL Edition
HNPSManager wrapper for C# | | Previous Next |
File: HNPSManager.cs using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Runtime.InteropServices;
namespace microOLAP.PSSDK
{
/// <summary>
/// Summary description for HNPSManager.
/// </summary>
public partial class HNPSManager : Component
{
#region DLL exports
/// <summary>
/// Creates an HNPSManager object.
/// </summary>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrCreate")]
private static extern IntPtr MgrCreate();
/// <summary>
/// Destroys an HNPSManager object.
/// </summary>
/// <param name="hMgr"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrDestroy")]
private static extern int MgrDestroy(IntPtr hMgr);
/// <summary>
/// Displays information about Packet Sniffer SDK.
/// </summary>
/// <param name="hMgr"></param>
[DllImport("pssdk.dll", EntryPoint = "MgrAbout")]
private static extern void MgrAbout(IntPtr hMgr);
/// <summary>
/// Returns the version number of the Packet Sniffer SDK library.
/// </summary>
/// <param name="hMgr"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrGetVersionW", CharSet = CharSet.Unicode)]
private static extern IntPtr MgrGetVersion(IntPtr hMgr);
/// <summary>
/// Returns the build number of the Packet Sniffer SDK library.
/// </summary>
/// <param name="hMgr"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrGetBuildW", CharSet = CharSet.Unicode)]
private static extern IntPtr MgrGetBuild(IntPtr hMgr);
/// <summary>
/// Returns the WANMonitor installation status.
/// </summary>
/// <param name="hMgr"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrGetWanMonitorState")]
private static extern bool MgrGetWanMonitorState(IntPtr hMgr);
/// <summary>
/// Sets the WANMonitor installation status.
/// </summary>
/// <param name="hMgr"></param>
/// <param name="bEnable"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrSetWanMonitorState")]
private static extern bool MgrSetWanMonitorState(IntPtr hMgr, bool bEnable);
/// <summary>
/// Initializes Packet Sniffer SDK.
/// </summary>
/// <param name="hMgr"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrInitialize")]
private static extern int MgrInitialize(IntPtr hMgr);
/// <summary>
/// Returns the number of the HNAdapterConfig objects.
/// </summary>
/// <param name="hMgr"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrGetAdaptersCfgCount")]
private static extern int MgrGetAdaptersCfgCount(IntPtr hMgr);
/// <summary>
/// Returns the handle of the first HNAdapterConfig object.
/// </summary>
/// <param name="hMgr"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrGetFirstAdapterCfg")]
private static extern IntPtr MgrGetFirstAdapterCfg(IntPtr hMgr);
/// <summary>
/// Returns the handle of the next HNAdapterConfig object.
/// </summary>
/// <param name="hMgr"></param>
/// <param name="hCfg"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrGetNextAdapterCfg")]
private static extern IntPtr MgrGetNextAdapterCfg(IntPtr hMgr, IntPtr hCfg);
/// <summary>
/// Refreshes the internal list of the HNAdapterConfig objects.
/// </summary>
/// <param name="hMgr"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrRefreshAdapterList")]
private static extern int MgrRefreshAdapterList(IntPtr hMgr);
/// <summary>
/// Sets the OnConfigChange event.
/// </summary>
/// <param name="hMgr"></param>
/// <param name="pfOnConfigChange"></param>
/// <param name="Param"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrSetOnConfigChange")]
private static extern IntPtr MgrSetOnConfigChange(IntPtr hMgr, CallBackOnConfigChange pfOnConfigChange, IntPtr Param);
/// <summary>
/// Return PSSDK initialization status.
/// </summary>
/// <param name="hMgr"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrIsInitialized")]
private static extern bool MgrIsInitialized(IntPtr hMgr);
/// <summary>
/// Return PSSDK protocol driver installation status for current version.
/// </summary>
/// <param name="hMgr"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrIsProtocolInstalled")]
private static extern bool MgrIsProtocolInstalled(IntPtr hMgr);
/// <summary>
/// Install PSSDK protocol driver for current version.
/// </summary>
/// <param name="hMgr"></param>
/// <param name="UniqueInstallID"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrInstallProtocolW", CharSet = CharSet.Unicode)]
private static extern uint MgrInstallProtocol(IntPtr hMgr, string UniqueInstallID);
/// <summary>
/// Uninstall PSSDK protocol driver for current version.
/// </summary>
/// <param name="hMgr"></param>
/// <param name="UniqueInstallID"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrUninstallProtocolW", CharSet = CharSet.Unicode)]
private static extern uint MgrUninstallProtocol(IntPtr hMgr, string UniqueInstallID);
/// <summary>
/// Return PSSDK loopback driver installation status for current version.
/// </summary>
/// <param name="hMgr"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrIsLoopBackInstalled")]
private static extern bool MgrIsLoopBackInstalled(IntPtr hMgr);
/// <summary>
/// Install PSSDK loopback driver for current version.
/// </summary>
/// <param name="hMgr"></param>
/// <param name="UniqueInstallID"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrInstallLoopBackW", CharSet = CharSet.Unicode)]
private static extern uint MgrInstallLoopBack(IntPtr hMgr, string UniqueInstallID);
/// <summary>
/// Uninstall PSSDK loopback driver for current version.
/// </summary>
/// <param name="hMgr"></param>
/// <param name="UniqueInstallID"></param>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrUninstallLoopBackW", CharSet = CharSet.Unicode)]
private static extern uint MgrUninstallLoopBack(IntPtr hMgr, string UniqueInstallID);
/// <summary>
/// Unload protocol driver for current version of PSSDK (windows nt/2k/xp/2k3/vista).
/// </summary>
/// <returns></returns>
[DllImport("pssdk.dll", EntryPoint = "MgrUnloadProtocolNtDriver", CharSet = CharSet.Unicode)]
private static extern uint MgrUnloadProtocolNtDriver();
#endregion
#region HNPSManager events
/// <summary>
/// CallBack OnConfigChange.
/// </summary>
/// <param name="Param"></param>
/// <param name="hConfig"></param>
/// <param name="ChangeType"></param>
private delegate void CallBackOnConfigChange(IntPtr Param, IntPtr hConfig, int ChangeType);
/// <summary>
/// CallBack variable OnConfigChange.
/// </summary>
private CallBackOnConfigChange pfOnConfigChange;
/// <summary>
/// OnConfigChange event handler.
/// </summary>
public event OnConfigChangeEventHandler OnConfigChange;
#endregion
/// <summary>
/// Handle of the HNPSManager object.
/// </summary>
private IntPtr hMgr = IntPtr.Zero;
/// <summary>
/// Creates an HNPSManager object.
/// </summary>
public HNPSManager()
{
InitializeComponent();
hMgr = MgrCreate();
if (hMgr != IntPtr.Zero)
{
pfOnConfigChange = new CallBackOnConfigChange(this.DoOnConfigChange);
MgrSetOnConfigChange(hMgr, pfOnConfigChange, IntPtr.Zero);
}
}
/// <summary>
/// Destroys an HNPSManager object.
/// </summary>
~HNPSManager()
{
if (hMgr != IntPtr.Zero) MgrDestroy(hMgr);
}
#region HNPSManager properties
/// <summary>
/// Checks if the HNPSManager object has been created correctly.
/// </summary>
[Browsable(false)]
public bool IsValid
{
get
{
return (hMgr != IntPtr.Zero);
}
}
/// <summary>
/// Displays information about Packet Sniffer SDK.
/// </summary>
public void About()
{
MgrAbout(hMgr);
}
/// <summary>
/// Returns the version number of the Packet Sniffer SDK library.
/// </summary>
public string Version
{
get
{
return Marshal.PtrToStringUni(MgrGetVersion(hMgr));
}
}
/// <summary>
/// Returns the build number of the Packet Sniffer SDK library.
/// </summary>
public string Build
{
get
{
return Marshal.PtrToStringUni(MgrGetBuild(hMgr));
}
}
/// <summary>
/// Returns the number of the HNAdapterConfig objects.
/// </summary>
[Browsable(false)]
public int AdaptersCfgCount
{
get
{
return MgrGetAdaptersCfgCount(hMgr);
}
}
/// <summary>
/// Sets/Returns the WANMonitor installation status.
/// </summary>
public bool WanMonitorState
{
get
{
return MgrGetWanMonitorState(hMgr);
}
set
{
MgrSetWanMonitorState(hMgr, value);
}
}
/// <summary>
/// Return PSSDK initialization status.
/// </summary>
public bool IsInitialized
{
get { return MgrIsInitialized(hMgr); }
}
/// <summary>
/// Return PSSDK protocol driver installation status for current version.
/// </summary>
public bool IsProtocolInstalled
{
get { return MgrIsProtocolInstalled(hMgr); }
}
/// <summary>
/// Return PSSDK loopback driver installation status for current version.
/// </summary>
public bool IsLoopBackInstalled
{
get { return MgrIsLoopBackInstalled(hMgr); }
}
#endregion
#region HNPSManager methods
/// <summary>
/// Initializes Packet Sniffer SDK.
/// </summary>
/// <returns></returns>
public PSSDKRES Initialize()
{
return (PSSDKRES)MgrInitialize(hMgr);
}
/// <summary>
/// Returns the handle of the first HNAdapterConfig object.
/// </summary>
/// <returns></returns>
public IntPtr Get_FirstAdapter()
{
return MgrGetFirstAdapterCfg(hMgr);
}
/// <summary>
/// Returns the handle of the next HNAdapterConfig object.
/// </summary>
/// <param name="hPrevCfg"></param>
/// <returns></returns>
public IntPtr Get_NextAdapterCfg(IntPtr hPrevCfg)
{
return MgrGetNextAdapterCfg(hMgr, hPrevCfg);
}
/// <summary>
/// Refreshes the internal list of the HNAdapterConfig objects.
/// </summary>
/// <returns></returns>
public PSSDKRES RefreshAdapterList()
{
return (PSSDKRES)MgrRefreshAdapterList(hMgr);
}
/// <summary>
/// Install PSSDK protocol driver for current version.
/// </summary>
/// <returns></returns>
public PSSDKRES InstallProtocol(string UniqueInstallID)
{
return (PSSDKRES)MgrInstallProtocol(hMgr, UniqueInstallID);
}
/// <summary>
/// Uninstall PSSDK protocol driver for current version.
/// </summary>
public PSSDKRES UninstallProtocol(string UniqueInstallID)
{
return (PSSDKRES)MgrUninstallProtocol(hMgr,UniqueInstallID);
}
/// <summary>
/// Install PSSDK loopback driver for current version.
/// </summary>
public PSSDKRES InstallLoopBack(string UniqueInstallID)
{
return (PSSDKRES)MgrInstallLoopBack(hMgr,UniqueInstallID);
}
/// <summary>
/// Uninstall PSSDK loopback driver for current version.
/// </summary>
public PSSDKRES UninstallLoopBack(string UniqueInstallID)
{
return (PSSDKRES)MgrUninstallLoopBack(hMgr, UniqueInstallID);
}
/// <summary>
/// Unload protocol driver for current version of PSSDK (windows nt/2k/xp/2k3/vista).
/// </summary>
public PSSDKRES UnloadProtocolNtDriver()
{
return (PSSDKRES)MgrUnloadProtocolNtDriver();
}
#endregion
#region HNPSManager callbacks
/// <summary>
/// Fires when the network adapter configuration changes.
/// </summary>
/// <param name="Param"></param>
/// <param name="hConfig"></param>
/// <param name="ChangeType"></param>
private void DoOnConfigChange(IntPtr Param, IntPtr hConfig, int ChangeType)
{
if (OnConfigChange != null)
OnConfigChange(this, hConfig, (HNAdapterConfigChange)ChangeType);
}
#endregion
}
}
|