- 博客(9)
- 收藏
- 关注
原创 WDK驱动开发之路——进程回调
#include <wdm.h>PVOID _HANDLE = NULL;typedef struct _LDR_DATA_TABLE_ENTRY { // Start from Windows XP LIST_ENTRY InLoadOrderLinks; LIST_ENTRY InMemoryOrderLinks; LIST_ENTRY InInitializationOrderLinks; PVOID DllBase; PVOID .
2021-11-22 17:05:04 587
原创 WDK驱动开发之路——注册表回调
//当有注册表行为时进行回调 进行注册表保护#include <wdm.h>#include <ntddk.h>#include <ntifs.h>LARGE_INTEGER cookies = {0};//参数1决定操作类型 参数2决定操作数据NTSTATUS RegisterCallBack(PVOID context,PVOID arg1,PVOID arg2){ NTSTATUS status = STATUS_SUCCESS; DbgP.
2021-11-22 17:04:09 397
原创 WDK驱动开发之路——对注册表进行操作
#include <wdm.h>//卸载派遣函数void DriverUnload(PDRIVER_OBJECT pdriver){ NTSTATUS status = STATUS_SUCCESS; DbgPrint("Driver Unload!");}//驱动加载入口NTSTATUS DriverEntry(PDRIVER_OBJECT pdriver, PUNICODE_STRING path){ DbgPrint("Hello Driver!!"); NTS.
2021-11-22 17:03:11 262
原创 WDK驱动开发之路——字符串操作
#include <ntddk.h>#include <wdm.h>#define DEVICE_NAME L"\\Device\\MyDevice"//卸载派遣函数void DriverUnload(PDRIVER_OBJECT pdriver){ NTSTATUS status = STATUS_SUCCESS; DbgPrint("Driver Unload!"); return status;}//驱动加载入口NTSTATUS DriverEntry(.
2021-11-22 17:02:08 350
原创 WDK驱动开发之路——更为复杂的交互
0环#include <wdm.h>void DriverUload(PDRIVER_OBJECT pdriver){ }NTSTATUS MyRead(PDEVICE_OBJECT pobject, PIRP irp){ NTSTATUS status = STATUS_SUCCESS; //实现简单操作 啥都不干 PIO_STACK_LOCATION psl = IoGetCurrentIrpStackLocation(irp); ULONG readSize
2021-11-20 23:03:07 193
原创 WDK驱动开发之路——创建一个设备进行简单交互
0环代码#include <ntifs.h>#define DEVICE_NAME L"\\Device\\MyDevice"#define SYMBOL_NAME L"\\??\\MyDevice"void DriverUnload(PDRIVER_OBJECT pobject){ DbgPrint("Driver Unload Successful!!"); if (pobject->DeviceObject) { IoDeleteDevice(pobj
2021-11-20 22:03:13 413
原创 WDK驱动开发之路——HelloR0
#include <ntddk.h>//卸载派遣函数void DriverUnload(PDRIVER_OBJECT pdriver){ NTSTATUS status = STATUS_SUCCESS; DbgPrint("Driver Unload!"); return status;}//驱动加载入口NTSTATUS DriverEntry(PDRIVER_OBJECT pdriver, PUNICODE_STRING path){ DbgPrint("Hello .
2021-11-20 22:00:26 177
原创 C++进阶之路之allocater类
标准库allocater类定义在memory头文件中,类似于vector,allocater是一个模板。为了定义一个alocater对象,我们必须指定对象的类型尤其是construct方法,args参数是构造函数的参数,相当于explict构造函数 和带有emplace的方法allocater<type> alloc; //可以分配type类型的allocater对象auto const p = alloc.allocate(n); //分配n个未初始化的对象allocater&
2021-10-26 20:35:23 600
原创 C++进阶之右值引用
为了支持移动操作,C++新标准引入了新的引用类型——右值引用,通过&&而不是&来获得右值引用,常规引用称之为左值引用,右值引用有完全相反的特性,只能绑定到要求转换的表达式,字面常量或是返回右值的表达式。C++Primer在471页如上说明,但对于我们来说,我们只是想知道两者分别及应用,但无奈书中的知识点太绕嘴,我们现在来详解两者的区别左值引用 我们在敲代码时是这样的int i = 666;int &j = i; //正确 j引用i;//我们要分清与指针的区
2021-10-26 17:50:19 174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人