macy
禁止发言
禁止发言
  • 注册日期2001-12-19
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分6383分
  • 威望48270点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1277回复:2

那位帮我看看,谢谢!

楼主#
更多 发布于:2002-01-06 02:57
用户被禁言,该主题自动屏蔽!

最新喜欢:

Ice_BinIce_Bi...
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2002-01-06 11:10
我想做一个app来控制passthru.
驱动部分:
NdisInitUnicodeString(&ntDeviceName, NT_DEVICE_NAME);
Status = IoCreateDevice (DriverObject,
                             0,
                             &ntDeviceName,
                             FILE_DEVICE_UNKNOWN,
                             0,
                             FALSE,
                             &deviceObject);
NdisInitUnicodeString( &win32DeviceName, DOS_DEVICE_NAME );

Status = IoCreateSymbolicLink( &win32DeviceName, &ntDeviceName );


DriverObject->MajorFunction[IRP_MJ_CREATE] = PassthruOpen;
DriverObject->MajorFunction[IRP_MJ_WRITE] = PassthruWrite;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = PassthruClose;
DriverObject->DriverUnload = PassthruUnload;

PassthruOpen等几个函数里没有内容,直接return STATUS_SUCCESS.

app部分:
HANDLE hFile;
hFile=CreateFile(TEXT(\"\\\\\\\\.\\\\LOADTEST\"),
                         GENERIC_READ|GENERIC_WRITE,
                         0,
                         NULL,
                         OPEN_EXISTING,
                         FILE_ATTRIBUTE_NORMAL,
                         NULL
                         );
if(hFile == INVALID_HANDLE_VALUE)
MessageBox(\"Driver is not loaded.\");
CloseHandle(hFile);

执行app那段代码电脑就会蓝屏,重启,系统是2000server.
为什么呢?


我怀疑是你的passthr_open不对。
你不至于没有调用iocompleterequest吧?
不再回忆从前,我已经生活在幸福当中。
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-01-06 12:53
你的驱动程序对IRP的处理不对造成的蓝屏的,好好看一下你的驱动代码吧!驱动程序里对IRP的处理不能只是简单的返回
游客

返回顶部