aulphar
驱动牛犊
驱动牛犊
  • 注册日期2004-02-23
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1179回复:1

那位大哥用NdisMRegisterDevice成功的来指教

楼主#
更多 发布于:2004-04-04 10:55
我的相关代码如下,总是不成功,大哥帮帮忙
NDIS_STRING mDeviceName;
NDIS_STRING mSymbolicName;
PDRIVER_DISPATCH DispatchTable[IRP_MJ_MAXIMUM_FUNCTION+1];
NdisInitUnicodeString(&mDeviceName,L"\\\\Device\\\\MPassthru");
NdisInitUnicodeString(&mSymbolicName,L"\\\\DosDevices\\\\MPassthru");
NdisMInitializeWrapper(&WrapperHandle, DriverObject, RegistryPath, NULL);

DispatchTable[IRP_MJ_CREATE] = PassthruDispatch;DispatchTable[IRP_MJ_CLEANUP]= PassthruDispatch;
DispatchTable[IRP_MJ_CLOSE]= PassthruDispatch;
DispatchTable[IRP_MJ_DEVICE_CONTROL]= PassthruDispatch;
DispatchTable[IRP_MJ_READ]= PassthruDispatch;
//
// Create a device object and register our dispatch handlers
//
Status = NdisMRegisterDevice(
WrapperHandle,
&mDeviceName,
&mSymbolicName,
&DispatchTable[0],
&pDeviceObject,
&mNdisDeviceHandle
);
在PassthruDispatch中还没有实现只是Return Status_Success

Status总不是Success

顺便再问一下我要打印mDeviceName是不是用DbgPrint("%ws",&mDeviceName);为什么打出来是“*,”,而DbgPrint("%ws",L"hello")则是对的

诸位大哥一定要帮忙
iwub
驱动牛犊
驱动牛犊
  • 注册日期2002-10-09
  • 最后登录2009-06-22
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望60点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-17 14:39
你的调用在哪里?
如果在intial里面的话,传进来的wrapper参数和driverentry 中的不同的,要用全局变量保存,

还有Adapter也要保存一个指针,在IoXXXX 处理IRP是要用到的。

 
iwub
游客

返回顶部