wengyu100
驱动牛犊
驱动牛犊
  • 注册日期2003-10-10
  • 最后登录2006-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1270回复:4

菜鸟问题,关于符号连接!

楼主#
更多 发布于:2004-02-21 11:09
看到驱动网上一段驱动与应用程序通讯的代码,有点不解

驱动部分:
#define LINKNAME_STRING L"\\DosDevices\\Passthru"
#define NTDEVICE_STRING L"\\Device\\Passthru"
NdisInitUnicodeString(&DeviceName, NTDEVICE_STRING);
NdisInitUnicodeString(&DeviceLinkUnicodeString, LINKNAME_STRING);

Status = NdisMRegisterDevice(
NdisWrapperHandle,
&DeviceName,
&DeviceLinkUnicodeString,
&DispatchTable[0],
&ControlDeviceObject,
&NdisDeviceHandle
);

应用部分:
HANDLE hdevice = CreateFile("\\\\.\\Passthru", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

我的问题是:
驱动部分的DeviceName和DeviceLinkUnicodeString到底是什么关系?为什么CreateFile中只需要参数"\\\\.\\Passthru"就可以访问设备了?
nicol
驱动大牛
驱动大牛
  • 注册日期2001-11-28
  • 最后登录2009-07-30
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-21 15:33
找找以前的帖子或者翻翻驱动程序的书,都会有详细的说明。
==寂寞骆驼==
x_j_ting
驱动牛犊
驱动牛犊
  • 注册日期2003-03-30
  • 最后登录2005-06-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-22 21:06
你得用NTSTATUS
  IoCreateSymbolicLink(
  IN PUNICODE_STRING  SymbolicLinkName,
  IN PUNICODE_STRING  DeviceName
  );
创建一个符号连接吧。
freeabcd_2003
驱动牛犊
驱动牛犊
  • 注册日期2003-10-07
  • 最后登录2004-04-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-22 21:34
imd里好象NdisMRegisterDevice包含IoCreateSymbolicLink的功能
做了好久,不记得了,有兴趣的去看看
wengyu100
驱动牛犊
驱动牛犊
  • 注册日期2003-10-10
  • 最后登录2006-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-23 09:45
我到书店查了一下,明白了
散分!
游客

返回顶部