临界区、线程锁和互斥体

临界区、线程锁和互斥体 不可重入函数 不可重入函数: 当这个函数返回前,不可以被其他线程调用 原因: printf : 访问了引用全局变量stdout malloc : 引用了全局内存分配表 free : 引用的全局内存分配表 类似的 假如我在我的线程中使用全局变量会不会出现类似问题? 坑: 当多线程同时去访问所谓不可重入函数的时候,当A……

Continue reading

vmware 6 虚拟化 全系列 序列号

vmware 6 虚拟化 全系列 序列号 vSphere 6 Hypervisor HY0XH-D508H-081U8-JA2GH-CCUM2 4C4WK-8KH8L-H85J0-UHCNK-8CKQ8 NV09R-2W007-08D38-CA956-33U28 JU400-6EK4L-080V9-QT8EP-2KAQ2 vSphere 6 Hypervisor for Embedded OEMs NC6HH-26J4N-48098-Y0AX0-1GA66 HY0J0-6L28H-081W8-4TCN0-32RP0 0V012-002DJ-480T1-UHAE0-9GULF 4G6WR-A0K4M-08420-J8CN6-8A2QA vSphere 6 Desktop Host MF00U-65K53-H8DF9-Q20ZH-26R40 JV6D2-6YLDN-088C0-Q92N2-8Z00A HG49R-2234J-08EJ8-WC9E2-87H2D NV6TR-D4HD1-M84L1-P19QM-0PK3D vSphere 6 for vCloud Service Provider Standard JG2JK-DM01L-M8101-J8AZH-3LUH2 JZ41H-0X153-H8579-A32ZK-16H20 4A0HU-DU084-H8990-C9376-16KHF 1V0EA-FNK51-H85K8-H1AN6-2U8PD vCloud Suite 6 Standard HV0N8-AC382-H8ET1-631X6-23K10 HU4EA-A52E2-H89V9-T295K-0V8Q4 NZ4XH-2VK43-H8D30-6L974-97800 NU2DH-DW145-H81Y8-KL0QP-9GAQD vCloud Suite 6 Advanced MU2HU-DEHEQ-M85U0-N3356-07A5D HC0R0-AZJE3-08EF1-T99E6-86R32 HG0JK-F4J1M-08E49-L91Q2-8K832 5U40R-D615H-M8EZ8-D82ZP-12848 vCloud Suite 6 Enterprise JY04H-DFJ01-M8869-428EM-96R60 5Y04R-AYKE3-H8DR8-NK0EM-1UAL2 NC682-0GJ4P-08EM1-32ANM-0AU6F NZ2JR-6U286-H81N0-8V3Z6-1FHH2 vSphere with Operations Management 6 Standard HZ4J8-AWJ4Q-M8560-YT3Q6-0F052 JU24R-67H53-H8DF1-4L17K-8U208 MY6DK-0K1D2-M80T0-UR1Z4-8CK42 JU4E2-2W085-M8D78-M0AZM-AARKF vSphere with Operations Management 6 Enterprise JA60R-2JK84-M8DQ1-4L9N0-8VRP2 MG4T2-FY29P-480F9-9H0X0-16K1D 1U65R-2Y24N-M8DR1-U2C50-16HQ8 1V2HU-26KD1-08D60-LH9GK-CPU6F vSphere 6 Foundation JA6R2-DELEK-H8EP8-83AXP-07RQ8 0G6EA-07J5M-M8991-TJ0Z6-2U87D NU61R-ADKD2-488M9-CV8NH-A6K30 0Y050-A3L42-084C9-6LCGP-3AR3D vSphere 6 Foundation for Embedded OEMs HA2JK-42HD4-H80C0-79CZ0-1L012 JY2E2-6W11L-H81K0-0A274-3ZU36 4G6HU-FF05N-085L1-R0ANM-C705F 4Y2TA-2R08P-H80H9-N317H-1ZK16 vSphere 6 Embedded Essentials NY6M2-D5H8L-489D0-280Z0-2Q004 HA080-FP203-M8830-XH9QM-3PU2D JF0NH-AGJ0P-H8EW0-2U85H-AU0QA HU09A-6F04H-08E90-G28Z6-1A808 vSphere 6 Embedded Foundation 1A6H8-DT2D3-H8DR8-5L9EK-2AH18 4V088-D93DL-H89H9-3V8QH-C7H3D JU28A-DR3DN-489H9-JC8XH-CZ052 1U69U-0AL9L-08171-UHCXK-9622A vSphere 6 Essentials NG2T0-AZ08N-484V0-KRC52-87K2D JY412-8MKEH-489U0-KL2Q0-0ZUQ8 0F44K-85J17-489U8-JH9N6-8F060 4G28H-0CLDQ-H80J0-V3AZ0-862KA vSphere 6 Essentials for Retail and Branch Offices 4U6NH-4D0EK-08EU9-JLCZ6-AU0J4……

Continue reading

线程的创建和控制

线程的创建和控制 进程和线程的关系:进程提供资源,线程使用资源完成工作 创建线程函数 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD /安全属性 DWORD dwStackSize, // initial stack size //线程栈大小- LPTHREAD_START_ROUTINE lpStartAddress, // thread function //线程代码 LPVOID lpParameter, // thread argument //线程参数 DWORD dwCreationFlags, // creation option //创建标识 LPDWORD lpThreadId // thread identifier //线程id ); 线程的控制 //线程等待 //等待一个 DWORD WaitForSingleObject( HANDLE hHandle, // handle to object……

Continue reading

句柄表和继承

句柄表和继承 句柄代表着备操作的对象 句柄的本质(handler) 句柄表可以看做一个非常大的结构体数组 句柄表的结构 索引值: 进程通过索引找到句柄表中对应的选项 内核对象地址: 通过地址直接找到对应的内核对象 访问掩码: 控制了访问权限 标志位: 标志改句柄能否被继承 句柄表是如何工作的: 每个进程的内……

Continue reading

ListView控件

ListView控件 实现简单进程管理 用到的相关api函数 //获取控件句柄 HWND GetDlgItem( HWND hDlg,//获得控件所处的窗口的句柄 int nIDDlgItem //控件id ); //初始化列表的列 (listview插入新的一列 int ListView_InsertColumn( HWNDhwnd, //控件的句柄 int iCol, //第几列 (索引 index const LPLVCOLUMNpcol //结构体指针 (包含新列的结构体 ); //插入新的一行条……

Continue reading

进程的遍历、获取与销毁

进程的遍历、获取与销毁 创建快照遍历 //获得进程所使用的堆,模块和线程的信息快照 HANDLE WINAPI CreateToolhelp32Snapshot ( DWORD dwFlags,//标志位 DWORD th32ProcessID //进程ID ) //dwFlags: 指定的快照中,指定需要拍的系统部分 TH32CS_INHERIT 声明快照句柄是可继承的。 TH32CS_SNAPALL 在快照中包含系统中所有的 进程和线程。 TH32CS_SNAPHEAPLIST 在快照中包含ID所指定的进程的所有的堆。 TH32CS_SNAPMODULE 在快……

Continue reading

进程的创建

进程的创建 进程的启动过程 打开目标exe的映象文件 创建进程内核对象 映射NTDLL到内存 创建线程内核对象 通知子系统对进程进行管理 启动线程初始化空间和加载其他DLL 跳转到入口处开始执行 CreateProcess api BOOL CreateProcess( LPCTSTR lpApplicationName, // name of executable module LPTSTR lpCommandLine, // command line string LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD BOOL bInheritHandles, // handle inheritance option DWORD dwCreationFlags, // creation flags LPVOID lpEnvironment, // new environment block LPCTSTR lpCurrentDirectory, // current directory name LPSTARTUPINFO lpStartupInfo, //……

Continue reading

进程和线程

进程和线程 什么是进程? 进程和普通计算机程序的区别 进程 是运行中的程序 进程 活在内存中 有血有肉有灵魂 程序 死在 硬盘上的 有肉没血没灵魂 如果进程是空间的概念,那么这段空间里有什么? 如果进程是空间概念,那么进程是怎么工作的? 进程和线程的关系 进程: 提供了必要的资源和空间 线程: 使用进程中的资源完成……

Continue reading

窗口与事件

窗口与事件 窗口 什么是窗口? Windows中称为视窗,是一个程序的操作显示界面 窗口执行动作是由什么驱动的? Windows中通过什么机制将发生的一些动作和响应的响应函数连接起来 事件消息机制 事件 用户操作或者Windows系统自身所产生的动作就是发生了什么,事件总是和一个ID有关 消息 就是……

Continue reading

API与宽字符

API与宽字符 API(Application Programming Interface,应用程序编程接口) Api的定义 api就是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或者硬件的一访问一组例程的能力,而又无需访问源码,或者理解内部工作机制的细节 WindowsAPI的定义 Windows……

Continue reading