会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
AGB
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
8
···
13
下一页
2020年2月25日
Windows驱动开发-IRP的完成例程
摘要: 《Windows驱动开发技术详解 》331页, 在将IRP发送给底层驱动或其他驱动之前,可以对IRP设置一个完成例程,一旦底层驱动将IRP完成后,IRP完成例程立刻被处罚,通过设置完成例程可以方便地使程序员了解其他驱动对IRP进行的处理, 不管是调用自己的底层驱动或是调用其他驱动,都是使用内核函数I
阅读全文
posted @ 2020-02-25 18:38 AGB
阅读(621)
评论(0)
推荐(0)
2020年2月24日
Windows驱动开发-手动创建IRP
摘要: 手动创建IRP有以下几个步骤: 1,先得到设备的指针,一种方法是用IoGetDeviceObjectPointer内核函数得到设备对象指针,另外一种方法是用zwCreateFile内核函数先得到设备句柄,然后调用ObReferenceObjectByHandle内核方法通过设备句柄得到设备对象指针;
阅读全文
posted @ 2020-02-24 19:31 AGB
阅读(342)
评论(0)
推荐(0)
Windows驱动开发-IRP超时处理
摘要: IRP被送到底层驱动程序以后,由于硬件设备的问题,IRP不能得到及时处理,甚至有可能永远不会被处理,这时候需要对IRP超时情况进行处理,一旦在规定时间内,IRP没有被处理,操作系统就会进入到IRP的处理函数种
阅读全文
posted @ 2020-02-24 16:03 AGB
阅读(319)
评论(0)
推荐(0)
Windows驱动开发-DPC定时器
摘要: DCP是一种使用更加灵活的定时器,可以对任意间隔时间进行定时。DPC定时器的内部使用了一个定时器对象KTIMER,当你设定了定时器之后,从设定开始起经过这个时间之后操作系统会将一个DPC定时器的例程插入到DPC的队列,操作系统读取DPC队列的时候定时器例程就能够被执行。这里的DPC定时器例程就相当于
阅读全文
posted @ 2020-02-24 12:36 AGB
阅读(2138)
评论(1)
推荐(0)
2020年2月23日
驱动程序与应用程序交互事件对象
摘要: 驱动程序代码 #pragma once #define IO_CONTROL_TRANSMIT_EVENT CTL_CODE(FILE_DEVICE_UNKNOWN,0x8080,METHOD_BUFFERED,FILE_ANY_ACCESS) typedef struct _DEVICE_EXTE
阅读全文
posted @ 2020-02-23 18:49 AGB
阅读(433)
评论(0)
推荐(0)
线程同步
摘要: 互斥+有序 线程同步是线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应该等待,知道消息到达时才被唤醒
阅读全文
posted @ 2020-02-23 17:08 AGB
阅读(112)
评论(0)
推荐(0)
线程安全-事件
摘要: 相关函数 1,CreateEvent HANDLE WINAPI CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, //表示安全控制,一般直接传入NULL,表示不能被子进程继承 BOOL bManualReset, //参数确定事件是手动置位
阅读全文
posted @ 2020-02-23 16:47 AGB
阅读(175)
评论(0)
推荐(0)
线程安全-互斥体
摘要: 内核版的令牌 相关函数 HANDLE CreateMutexA( LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner,//FALSE的时候,互斥体创建出来就可以用 LPCSTR lpName ); 示例代码,下面是两个程序,代表两个
阅读全文
posted @ 2020-02-23 16:09 AGB
阅读(232)
评论(0)
推荐(0)
线程安全-临界区
摘要: 多个线程有对同一个全局变量进行写的操作时,会出现线程安全问题。 1,临界区 / 临界资源 临界资源时一次只允许一个线程使用的资源。 访问临界资源的那段代码称为临界区。 临界区实现之线程锁 如图 1,创建全局变量,一个全局令牌 CRITICAL_SECTION cs;//相当于一个令牌,让线程去拿,谁
阅读全文
posted @ 2020-02-23 15:27 AGB
阅读(274)
评论(0)
推荐(0)
线程context
摘要: 线程切换的时候,要保存当前运行状态,以便后续切换回来 CONTEXT结构体保存的是一堆寄存器 两个函数 //You cannot get a valid context for a running thread. Use the SuspendThread function to suspend t
阅读全文
posted @ 2020-02-23 14:49 AGB
阅读(426)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
8
···
13
下一页
公告