深度剖析WinPcap之(七)——获得与释放网络适配器设备列表(2)
2009-09-11 00:00:00 来源:WEB开发网void PacketPopulateAdaptersInfoList()
{
…
/*
*调用者不使用g_AdaptersInfoList作为参数,
*应该获得g_AdaptersInfoMutex互斥信号,
*/
WaitForSingleObject(g_AdaptersInfoMutex, INFINITE);
/*访问g_AdaptersInfoList参数 */
if(g_AdaptersInfoList)
{
…
}
…
/*释放g_AdaptersInfoMutex互斥信号*/
ReleaseMutex(g_AdaptersInfoMutex);
…
}
结构体_NPF_IF_ADDRESS_ITEM包含一个适配器所有网络地址节点的链表。该结构体定义如下:
typedef struct _NPF_IF_ADDRESS_ITEM
{
npf_if_addr Addr; //网络地址
struct _NPF_IF_ADDRESS_ITEM *Next; //指向链表的下一个节点
}
NPF_IF_ADDRESS_ITEM, *PNPF_IF_ADDRESS_ITEM;
结构体_NPF_IF_ADDRESS_ITEM中的成员npf_if_addr存储网络适配器的网络地址。函数PacketGetNetInfoEx()使用该结构体,以返回适配器的网络地址。该结构体定义如下:
typedef struct npf_if_addr {
struct sockaddr_storage IPAddress; //IP地址
struct sockaddr_storage SubnetMask; //网络掩码地址
struct sockaddr_storage Broadcast; //广播地址
}npf_if_addr;
1.4.2 PacketGetAdapterNames函数
函数PacketGetAdapterNames获取可用网络适配器的一个列表与它们的描述。
参数pStr是用户分配的字符串,用来存储适配器的名称。参数BufferSize是pStr所指缓冲区的长度。
- ››深度解释攻击linux服务器的四种级别
- ››剖析java.util.concurrent锁
- ››剖析Android智能手机系统的更多功能
- ››深度分析地方社区网站的内容定位
- ››剖析Windows Azure Platform框架与组成
- ››剖析使用 ObjectOutputStream 可能引起的内存泄漏...
- ››剖析EWebEditor编辑器漏洞攻击案例
- ››剖析开源云:构建 Infrastructure as a Service 块...
- ››深度剖析 Android 和 iPhone OS
- ››深度分析:HTML5能否成为Flash终结者
- ››深度挖掘 更多Windows 7快捷模式
- ››深度挖掘 Windows 7快捷模式
更多精彩
赞助商链接