windows驱动相关问题(顶也给分)

lzjdlsl 2010-02-09 07:34:50
看驱动那版人少的可怜,还是这里比较热闹。
我最近半抄了一个nt驱动。头文件
#define FILE_DEVICE_ASUPIO 0x00008040
#define ASUPIO_IOCTL_INDEX 0x840
//define our own private ioctl
#define IOCTL_ASUPIO_MAPPHYSTOLIN CTL_CODE(FILE_DEVICE_ASUPIO, \
ASUPIO_IOCTL_INDEX, \
METHOD_BUFFERED, \
FILE_ANY_ACCESS)
其中驱动中符号链接名和设备名都为RtlInitUnicodeString(&DeviceNameUnicodeString,L"\\Device\\ASUpBiosIo");和RtlInitUnicodeString(&DeviceLinkUnicodeString,L"\\??\\ASUpBiosIo");我用ddk编译成功生成名字为AsUpIO;
在应用层引用了他的头文件,然后创建服务启动服务代码如下 hService = CreateService(hSCManager,
"AsUpIO",
"AsUpIO",
SERVICE_ALL_ACCESS,
SERVICE_KERNEL_DRIVER,
(IsDemandLoaded == TRUE) ? SERVICE_DEMAND_START : SERVICE_SYSTEM_START,
SERVICE_ERROR_NORMAL,
pszWinIoDriverPath,
NULL,
NULL,
NULL,
NULL,
NULL);
bResult = StartService(hService, 0, NULL) || GetLastError() == ERROR_SERVICE_ALREADY_RUNNING;
的时候返回getlasterror为2很是奇怪。我用mointor加载说service database entry 什么的不对。希望大家给我说说创建驱动创建服务windows做了些什么。比如service database entry我在哪里可以看。在服务管理器中看不到。在注册表中的位置我知道。要原理!!!
...全文
525 67 打赏 收藏 转发到动态 举报
写回复
用AI写文章
67 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzjdlsl 2010-02-10
  • 打赏
  • 举报
回复
链接被公司屏蔽了打不开。这个和用哪个工具没有关系把。应该是我加载了一个驱动。然后这个驱动的某个标示信息在系统中存在了。至于那个信息是什么。在哪里。如何删除他,这个不知道,
Red_Poppy 2010-02-10
  • 打赏
  • 举报
回复
咱新来的 不熟悉啊 没看到驱动版
引用 41 楼 bilaopao 的回复:
我是来问你问题的。

驱动板块在哪?
MoXiaoRab 2010-02-10
  • 打赏
  • 举报
回复
比较下你以前能加载成功,现在却不能了,环境的不同
MoXiaoRab 2010-02-10
  • 打赏
  • 举报
回复
你换用 这个 C++ Tools里面的 InstDrv.exe试试看
Fireway2008 2010-02-10
  • 打赏
  • 举报
回复
Tr0j4n
== Biweilun?
楼主为何忽视我6楼的提问呢?
Henry8484 2010-02-10
  • 打赏
  • 举报
回复
帮顶,接分~~~~~~~学习
VCFansKing 2010-02-10
  • 打赏
  • 举报
回复
你这个是一个系统服务吧,用DDK编译的吗,说说目的是干嘛
lzjdlsl 2010-02-10
  • 打赏
  • 举报
回复
自己顶一下。希望懂驱动的帮个忙,
Eleven 2010-02-10
  • 打赏
  • 举报
回复
帮顶,最近也在开始学驱动开发
yaozhiyong110 2010-02-10
  • 打赏
  • 举报
回复
照片是你女朋友?????????
LPR_Pro 2010-02-10
  • 打赏
  • 举报
回复
ding ding
jianghandaxue 2010-02-10
  • 打赏
  • 举报
回复
UP up
「已注销」 2010-02-10
  • 打赏
  • 举报
回复
.... 來 看 看
lzjdlsl 2010-02-10
  • 打赏
  • 举报
回复
看雪论坛和驱动之家。专门的驱动版。不过没有csdn开放。发个帖子都要比较高的权限
lzjdlsl 2010-02-10
  • 打赏
  • 举报
回复
哎驱动太痛苦了。结贴了。下次再问把。这个帖子太长了。谢谢各位
lsvine 2010-02-10
  • 打赏
  • 举报
回复
好长的帖子
关注一下

关注一下
MoXiaoRab 2010-02-10
  • 打赏
  • 举报
回复
要么你驱动其实已经加载了。。。
MoXiaoRab 2010-02-10
  • 打赏
  • 举报
回复
引用 59 楼 lzjdlsl 的回复:
链接被公司屏蔽了打不开。这个和用哪个工具没有关系把。应该是我加载了一个驱动。然后这个驱动的某个标示信息在系统中存在了。至于那个信息是什么。在哪里。如何删除他,这个不知道,

知道为什么让你换工具吗?因为DM我用过,service database entry 报错很正常,很多时候是权限问题。
zhousdzhousd 2010-02-10
  • 打赏
  • 举报
回复
挖金啊,想下载一点资源参考一下。顶!顶!顶!
lllmaliyuan 2010-02-10
  • 打赏
  • 举报
回复
驱动加载过程
1.系统进程
任务管理器->进程管理器->System进程, 在系统启动的时候被创建。
2.驱动程序的加载过程
a).系统进程启动新的线程并调用执行体组件中的对象管理器创建DRIVER_OBJECT
b).系统进程调用执行体组件中的配置管理程序,查询驱动程序对应的注册表项,并将此值传给DriverEntry,其值为指向设备服务建的键名字符串指针,内容为: \REGISTRY\MACHINE\SYSTEM\ControlSet\Services\[服务名]
c).系统进程调用DriverEntry()函数并传递前面2个参数。
3.DriverEntry的主要作用就是对DRIVER_OBJECT进行初始化并保存服务键的值,以便以后使用。
加载更多回复(47)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧