摘要:
内核对象主要要用来供系统和应用程序管理系统资源,像进程、线程、文件等。存取符号对象、事件对象、文件对象、作业对象、互斥对象、管道对象、等待计时器对象等都是内核对象。我们在编程时经常要创建、打开和操作它们。内核对象通过调用函数来创建,如要创建文件映射对象,就调用CreateFileMapping函数。每个内核对象都会分配一个内存块,只能由其内核访问。该内存块是一种数据结构,用于管理对象的各种信息。 我们的应用程序不能直接访问内核对象的数据结构。需要通过Windows提供的函数来访问。 内核对象由内核拥有,并不是进程所拥有。每个内核对象都有一个计数器来存储有多少个进程在使用它的信息。 内核对象有安 阅读全文
摘要:
VariantClear 和 VariantInit 函数两个函数是做什么的呢?近日程序出错,我不得不认真研究了一下它们的作用。1.VariantClear()函数Clears the contents of a variant and sets the variant to VT_EMPTY.如何做到Clears the contents of a variant (清空变量的内容呢)? 实际是通过调用相应变量类型的释放空间的方法来达到这个目的的。而且他不仅释放了空间,还初期化了变量。简单的英文说明,不译了。CommentsVariantClear is used to clear the. 阅读全文
摘要:
9.6.2 互斥对象与关键代码段的比较就等待线程的调度而言,互斥对象与关键代码段之间有着相同的特性。但是它们在其他属性方面却各不相同。表9 - 1对它们进行了各方面的比较。表9-1 互斥对象与关键代码段的比较特性互斥对象关键代码段运行速度慢快是否能够跨进程边界来使用是否声明HANDLE hmtx;CRITICAL_SECTION cs;初始化h m t x = C r e a t e M u t e x (N U L L,FA L S E,N U L L);I n i t i a l i z e C r i t i c a l S e c t i o n ( & e s );清除C l 阅读全文