阅读:1483回复:1
一个关于标志位拷贝的问题
1. 为什么拷贝标志位要一个一个判断例如:
// 拷贝重要标志位。­ if(oldobj->Flags & DO_BUFFERED_IO)­ (*fltobj)->Flags |= DO_BUFFERED_IO;­ if(oldobj->Flags & DO_DIRECT_IO)­ (*fltobj)->Flags |= DO_DIRECT_IO;­ if(oldobj->Flags & DO_BUFFERED_IO)­ (*fltobj)->Flags |= DO_BUFFERED_IO;­ 直接(*fltobj)->Flags =oldobj->Flags 不行吗? 2. (*fltobj)->Flags |= DO_POWER_PAGABLE; 书上看到这句话,但不知道是什么意思.... 大哥们帮帮忙啊~ |
|
沙发#
发布于:2009-12-01 11:13
好好看看文档吧,过滤设备在绑定了设备后必须设置和被绑定设备相同的标志位,所以要先判断被绑定的设备的标志位直接(*fltobj)->Flags =oldobj->Flags 的话就少了判断了啊。
(*fltobj)->Flags |= DO_POWER_PAGABLE的意思是(*fltobj)->Flags = (*fltobj)->Flags | DO_POWER_PAGABLE (按位或操作然后赋值给自身) |
|