BOOL SpySrv_Start (HWND hwndMain) { BOOL bSuccess ; TRACE ; // send filters to driver bSuccess = SpySrv_SendFilterSetToDriver () ; if( ! bSuccess ) { TRACE_ERROR(TEXT("SendFiltersToDriver failed\n")) ; CloseHandle (g_hDriver) ; return FALSE ; } // initialize app-driver link bSuccess = Link_Init (g_hDriver, _SpySrv_RequestFromDriver) ; // ok ? if( ! bSuccess ) { TRACE_ERROR(TEXT("Link_Init failed (0x%08X)\n"), GetLastError()) ; CloseHandle (g_hDriver) ; return FALSE ; } _SpySrv_RefreshProcList () ; return TRUE ; }
int main_list() { char *cC ="CC"; int nIndex = 0; PLIST_HEADER_T list = Link_Init(); PLIST_NODE_T pOneNode[5] = {0}; PLIST_NODE_T pFindNode = {0}; LST_Insert(list, 1, "CC", 3); LST_Insert(list, 9, "hh", 3); LST_Insert(list, 9, "iiiii", 6); LST_Insert(list, 9, "nn", 3); LST_Insert(list, 9, "aa", 3); for (nIndex = 0; nIndex <5; nIndex++) { pOneNode[nIndex] = LST_GetAt(list,nIndex); } for (nIndex = 0; nIndex <5; nIndex++) { printf("pOneNode[%d] 的地址是%x,数据域是%s\n",nIndex,(char*)pOneNode[nIndex],pOneNode[nIndex]->pvData); } printf("未删除前链表个数 = %d \n", list->nNodeCount); pFindNode = LST_FindNode(list, &cC,strlen(cC), FIND_STR);//如果是查找字符串的话,就调用FIND_STR函数 printf("找到的节点pFindNode的地址是%x\n",pFindNode); LST_DeleteByPos(list, 5); LST_DeleteByPos(list, 4); LST_DeleteByPos(list, 1); LST_DeleteByPos(list, 1); LST_DeleteByPos(list, 1); printf("删除后链表个数 = %d \n", list->nNodeCount); while(1); }
// ============================================================================= // 函数功能:ModuleInstall_DjyIp // TcpIP协议栈初始化 // 输入参数:para,无意义 // 输出参数:无 // 返回值 :目前无意义 // 说明 :1,先初始化基础性质的模块 // 2,再初始化协议层的模块 // 3,再初始化具体协议 // 4,当上述四部完成的时候,应该可以注册网卡、注册ROUT以及套接字编程了 // ============================================================================= ptu32_t ModuleInstall_DjyIp(ptu32_t para) { //数据包管理模块的初始化,只有初始化完毕后才存在协议栈的数据包的管理 extern bool_t Pkg_Init(void); if(false == Pkg_Init()) { printk("DJY_NETSTACK_INIT: Pkg Init Failed\n\r"); goto TCPIP_INITERR; } else { printk("DJY_NETSTACK_INIT: Pkg Init Success\n\r"); } //ROUT表的初始化,初始化完毕后才可以添加链路 extern bool_t Rout_Init(void); if(false == Rout_Init()) { printk("DJY_NETSTACK_INIT: Rout Init Failed\n\r"); goto TCPIP_INITERR; //初始化失败,应该采取点措施 } else { printk("DJY_NETSTACK_INIT: Rout Init Success\n\r"); } //设备抽象接口,初始化后才可以注册网卡 extern bool_t NetDev_Init(void); if(false == NetDev_Init()) { printk("DJY_NETSTACK_INIT: NetDev Init Failed\n\r"); //初始化失败,应该采取点措施 goto TCPIP_INITERR; } else { printk("DJY_NETSTACK_INIT: NetDev Init Success\n\r"); } //链路层初始化,完毕之后可以注册ARP RARP IP等网络协议的处理函数 extern bool_t Link_Init(void); if(false == Link_Init()) { printk("DJY_NETSTACK_INIT: Link Init Failed\n\r"); //初始化失败,应该采取点措施 goto TCPIP_INITERR; } else { printk("DJY_NETSTACK_INIT: Link Init Success\n\r"); } //ARP协议初始化 extern bool_t Arp_Init(void); if(false == Arp_Init()) { printk("DJY_NETSTACK_INIT: Arp Init Failed\n\r"); //初始化失败,应该采取点措施 goto TCPIP_INITERR; } else { printk("DJY_NETSTACK_INIT: Arp Init Success\n\r"); } //IP协议初始化 extern bool_t Ip_Init(ptu32_t para); if(false == Ip_Init((ptu32_t)0)) { printk("DJY_NETSTACK_INIT: Ip Init Failed\n\r"); //初始化失败,应该采取点措施 goto TCPIP_INITERR; } else { printk("DJY_NETSTACK_INIT: Ip Init Success\n\r"); } //传输层初始化 extern bool_t TPL_Init(ptu32_t para); if(false == TPL_Init((ptu32_t)0)) { printk("DJY_NETSTACK_INIT: TPL Init Failed\n\r"); //初始化失败,应该采取点措施 goto TCPIP_INITERR; } else { printk("DJY_NETSTACK_INIT: TPL Init Success\n\r"); } //socket初始化 extern bool_t Socket_Init(ptu32_t para); if(false == Socket_Init((ptu32_t)0)) { printk("DJY_NETSTACK_INIT: Socket Init Failed\n\r"); //初始化失败,应该采取点措施 goto TCPIP_INITERR; } else { printk("DJY_NETSTACK_INIT: Socket Init Success\n\r"); } //TCP协议初始化 extern bool_t Tcp_Init(ptu32_t para); if(false == Tcp_Init((ptu32_t)0)) { printk("DJY_NETSTACK_INIT: Tcp Init Failed\n\r"); //初始化失败,应该采取点措施 goto TCPIP_INITERR; } else { printk("DJY_NETSTACK_INIT: Tcp Init Success\n\r"); } //udp proto init bool_t Udp_Init(ptu32_t para); if(false == Udp_Init((ptu32_t)0)) { printk("DJY_NETSTACK_INIT: Udp Init Failed\n\r"); //初始化失败,应该采取点措施 goto TCPIP_INITERR; } else { printk("DJY_NETSTACK_INIT: Udp Init Success\n\r"); } //ICMP协议初始化 extern bool_t Icmp_Init(ptu32_t para); if(false == Icmp_Init((ptu32_t)0)) { printk("DJY_NETSTACK_INIT: Icmp Init Failed\n\r"); //初始化失败,应该采取点措施 goto TCPIP_INITERR; } else { printk("DJY_NETSTACK_INIT: Icmp Init Success\n\r"); } printk("*********DJY TCP/IP INIT SUCCESS************************\n\r"); return 0; TCPIP_INITERR: printk("*********DJY TCP/IP INIT FAILED************************\n\r"); return -1; }