首页 > TAG信息列表 > ntStatus

Windows驱动开发学习

链表的使用 main.h #pragma once #include<ntddk.h> typedef struct _MYDATA { LIST_ENTRY ListEntry; DWORD64 Id; UNICODE_STRING Name; }MYDATA,*PMYDATA; extern "C" { VOID DrvUnload(IN PDRIVER_OBJECT pDriver); NTSTATUS DriverEntry(IN PDRIVER_OBJ

系统调用篇——总结与提升

写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图。由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信

wdm

WDM是英文Windows Driver Model(WDM)的缩写 #include "usbdlib.h" DriverEntry NTSTATUS 返回状态   AddDevice函数是WDM驱动特有的,NT驱动没有,这也是主要的区别之一   https://blog.csdn.net/weixin_30852451/article/details/99182762  派遣函数   

驱动测试开发源码-4

#include <wdm.h> NTSTATUS DriverUnload(PDRIVER_OBJECT driver) { UNREFERENCED_PARAMETER(driver); DbgPrint("Unload driver"); return STATUS_SUCCESS; } NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING regpath) { UNREFEREN

WinAPI ZwQuerySystemInformation的简要分析

NTSTATUS WINAPI ZwQuerySystemInformation(                        _In_ SYSTEM_INFORMATION_CLASS SystemInformationClass,  //枚举类型,用户输入值选择要查询的信息 _Inout_ PVOID SystemInformation,  //缓冲区,用来接

驱动程序与应用程序交互事件对象

驱动程序代码 #pragma once #define IO_CONTROL_TRANSMIT_EVENT CTL_CODE(FILE_DEVICE_UNKNOWN,0x8080,METHOD_BUFFERED,FILE_ANY_ACCESS) typedef struct _DEVICE_EXTENSION { PDEVICE_OBJECT pDevObj; UNICODE_STRING ustrDeviceName; UNICODE_STRING ustrSymbolLi

Windows驱动开发-r3和r0通信

用户部分代码: int main() { HANDLE hDevice = CreateFile(L"\\\\.\\MyTest", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hDevice==INVALID_HANDLE_VALUE) { printf("Failed to obtain

驱动入门hello代码框架

#include <ntddk.h> NTSTATUS Unload(PDRIVER_OBJECT driver) { DbgPrint("unload driver"); return STATUS_SUCCESS; } NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING RegPath) { DbgPrint("Driver Entry"); driver->Driv

64位内核开发第十二讲,进程监视,ring3跟ring0事件同步.

一丶同步与互斥详解,以及实现一个进程监视软件. 1.用于线程同步的 KEVENT 事件很简单分别分为 事件状态. 以及事件类别. 事件状态: 有信号 Signaled 无信号 Non-signaled 事件类别 自动恢复 Synchronization 自动设置 不自动恢复. Notification 手动设置 事件的创建函数 ** IoCreat

64位内核开发第8讲,文件操作.以及删除文件.

目录 文件操作,以及强删文件. 一丶文件操作 1.文件操作的几种方式 1.2 文件的表示 二丶文件操作的常见内核API 三丶内核中三种定义结构体的方式 四丶驱动创建文件的完整代码示例 4.1.4内核中读文件 4.1.4内核中删除文件的两种方式 文件操作,以及强删文件. 一丶文件操作 1.

64位内核开发第九讲,注册表编程.

目录 一 注册表编程 二 注册表简介 2.1 ring3注册表 2.2 重启删除原理 三丶注册表API操作 3.1 Reg操作API 四丶注册表操作例子 4.1 ZwCreateKey创建key 2.删除Key 3.查询遍历Key 4.创建并且设置Value的值. 一 注册表编程 二 注册表简介 2.1 ring3注册表 在内核中我们的