社区
Windows Server
帖子详情
Service进程如何与一般进程共享内核对象?!
wgj0122
2004-07-22 07:13:32
描述一下我遇到的问题:
有一个DLL1.dll,创建一个命名的内核事件对象(CreateEvent),另有一个普通进程EXE1.exe,试图打开这个对象(OpenEvent)。
当DLL1.dll的调用前端是普通进程时,EXE1.exe打开对象成功。
但如果以一个Service进程调用DLL.dll,可以创建对象,但无法打开对象。
谢谢!
...全文
53
回复
打赏
收藏
Service进程如何与一般进程共享内核对象?!
描述一下我遇到的问题: 有一个DLL1.dll,创建一个命名的内核事件对象(CreateEvent),另有一个普通进程EXE1.exe,试图打开这个对象(OpenEvent)。 当DLL1.dll的调用前端是普通进程时,EXE1.exe打开对象成功。 但如果以一个Service进程调用DLL.dll,可以创建对象,但无法打开对象。 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
《Android系统源代码情景分析》
《Android系统源代码情景分析》随书光盘内容(源代码) 目录如下: 第1篇 初识Android系统 第1章 准备知识 1.1 Linux
内核
参考书籍 1.2 Android应用程序参考书籍 1.3 下载、编译和运行Android源代码 1.3.1 下载Android源代码 1.3.2 编译Android源代码 1.3.3 运行Android模拟器 1.4 下载、编译和运行Android
内核
源代码 1.4.1 下载Android
内核
源代码 1.4.2 编译Android
内核
源代码 1.4.3 运行Android模拟器 1.5 开发第一个Android应用程序 1.6 单独编译和打包Android应用程序模块 1.6.1 导入单独编译模块的mmm命令 1.6.2 单独编译Android应用程序模块 1.6.3 重新打包Android系统镜像文件 第2章 硬件抽象层 2.1 开发Android硬件驱动程序 2.1.1 实现
内核
驱动程序模块 2.1.2 修改
内核
Kconfig文件 2.1.3 修改
内核
Makefile文件 2.1.4 编译
内核
驱动程序模块 2.1.5 验证
内核
驱动程序模块 2.2 开发C可执行程序验证Android硬件驱动程序 2.3 开发Android硬件抽象层模块 2.3.1 硬件抽象层模块编写规范 2.3.2 编写硬件抽象层模块接口 2.3.3 硬件抽象层模块的加载过程 2.3.4 处理硬件设备访问权限问题 2.4 开发Android硬件访问服务 2.4.1 定义硬件访问服务接口 2.4.2 实现硬件访问服务 2.4.3 实现硬件访问服务的JNI方法 2.4.4 启动硬件访问服务 2.5 开发Android应用程序来使用硬件访问服务 第3章 智能指针 3.1 轻量级指针 3.1.1 实现原理分析 3.1.2 应用实例分析 3.2 强指针和弱指针 3.2.1 强指针的实现原理分析 3.2.2 弱指针的实现原理分析 3.2.3 应用实例分析 第2篇 Android专用驱动系统 第4章 Logger日志系统 4.1 Logger日志格式 4.2 Logger日志驱动程序 4.2.1 基础数据结构 4.2.2 日志设备的初始化过程 4.2.3 日志设备文件的打开过程 4.2.4 日志记录的读取过程 4.2.5 日志记录的写入过程 4.3 运行时库层日志库 4.4 C/C++日志写入接口 4.5 Java日志写入接口 4.6 Logcat工具分析 4.6.1 相关数据结构 4.6.2 初始化过程 4.6.3 日志记录的读取过程 4.6.4 日志记录的输出过程 第5章 Binder
进程
间通信系统 5.1 Binder驱动程序 5.1.1 基础数据结构 5.1.2 Binder设备的初始化过程 5.1.3 Binder设备文件的打开过程 5.1.4 Binder设备文件的内存映射过程 5.1.5
内核
缓冲区管理 5.2 Binder
进程
间通信库 5.3 Binder
进程
间通信应用实例 5.4 Binder
对象
引用计数技术 5.4.1 Binder本地
对象
的生命周期 5.4.2 Binder实体
对象
的生命周期 5.4.3 Binder引用
对象
的生命周期 5.4.4 Binder代理
对象
的生命周期 5.5 Binder
对象
死亡通知机制 5.5.1 注册死亡接收通知 5.5.2 发送死亡接收通知 5.5.3 注销死亡接收通知 5.6
Service
Manager的启动过程 5.6.1 打开和映射Binder设备文件 5.6.2 注册为Binder上下文管理者 5.6.3 循环等待Client
进程
请求 5.7
Service
Manager代理
对象
的获取过程 5.8
Service
组件的启动过程 5.8.1 注册
Service
组件 5.8.2 启动Binder线程池 5.9
Service
代理
对象
的获取过程 5.10 Binder
进程
间通信机制的Java接口 5.10.1
Service
Manager的Java代理
对象
的获取过程 5.10.2 Java服务接口的定义和解析 5.10.3 Java服务的启动过程 5.10.4 Java服务代理
对象
的获取过程 5.10.5 Java服务的调用过程 第6章 Ashmem匿名
共享
内存系统 6.1 Ashmem驱动程序 6.1.1 基础数据结构 6.1.2 匿名
共享
内存设备的初始化过程 6.1.3 匿名
共享
内存设备文件的打开过程 6.1.4 匿名
共享
内存设备文件的内存映射过程 6.1.5 匿名
共享
内存块的锁定和解锁过程 6.1.6 匿名
共享
内存块的回收过程 6.2 运行时库cutils的匿名
共享
内存访问接口 6.3 匿名
共享
内存的C++访问接口 6.3.1 MemoryHeapBase 6.3.2 MemoryBase 6.3.3 应用实例 6.4 匿名
共享
内存的Java访问接口 6.4.1 MemoryFile 6.4.2 应用实例 6.5 匿名
共享
内存的
共享
原理 第3篇 Android应用程序框架 第7章 Activity组件的启动过程 7.1 Activity组件应用实例 7.2 根Activity组件的启动过程 7.3 子Activity组件在
进程
内的启动过程 7.4 子Activity组件在新
进程
中的启动过程 第8章
Service
组件的启动过程 8.1
Service
组件应用实例 8.2
Service
组件在新
进程
中的启动过程 8.3
Service
组件在
进程
内的绑定过程 第9章 Android系统广播机制 9.1 广播机制应用实例 9.2 广播接收者的注册过程 9.3 广播的发送过程 第10章 Content Provider组件的实现原理 10.1 Content Provider组件应用实例 10.1.1 ArticlesProvider 10.1.2 Article 10.2 Content Provider组件的启动过程 10.3 Content Provider组件的数据
共享
原理 10.3.1 数据
共享
模型 10.3.2 数据传输过程 10.4 Content Provider组件的数据更新通知机制 10.4.1 注册内容观察者 10.4.2 发送数据更新通知 第11章 Zygote和System
进程
的启动过程 11.1 Zygote
进程
的启动脚本 11.2 Zygote
进程
的启动过程 11.3 System
进程
的启动过程 第12章 Android应用程序
进程
的启动过程 12.1 应用程序
进程
的创建过程 12.2 Binder线程池的启动过程 12.3 消息循环的创建过程 第13章 Android应用程序的消息处理机制 13.1 创建线程消息队列 13.2 线程消息循环过程 13.3 线程消息发送过程 13.4 线程消息处理过程 第14章 Android应用程序的键盘消息处理机制 14.1 键盘消息处理模型 14.2 InputManager的启动过程 14.2.1 创建InputManager 14.2.2 启动InputManager 14.2.3 启动InputDispatcher 14.2.4 启动InputReader 14.3 InputChannel的注册过程 14.3.1 创建InputChannel 14.3.2 注册Server端InputChannel 14.3.3 注册系统当前激活的应用程序窗口 14.3.4 注册Client端InputChannel 14.4 键盘消息的分发过程 14.4.1 InputReader获得键盘事件 14.4.2 InputDispatcher分发键盘事件 14.4.3 系统当前激活的应用程序窗口获得键盘消息 14.4.4 InputDispatcher获得键盘事件处理完成通知 14.5 InputChannel的注销过程 14.5.1 销毁应用程序窗口 14.5.2 注销Client端InputChannel 14.5.3 注销Server端InputChannel 第15章 Android应用程序线程的消息循环模型 15.1 应用程序主线程消息循环模型 15.2 与界面无关的应用程序子线程消息循环模型 15.3 与界面相关的应用程序子线程消息循环模型 第16章 Android应用程序的安装和显示过程 16.1 应用程序的安装过程 16.2 应用程序的显示过程
Windows
进程
同步之事件
内核
对象
(Event)
在所有的
内核
对象
中,事件
内核
对象
比其他的简单的多,可以用事件
内核
对象
对不同
进程
进行同步。 事件
内核
对象
主要包括三个部分:使用计数,一个表示是自动还是手动重置事件的布尔值,一个表示是否有信号的布尔值。 使用计数:和其他
内核
对象
一样,用来标识使用该事件
对象
的不同线程个数。表示自动或手动重置事件的布尔值:当一个事件是自动重置事件,事件被触发后,只有一个等待的线程会变成可调度状态(根据系统的调度策
Linux
内核
进程
介绍
在Linux操作系统中,
内核
进程
是由操作系统
内核
创建和管理的特殊
进程
。这些
进程
与普通用户
进程
有所不同,他们负责操作系统的核心功能和管理任务。运行在
内核
态:Linux
内核
进程
在运行时处于
内核
态,可以直接访问硬件资源和
内核
的数据结构,可以执行特权指令。控制系统资源:Linux
内核
进程
负责管理和分配系统资源,例如内存管理、
进程
调度、文件系统管理等。与用户空间
进程
通信:Linux
内核
进程
可以与用户空间
进程
进行通信,接收和处理用户空间
进程
发送的请求和信号。
《Windows核心编程》之“
内核
对象
”
内核
对象
(Kernel Object)是Winodws操作系统中最核心的一个概念,本章主要介绍“
内核
对象
”整个抽象概念的共性,而不针对具体的某个
内核
对象
。 这一章介绍了“
内核
对象
”的公共属性:usage count(使用计数) 和 Security Descriptor (SD,安全描述符)、
进程
的
内核
对象
句柄、
内核
对象
的命名空间和跨
进程
共享
内核
对象
。 要理解本章...
(26)Linux
进程
通信之
共享
内存(
共享
储存空间)
共享
内存是System V版本的最后一个
进程
间通信方式。
共享
内存,顾名思义就是允许两个不相关的
进程
访问同一个逻辑内存,
共享
内存是两个正在运行的
进程
之间
共享
和传递数据的一种非常有效的方式。不同
进程
之间
共享
的内存通常为同一段物理内存。
进程
可以将同一段物理内存连接到他们自己的地址空间中,所有的
进程
都可以访问
共享
内存中的地址。如果某个
进程
向
共享
内存写入数据,所做的改动将立即影响到可以访问同一段
共享
内存的任何其他
进程
。
Windows Server
6,872
社区成员
177,937
社区内容
发帖
与我相关
我的任务
Windows Server
Windows 2016/2012/2008/2003/2000/NT
复制链接
扫一扫
分享
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章