
Windows核心编程
文章平均质量分 57
winglet
改了改了,找到工作了就没啥要说的了~~~
展开
-
对程序错误的处理及C#版的Windows错误码查询
几个知识点: 1.当Windows函数返回值为BOOL时,如果函数运行失败,则返回0值,否则返回非0值。最好对返回值进行测试,以确定它是0还是非0。不要测试返回值是否为TRUE。 2.当返回值为HANDLE时,通常都是失败就返回NULL,但有时函数会返回一个被定义为-1的INVALID_HANDLE_VALUE值。因此,使用函数的时候应该查阅平台SDK文档,以确定返回值是什么。 3.从系统内原创 2008-08-15 07:22:00 · 2912 阅读 · 0 评论 -
Unicode字符问题
几个知识点: 1.Windows98 只支持ANSI,只能为ANSI开发应用程序。 2.Windows2000及以后既支持Unicode,也支持ANSI,因此可以为任意一种开发应用程序,但是需要明白的是,内核只处理了Unicode,系统在处理ANSI时,需要先转换为Unicode,然后将其传递给操作系统,操作系统处理完后,系统再将Unicode转换成ANSI字符串返回给应用程序。 3.Win原创 2008-08-19 08:28:00 · 937 阅读 · 0 评论 -
内核对象
几个知识点: 1.内核对象是由内核拥有的对象,可以供系统和应用程序使用来管理各种各样的资源。如事件对象、文件对象、文件映射对象、I/O完成端口对象、互斥对象、管道对象等等。 2.系统采用使用计数的机制来撤销对象。内核对象能够得到安全描述符的保护。安全描述符用于描述谁创建了该对象,谁能够访问或使用该对象,谁无权访问该对象,安全描述符通常在编写服务器应用程序时使用。 3.用于判断一个对象究竟是用原创 2008-08-20 08:41:00 · 953 阅读 · 0 评论 -
作业
几个知识点: 1.Windows提供一个称为"作业"的内核对象,使我们能够将进程组合在一起,作为单个进程组来处理,并且创建一个"沙箱",以便限制进程能够进行的操作。可以将作业对象视为进程的容器。创建包含单个进程的作业也是有用的,这样就可以对进程加上通常情况下不能加的限制。 2.作业创建后,通过SetInformationObject可以给作业加上若干不同类型的限制,以便限制作业中的进程能够进行原创 2008-08-25 13:31:00 · 835 阅读 · 0 评论 -
进程
几个知识点: 1.进程通常被定义为一个正在运行的程序的实例。它由两个部分组成:一个是操作系统用来管理进程的内核对象。另一个是地址空间,它包含所有可执行模块或DLL模块的代码和数据,还包括动态内存分配的空间,如线程堆栈和堆分配空间。 2.Windows应用程序必须拥有一个在应用程序启动运行时调用的进入点函数。可以使用的进入点函数有4个:WinMain、wWinMain、main和wmain。操作原创 2008-08-25 03:15:00 · 848 阅读 · 0 评论 -
线程的基础知识
几个知识点: 1.线程由两部分组成:线程的内核对象,操作系统用它来对线程实施管理,内核对象也是系统用来存放线程统计信息的地方;另一个是线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量。 2.线程在它所属的进程地址空间中执行代码,并且在进程的地址空间中对数据进行操作。 3.注意CreateThread函数是用来创建线程的Windows函数。如果你正在编写C/C++代码,绝不应该原创 2008-09-03 09:13:00 · 1194 阅读 · 0 评论 -
线程的调度、优先级和亲缘性
几个知识点: 1.使用SuspendThread和ResumeThread来暂停和恢复线程的运行。 2.通过Sleep函数,线程可以告诉系统,它不想在某个时间段内被调度。系统将在大约的指定毫秒数内使线程不可调度。如果给Sleep函数传递0,表示调用线程将释放剩余的时间片,并迫使系统调度另一个线程。 3.系统提供了一个称为SwitchToThread的函数,使得另一个可调度线程(如果存在的话)原创 2008-09-05 05:52:00 · 2029 阅读 · 0 评论 -
用户方式中线程的同步
几个知识点: 1.线程需要在下面两种情况下互相进行通信: 当有多个线程访问共享资源而不使资源被破坏时; 当一个线程需要将某个任务已经完成的情况通知另外一个或多个线程时。 2.线程同步问题在很大程度上与原子访问有关,所谓原子访问,是指线程在访问资源时能够确保所有其他线程都不在同一时间访问相同的资源。 3.使用互锁函数可以保证以原子操作方式进行:InterlockedExch原创 2008-09-11 02:46:00 · 821 阅读 · 0 评论 -
线程与内核对象的同步
1.用户方式的线程同步具有速度快的优点。但是它的局限性也是明显的:互锁函数只能在单值上运行,根本无法使线程进入等待状态;可以使用关键代码段使线程进入等待状态,但是只能用这些代码段对单个进程中的线程实施同步;而且使用关键代码段时,很容易进入死锁状态,因为在等待进入关键代码段时无法设定超时值。 2.使用内核对象来实现线程同步的一个不足之处是它的速度比较慢,因为调用线程必须从用户方式转为内核方式。这个原创 2008-09-08 05:08:00 · 1120 阅读 · 0 评论