WEB开发网
开发学院操作系统windows 2008 深度剖析WinPcap之(七)——获得与释放网络适配器设... 阅读

深度剖析WinPcap之(七)——获得与释放网络适配器设备列表(2)

 2009-09-11 00:00:00 来源:WEB开发网   
核心提示: void PacketPopulateAdaptersInfoList(){ …/**调用者不使用g_AdaptersInfoList作为参数,*应该获得g_AdaptersInfoMutex互斥信号,深度剖析WinPcap之(七)——获得与释放网络适配器设备列表(2)(3),*/

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所指缓冲区的长度。

上一页  1 2 3 4 5 6  下一页

Tags:深度 剖析 WinPcap

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接