刘收获

导航

2017年8月20日 #

spin lock自旋锁 双链表操作(多线程安全)(Ring0)

摘要: 通过spin lock自旋锁 ,为每个链表都定义并初始化一个锁,在需要向该链表插入或移除节点时不使用前面介绍的普通函数,而是使用如下方法: ExInterlockedInsertHeadList(&linkListHead, &pData->ListEntry, &spin_lock); //ExI 阅读全文

posted @ 2017-08-20 21:48 沉疴 阅读(976) 评论(0) 推荐(0) 编辑

Interlocked单向链式栈

摘要: 线程同步一大部分与原子访问(atomic access)有关, 所谓原子访问, 指的是一个线程在访问某个资源的同时能够保证没有其他线程会在同一时刻访问同一资源. Interlocked单向链式栈的操作函数: InitializeSListHead,创建一个空栈 InterlockedPushEntr 阅读全文

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

自旋锁(Spin Lock)

摘要: 转载请您注明出处: http://www.cnblogs.com/lsh123/p/7400625.html 0x01 自旋锁简介 自旋锁也是一种同步机制,它能保证某个资源只能被一个线程所拥有,这种保护被形象地称做“上锁”。它可以用于驱动程序中的同步处理。初始化自旋锁时,处理解锁状态,这时它可以被程 阅读全文

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

可等待定时器(获取系统时间)

摘要: 可等待定时器这种内核对象,它们会在某个指定的时间触发,或每隔一段时间触发一次。它们通常用来在某个时间执行一些操作。 0x01 创建一个可等待定时器 CreateWaitableTimer (在创建的时候,可等待的计时器对象总是处于未触发状态) HANDLE WINAPI CreateWaitable 阅读全文

posted @ 2017-08-20 14:57 沉疴 阅读(609) 评论(0) 推荐(0) 编辑

APC注入(Ring3)

摘要: 首先简单介绍一下APC队列和Alertable. 看看MSDN上的一段介绍(https://msdn.microsoft.com/en-us/library/ms810047.aspx): The system delivers most user-mode APCs when a thread u 阅读全文

posted @ 2017-08-20 14:03 沉疴 阅读(363) 评论(0) 推荐(0) 编辑

IOCP IO完成端口

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

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