刘收获

导航

上一页 1 ··· 6 7 8 9 10 11 12 13 14 下一页

2017年8月20日 #

IOCP IO完成端口

摘要: 一. IO完成端口概念 IO完成端口的出现是为了解决并发模型中可运行线程上下文切换开销过大而出现的。 在《Windows核心编程》的描述中,IO完成端口是Wnidows系统提供的最复杂的内核对象,是一种解决并发IO请求的最佳模型,是用来实现高容量网路服务器的最佳方法。既然是一个对象,那么就直接分析一 阅读全文

posted @ 2017-08-20 00:31 沉疴 阅读(869) 评论(0) 推荐(0) 编辑

2017年8月18日 #

异步设备IO OVERLAPPED结构(设备内核对象 事件内核对象 可提醒IO)

摘要: 同步IO是指:线程在发起IO请求后会被挂起,IO完成后继续执行。 异步IO是指:线程发起IO请求后并不会挂起而是继续执行。IO完毕后会得到设备驱动程序的通知。 一.异步准备与OVERLAPPED结构 (1).为了以异步的方式来访问设备,必须先调用CreateFile,并在dwFlagsAndAttr 阅读全文

posted @ 2017-08-18 00:11 沉疴 阅读(955) 评论(0) 推荐(0) 编辑

2017年8月16日 #

读写锁 SRWLOCK

摘要: 读写锁在对资源进行保护的同时,还能区分想要读取资源值的线程(读取者线程)和想要更新资源的线程(写入者线程)。 对于读取者线程,读写锁会允许他们并发的执行。当有写入者线程在占有资源时,读写锁会让其它写入者线程和读取者线程等待。 用读写锁来解决读者写者问题会使代码非常清晰和简洁。 阅读全文

posted @ 2017-08-16 21:39 沉疴 阅读(433) 评论(0) 推荐(0) 编辑

线程优先级

摘要: 通过SetThreadPriority可以设置线程优先级别: WINBASEAPIBOOLWINAPISetThreadPriority( _In_ HANDLE hThread, //线程句柄 _In_ int nPriority //设置的权限级别 ); MSDN: Begin backgrou 阅读全文

posted @ 2017-08-16 19:43 沉疴 阅读(292) 评论(0) 推荐(0) 编辑

Lookaside

摘要: 频繁申请和回收内存,会导致在内存上产生大量的内存碎片,从而导致最终无法申请内存。DDK提供了Lookaside结构来解决这个问题。可以将Lookaside结构想象成一个内存容器。在初始的时候,它先向Windows申请了比较大的内存。以后每次申请内存的时候,不是直接向Windows申请内存,而是向Lo 阅读全文

posted @ 2017-08-16 13:34 沉疴 阅读(410) 评论(0) 推荐(1) 编辑

驱动链表(LIST_ENTRY)

摘要: DDK提供了两种链表的数据结构,双向链表和单向链表,其定义如下: typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; struct _LIST_ENTRY *Blink; } LIST_ENTRY,*PLIST_ENTRY; typedef 阅读全文

posted @ 2017-08-16 12:49 沉疴 阅读(1014) 评论(0) 推荐(0) 编辑

UNICODE_STRING(用户模式 内核模式)

摘要: UNICODE_STRING结构: typedef struct _UNICODE_STRING { USHORT Length; //字节长度,不包括终止符“NULL” USHORT MaximumLength; //字符串所能占的最大字节数字符串的指针 PWCH Buffer; //字符串的地址 阅读全文

posted @ 2017-08-16 10:21 沉疴 阅读(2126) 评论(0) 推荐(0) 编辑

2017年8月15日 #

信号灯(用户模式 内核模式)

摘要: 一.用户模式的信号灯 信号灯内部有个计数器,可以理解信号灯内部有N个灯泡,如果有一个灯泡亮着,就代表信号灯处于激发状态,如果全部熄灭,就代表信号灯处于未激发状态。 创建信号灯: HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttr 阅读全文

posted @ 2017-08-15 19:26 沉疴 阅读(230) 评论(0) 推荐(0) 编辑

互斥体(用户模式 内核模式 快速互斥体)

摘要: 一.用户模式互斥体 创建互斥体: HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes, // pointer to security attributes BOOL bInitialOwner, //始化时是否被占有 LPCTSTR 阅读全文

posted @ 2017-08-15 13:45 沉疴 阅读(665) 评论(0) 推荐(0) 编辑

2017年8月14日 #

内核事件KEVENT(同步)

摘要: 转载请您注明出处:http://www.cnblogs.com/lsh123/p/7358702.html 一.驱动程序与驱动程序的事件交互 IoCreateNotificationEvent ———> IoCreateNotificationEvent 在内核驱动中可以通过给某个内核对象创建一个命 阅读全文

posted @ 2017-08-14 16:49 沉疴 阅读(4445) 评论(0) 推荐(0) 编辑

上一页 1 ··· 6 7 8 9 10 11 12 13 14 下一页