您的位置:首页 > 其它

调用C r e a t e *函数与调用O p e n *函数之间的主要差别

2012-07-05 19:35 387 查看
按名字共享对象的另一种方法是,进程不调用C r e a t e *函数,而是调用下面显示的O p e n *函

数中的某一个:

注意,所有这些函数都拥有相同的原型。最后一个参数p s z N a m e用于指明内核对象的名字。

不能为该参数传递N U L L,必须传递以0结尾的地址。这些函数要搜索内核对象的单个名空间,

以便找出匹配的空间。如果不存在带有指定名字的内核对象,该函数返回N U L L,G e t L a s t E r r o r

返回2(E R R O R F I L E N O T F O U N D)。但是,如果存在带有指定名字的内核对象,并且它是

相同类型的对象,那么系统就要查看是否允许执行所需的访问(通过d w D e s i r e d A c c e s s参数进

行访问)。如果拥有该访问权,调用进程的句柄表就被更新,对象的使用计数被递增。如果为

b I n h e r i t H a n d l e参数传递T R U E,那么返回的句柄将是可继承的。

调用C r e a t e *函数与调用O p e n *函数之间的主要差别是,如果对象并不存在,那么C r e a t e *函

数将创建该对象,而O p e n *函数则运行失败。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐