社区
进程/线程/DLL
帖子详情
PASSIVE_LEVEL == KeGetCurrentIrql() / UserMode == ExGetPreviousMode() 区别?
xingworld
2010-07-20 04:47:40
if ( PASSIVE_LEVEL == KeGetCurrentIrql() ) 与
if ( UserMode == ExGetPreviousMode() )
有区别吗?
谢谢!
...全文
293
4
打赏
收藏
PASSIVE_LEVEL == KeGetCurrentIrql() / UserMode == ExGetPreviousMode() 区别?
if ( PASSIVE_LEVEL == KeGetCurrentIrql() ) 与 if ( UserMode == ExGetPreviousMode() ) 有区别吗? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xingworld
2010-07-20
打赏
举报
回复
哦,很感谢楼上的回复。如果能有更多的资料学习就好了。
搬了20多年的砖
2010-07-20
打赏
举报
回复
简单的说:PASSIVE_LEVEL是相对安全级(不是在调度或中断调用级),很多API只能在这一级级上用.
xingworld
2010-07-20
打赏
举报
回复
[Quote=引用 1 楼 blukercn 的回复:]
当然有区别,只是都可以确认为UserMode,
PASSIVE_LEVEL更加准确,一般应该确保PASSIVE_LEVEL == KeGetCurrentIrql()
[/Quote]
请问确认 PASSIVE_LEVEL == KeGetCurrentIrql() 对于程序有什么意义呢?
谢谢!
搬了20多年的砖
2010-07-20
打赏
举报
回复
当然有区别,只是都可以确认为UserMode,
PASSIVE_LEVEL更加准确,一般应该确保PASSIVE_LEVEL == KeGetCurrentIrql()
内核同步对象(下)
ASSERT(
Ke
Get
Current
Irql
() ==
PA
SSI
VE
_
LE
VE
L
);
Ke
InitializeMut
ex
(mut
ex
,
le
ve
l
); mut
ex
是KMUT
EX
对象的地址,
le
ve
l
参数最初是用于辅助避免多互斥对象带来的死锁。但现在,内核忽略
le
ve
l
参数。...
内核同步对象(下)
ASSERT(
Ke
Get
Current
Irql
() ==
PA
SSI
VE
_
LE
VE
L
);
Ke
InitializeMut
ex
(mut
ex
,
le
ve
l
); mut
ex
是KMUT
EX
对象的地址,
le
ve
l
参数最初是用于辅助避免多互斥对象带来的死锁。但现在,内核忽略
le
ve
l
参数...
windows内核情景分析---进程线程
#define MM_HIGHEST_
USER
_ADDRESS Mm
User
ProbAddress-1 //实际的用户空间中最高可访问地址 #define MM_LOWEST_
USER
_ADDRESS 64kb //实际的用户空间中最低可访问地址 #define KI_
USER
_SHARED_DATA 0...
ReactOS分析windows APC机制
User
Mode
, NormalCont
ex
t); if (!
Ke
InsertQueueApc(Apc, SystemArgument1, SystemArgument2, IO_NO_INCREMENT)) {
Ex
FreePool(Apc); Status = STATUS_UNSUCCESSFUL; } Quit: ObDereferenceObject(Thread)...
内核同步对象(上)
User
Mode
。 Alertable 是一个布尔类型的值。它不同于WaitReason,这个参数以另一种方式影响系统行为,它决定等待是否可以提前终止以提交一个APC。如果等待发生在用户模式中,那么内存管理器就可以把线程的内核...
进程/线程/DLL
15,473
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章