郁金香外挂技术-郁金香灬老师

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

飞郁网络培训郁金香终身VIP管理员QQ150330575淘宝担保交易QQ交流群(外挂,驱动)
查看: 304|回复: 0

002-给驱动创建设备对象

[复制链接]
发表于 2018-11-29 20:31:26 | 显示全部楼层 |阅读模式
//郁金香灬老师 QQ 150330575


//郁金香灬老师
//QQ 150330575
//开发环境:VS2017
//时间:2019-09-29


//环境设置:
//属性页->C / C++->警告等级 : 等级3 / W3
//属性页->C / C++->将警告视为错误 : 否 / WX -
//属性页->Inf2Cat->Run Inf2Cat : 否
//属性页->Driver Settings->Target Os Version : 设置版本 Windows 7 Windows 10任选
//属性页->Driver Settings->Target PlatForm : Desktop
//属性页->StampInf->Endable ArchiteCture : 否

//KdPrint类似于 控制台的printf
//DriverEntry类似于 C / C++里的main
#include<ntifs.h>
#pragma code_seg("PAGE")
//创建驱动设备对象
NTSTATUS CreateDevice(PDRIVER_OBJECT driver)
{
        NTSTATUS status;
        UNICODE_STRING MyDriver;
        PDEVICE_OBJECT device;
        RtlInitUnicodeString(&MyDriver, L"\\DEVICE\\MyDriver");
         
        status = IoCreateDevice(driver, sizeof(driver->DriverExtension), &MyDriver, FILE_DEVICE_UNKNOWN, FILE_DEVICE_SECURE_OPEN, FALSE, &device);


        if (status == STATUS_SUCCESS)
        {
                KdPrint(("yjx:驱动设备对象创建成功,OK \n"));
        }
        else
        {

                 KdPrint(("yjx:驱动设备对象创建失败,删除设备\n"));
                IoDeleteDevice(device);
        }
        return status;
}



void UnLoad(PDRIVER_OBJECT driver)
{
        IoDeleteDevice(driver->DeviceObject); //删除设备对象,如果此处不删除 卸载不干净 再次用IoCreateDevice创建同名驱动 会蓝屏
        KdPrint(("yjx:驱动卸载成功\n"));
}

#pragma code_seg("INIT")
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING szReg)
{
        KdPrint(("yjx:进入驱动入口函数 %wZ\n", szReg)); //%wZ用于格式化  UNICODE_STRING字符串
        NTSTATUS st = CreateDevice(driver);//为driver创建设备对象
        driver->DriverUnload = UnLoad;// 卸载例程
        return st;
}






郁金香外挂教程,学习中...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|郁金香外挂技术-郁金香灬老师 ( 苏ICP备10059359号 )

GMT+8, 2018-12-19 09:51 , Processed in 0.043154 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表