阅读:1179回复:1
那位大哥用NdisMRegisterDevice成功的来指教
我的相关代码如下,总是不成功,大哥帮帮忙
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")则是对的 诸位大哥一定要帮忙 |
|
沙发#
发布于:2004-07-17 14:39
你的调用在哪里?
如果在intial里面的话,传进来的wrapper参数和driverentry 中的不同的,要用全局变量保存, 还有Adapter也要保存一个指针,在IoXXXX 处理IRP是要用到的。 |
|
|