滴水内核
Lovecppp
这个作者很懒,什么都没留下…
展开
-
线程切换总结
1、SwapContext 有几个参数,分别是什么?KiSwapContext 做的工作是保存旧线程的寄存器到自己的栈顶,更新 KPCR 里的 CurrentThread 属性,然后调用 SwapContext 函数切换线程,SwapContext 返回后就已经完成线程切换的工作了。ebx: _KPCResi: 新线程 _ETHREADedi: 旧线程 _ETHREAD2、SwapContext 在哪里实现了线程切换3、线程切换的时候,会切换CR3吗?切换CR3的条件是什么?会切换,如果是原创 2022-04-08 13:24:20 · 353 阅读 · 0 评论 -
保护模式TLB
10-10-12分页练习1:体验TLB的存在代码如下:// TlbCase.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <Windows.h>//定义全局变量 unsigned int g_value=0;//定义调用门函数_de原创 2022-03-29 17:05:15 · 133 阅读 · 0 评论 -
滴水内核驱动HelloWord
代码如下:#include <ntifs.h>//stdio.h//int DriverEntry(){ return 0;}#include<ntifs.h> //ntddk.h//卸载驱动时会被调用void DriverUnload(PDRIVER_OBJECT DriverObject){ KdPrint(("进入卸载例程DriverObject=%p 行号=%d ", DriverObject, __LINE__));}//加载驱动时 会被调用原创 2022-03-12 16:03:28 · 394 阅读 · 0 评论