自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

转载 python中的静态成员方法 和 类成员方法

Python的静态方法和类成员方法Python的静态方法和类成员方法都可以被类或实例访问,两者概念不容易理清,但还是有区别的:1)静态方法无需传入self参数,类成员方法需传入代表本类的cls参数;2)从第1条,静态方法是无法访问实例变量的,而类成员方法也同样无法访问实例变量,但可以访问类变量;3)静态方法有点像函数工具库的作用,而类成员方法则更接近

2013-03-24 23:09:38 5185

原创 IoEnumerateDeviceObjectList 枚举驱动的所有设备 文件过滤驱动 windows内核开发

IoEnumerateDeviceObjectList函数,用来枚举某驱动下的所有设备,主要是遍历deviceobject->nextobject字段,该函数第一次可以将DeviceObjectListSize传递0,来获取实际的设备个数,第二次调用,再获取整个设备列表,实现如下:在文件过滤驱动中,常用该函数来枚举某文件系统下的所有设备,然后根据名字来区别是卷设备还是控制设备,空名字即

2011-12-10 17:22:58 3215

原创 文件过滤驱动 文件系统激活通知 IoRegisterFsRegistrationChange函数实现

IoRegisterFsRegistrationChange 注册一个文件系统变动回调函数,用来被通知文件系统的激活和注销,激活是指第一次加载文件系统,当一个文件系统已经加载后,当加载一个同种文件系统的卷时,该文件系统就和激活没关系。话说该函数调用后,激活的文件系统会重新激活一遍,在2k SP4之后的系统都会这样做。现在考虑下,这种机制是怎么实现的,猜测是在注册的时候,注册完成后,系统将各

2011-12-08 22:21:42 2491

原创 DO_DEVICE_INITIALIZING 创建设备 iocreatedevice windows内核开发

deviceobject->flag &= ~DO_DEVICE_INITIALIZING;当设置DO_DEVICE_INITIALIZING标志时,I/O管理器将拒绝所有打开该设备句柄的请求以及向该设备对象上附着其他设备对象。故驱动程序完成初始化后,须清除该标志。在IoCreateDevice创建设备完成后,默认devieobject->flags==0xc0,是包含DO_D

2011-12-04 00:19:49 2182

原创 文件过滤驱动 VPB 卷参数块 生命周期 IoGetRelatedDeviceObject

文件过滤驱动中,VPB(卷参数块),它将文件系统卷设备和磁盘设备卷设备联系起来,结构如下:typedef struct _VPB {    CSHORT Type;    CSHORT Size;    USHORT Flags;    USHORT VolumeLabelLength; // in bytes    struct _DEVICE_OBJECT *Devic

2011-11-30 16:03:10 10590

原创 根据符号名 得到设备名

根据符号名,得到设备的名称,下面举例,根据c盘这个符号名,得到c盘的设备名称。

2011-11-27 22:05:18 798

原创 static 静态成员变量 静态成员函数 类中使用

<br />关于在类中使用static的一些情况:<br /> <br />静态成员函数和静态成员变量的调用格式,尽量采用类名::成员的格式,不要以对象来调用<br /><br />1. static func静态成员函数<br />  1) 其地址可以直接由函数指针来存储,普通函数其地址只能是由类中的函数指针来存储,如:<br />    class base{ <br />         static int func1(); <br />         int func2(); <br />   

2011-02-18 12:59:00 2635

原创 DebugView for Vista Windows 7 打印显示问题

    使用DebugView打印内核调试信息是开发驱动的非常重要的手段,但DebugView在VISTA/WINDOWS 7下却无法获取内核的调试日志,修改方法是:    HKLM/SYSTEM/CurrentControlSet/Control/Session Manager,打开或者创建子项Debug Print Filter,然后新建一个DWORD值DEFAULT,将其设置

2010-04-29 11:49:00 5014 5

转载 std::set用法

std::set成员函数及简要使用方法函数 声明 说明insert pair insert(const value_type& x) iterator insert(iterator position, const value_type& x) 1、向集合中添加一个元素 2、在迭代器指向的位置上放置指定的元素count size_type count(const key_typ

2010-04-20 08:12:00 68592

原创 errorC2471:cannot update program database vc90.pdb

解决办法: C/C++ | General | Debug Information format | C7 Compatible (/Z7)C/C++ | Code Generation | Enable String Pooling | Yes (/GF)Linker |Debuging |General Debug Info | Yes (/DEBUG)

2010-01-20 15:50:00 2588 3

原创 Win32多线程开发(Critical,Event,Mutex,Semphore)

  一.   Mutex 相关的API:HANDLE CreateMutex(PSECURITY_ATTRIBUTES psa, BOOL fInitialOwner, PCTSTR pszName);HANDLE OpenMutex(DWORD fdwAccess, BOOL bInheritHandle, PCTSTR pszName);HANDLE

2009-10-11 16:35:00 2301

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除