内核
文章平均质量分 79
crlyn
这个作者很懒,什么都没留下…
展开
-
LIST_ENTRY链表
链表的使用 链表是驱动开发中经常遇到的一个数据结构,主要是双向循环链表;要使用链表,需要用到一个LIST_ENTRY的结构,其定义如下: typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; // 指向下一个节点 struct _LIST_ENTRY *Blink; // 指向前一个节点 } L转载 2015-10-25 22:17:19 · 312 阅读 · 0 评论 -
同步互斥
互斥(A和B只能一个访问) KSPIN_LOCK ERESOURCE FAST_MUTEX 同步(A告诉B发生了什么事) KEVENT KSEMAPHORE KMUTEX KeWaitForSingleObject KEVENT KMUTEX/KMUTANT KPROCESS KQUEUE KSEMAPHORE KTHREAD KTIMER(都带dispatcher原创 2015-12-15 16:34:01 · 745 阅读 · 0 评论 -
内核数据结构
程序计算中的数据如何存放与管理? LIST_ENTRY HASH表 TREE树 LookAside结构 1.LIST_ENTRY typedef _struct _MYDATA_LIST { LIST_ENTRY Entry; WCHAR NameBuffer[MAX_PATH]; } MYDATA_LIST_ENTRY原创 2015-12-15 16:43:41 · 370 阅读 · 0 评论 -
多线程
R3多线程 方法1: ULONG WINAPI ThreadProc(void* arg) { return 1; } VOID StartThread() { HANDLE hThread = NULL; hThread = CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL); WaitForS原创 2015-12-13 23:36:34 · 224 阅读 · 0 评论 -
遍历进程句柄并干掉互斥体
互斥体例子 int main(int argc, char* argv[]) { HANDLE hMtx = CreateMutex(NULL,false,"process"); //创建一个有名对象,可以在其他进程中访问 if(GetLastError() == ERROR_ALREADY_EXISTS) //除了创建该对象的进程能进到else分支,其他进程转载 2016-07-23 17:44:38 · 5880 阅读 · 4 评论