阅读:1955回复:13
这个问题可能有点难,但有分
外设是一个通信设备,通过USB口与PC连接。现在需要开发针对这个外设的网卡驱动,不知道DDK中有什么例子可以作为参考。
用DS生成了一个driver, 能够作为网卡安装上并设置IP地址,而且ping自己能够通,但ping不通其他设备,不知道是什么原因。 另外,DS中的例子不太好看懂,想用参考DDK下的例子重新开发一个Driver. 请各位高手指点!谢过了先。 billx@163.com |
|
最新喜欢:![]() |
沙发#
发布于:2004-04-20 13:00
还是对NdisMGetDeviceProperty函数的使用不清楚!
status = NdisMRegisterMiniport(g_NdisWrapperHandle, &UsbNdisMiniportCharacteristics, sizeof(UsbNdisMiniportCharacteristics));//这里UsbNdisMiniportCharacteristics是不是指向WDM驱动? if(status == NDIS_STATUS_SUCCESS) { InstanceNumber = 0; g_DriverObject = DriverObject;//这里是什么意思? UsbNdis_HookAddDevice(DriverObject);//这里是什么意思? status = NDIS_STATUS_SUCCESS; }// else { NdisTerminateWrapper(g_NdisWrapperHandle, NULL); status = NDIS_STATUS_FAILURE; } return status; } 谁能解释一下这段程序啊?谢谢 |
|
|
板凳#
发布于:2004-04-07 15:37
很高兴看到这些帖子,我新来的,最近也碰到类似的问题
|
|
地板#
发布于:2002-08-05 16:09
-------Re------- 1. 我用ddk开发的。 2. 由于某些原因,我的源代码不便参考。 3. 我也找不到其他可以参考的源代码。 4. 有问题的话来email. 我会给你点一点步。 |
|
地下室#
发布于:2002-08-05 10:25
-------Re-------
---------------------------------------------------------- ...... 这就是人们平时说的usb网卡,他的DriverEntry与一般NIC driver无二。在对其操作时转换 为对usb的操作。其设备对象(DeviceObject)通过NdisMGetDeviceProperty()获得。详细 讲来很麻烦。 ..... ---------------------------------------------------------- Hi,dazzy! 您好! 非常高兴,看到了您的回帖。我知道您一定是在这方面有丰富经验的高手,所以非常盼望能得到您的指点和帮助! 我已经详细阅读了DDK中的开发文档,对这个项目整体上已有所了解。但苦于没有这方面值得参考的例子,所以我现在非常希望能得到这方面的参考源代码(DriverStudio中的实在是很难理出头绪 )。不知道是否方便请您提供参考源代码?或请您告诉我在什么地方能找到参考源 代码? 非常非常急切的盼望着...... 先谢过了! billx, 一个焦头烂额中的驱动开发网网友。 |
|
5楼#
发布于:2002-08-02 10:00
我想你无非是注册一个网卡驱动程序,然后将所有发往这个包的数据通过USB发出去,所有进来的数据从USB读出,那么问题就变成:只要你能从USB读写数据不就解决了吗?
|
|
6楼#
发布于:2002-08-01 23:05
----------------------------------------------------- 这就是人们平时说的usb网卡,他的DriverEntry与一般NIC driver无二。在对其操作时转换为对usb的操作。其设备对象(DeviceObject)通过NdisMGetDeviceProperty()获得。详细讲来很麻烦。 NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING pRegistryPath ) { NDIS_STATUS status = NDIS_STATUS_SUCCESS; NDIS_MINIPORT_CHARACTERISTICS UsbNdisMiniportCharacteristics; NdisMInitializeWrapper(&g_NdisWrapperHandle, DriverObject, pRegistryPath, NULL); if(g_NdisWrapperHandle == NULL) { return NDIS_STATUS_FAILURE; } NdisZeroMemory(&UsbNdisMiniportCharacteristics, sizeof(UsbNdisMiniportCharacteristics)); UsbNdisMiniportCharacteristics.MajorNdisVersion = 5; UsbNdisMiniportCharacteristics.MinorNdisVersion = 0; UsbNdisMiniportCharacteristics.CheckForHangHandler = NULL; UsbNdisMiniportCharacteristics.DisableInterruptHandler = NULL; UsbNdisMiniportCharacteristics.EnableInterruptHandler = NULL; UsbNdisMiniportCharacteristics.HaltHandler = UsbNdis_MiniportHalt; UsbNdisMiniportCharacteristics.HandleInterruptHandler = NULL; UsbNdisMiniportCharacteristics.ISRHandler = NULL; UsbNdisMiniportCharacteristics.QueryInformationHandler = UsbNdis_MiniportQueryInformation; UsbNdisMiniportCharacteristics.ReconfigureHandler = NULL; UsbNdisMiniportCharacteristics.ResetHandler = UsbNdis_MiniportReset; UsbNdisMiniportCharacteristics.InitializeHandler = UsbNdis_MiniportInitilize; UsbNdisMiniportCharacteristics.SetInformationHandler = UsbNdis_MiniportSetInformation; UsbNdisMiniportCharacteristics.SendHandler = NULL; UsbNdisMiniportCharacteristics.SendPacketsHandler = UsbNdis_MiniportSendPackets; UsbNdisMiniportCharacteristics.ReturnPacketHandler = UsbNdis_MiniportReturnPacket; UsbNdisMiniportCharacteristics.AllocateCompleteHandler = NULL; status = NdisMRegisterMiniport(g_NdisWrapperHandle, &UsbNdisMiniportCharacteristics, sizeof(UsbNdisMiniportCharacteristics)); if(status == NDIS_STATUS_SUCCESS) { InstanceNumber = 0; g_DriverObject = DriverObject; UsbNdis_HookAddDevice(DriverObject); status = NDIS_STATUS_SUCCESS; } else { NdisTerminateWrapper(g_NdisWrapperHandle, NULL); status = NDIS_STATUS_FAILURE; } return status; } |
|
7楼#
发布于:2002-08-01 18:41
俺对usb的读写没有经验的喽。 :)
|
|
|
8楼#
发布于:2002-08-01 17:57
-----------------------------------------------------
是不是你也要做usb驱动,然后再做虚拟网卡,然后虚拟网卡与usb驱动进行交互,让用户看到的是网卡,其实操作的是usb,对否? ------------------------------------------------------ 是想让用户看到的是网卡,其实操作的是usb。不过好像不用单独开发 USB驱动,而是在虚拟网卡驱动中直接读写USB总线就可以了。 难道没有人能指点一下吗? |
|
9楼#
发布于:2002-08-01 14:27
是不是你也要做usb驱动,然后再做虚拟网卡,然后虚拟网卡与usb驱动进行交互,让用户看到的是网卡,其实操作的是usb,对否?
|
|
10楼#
发布于:2002-08-01 14:18
我没有用过ds,ddk地下还有几个网卡的驱动源码,不知能用不能?
:\\NTDDK\\src\\network\\ndis\\ne2000 :\\NTDDK\\src\\network\\ndis\\e100bex |
|
|
11楼#
发布于:2002-08-01 13:41
不是USB驱动,而应该是NDIS网络驱动中的一种。是想安装这个驱动后,要PC认为该带有USB口的外设是一个网卡。
应该是DDK文档中提到的miniport-WDM性质的网络驱动程序吧,底层接口是USB总线。但好像DDK中并没有提供类似的例子。用DS的drivernetworks生成了一个,唉,又出问题,所以想用DDK直接来作。 请诸高手继续出招! |
|
12楼#
发布于:2002-08-01 13:03
是usb口外边加一个网卡楼?
ddk底下有一个usb驱动的例子,不用改,编译一下,就能工作。再往里边加你的网卡的通信程序行不行? |
|
|
13楼#
发布于:2002-08-01 12:22
那是不是要开发专门的usb驱动吧!
|
|