Forum Replies Created
May 16, 2004 at 8:16 am in reply to: Only TCP/IP Enabled Adapters? #5563
Does NDISRD.SYS only bind itself to interfaces with TCP/IP enabled?
Yes. For your needs you’d better use protocol driver (Winpcap, PCAUSA RAWETHER or etc.).April 27, 2004 at 10:49 am in reply to: NDIS-Miniport-Driver question #5562
You just need to create virtual NDIS miniport and extend it with required functionalities. The sceleton driver can be generated by DriverNetworks suite from Compuware or you just can adopt your ne2000 derrived driver (I don’t remember all the details, it’s gone pretty much time since I did similar thing).April 24, 2004 at 10:39 am in reply to: IOCTL_NDISRD_READ_PACKET without packets #5561
I have rechecked the code, and yes you are right. Internal request processing routine returnes STATUS_UNSUCCESFULL, but higher level dispatching routine returnes STATUS_INVALID_PARAMETER for any status different from STATUS_SUCCESS. So your code is pretty correct.April 23, 2004 at 9:04 pm in reply to: IOCTL_NDISRD_READ_PACKET without packets #5559
NDIS_STATUS_FAILURE is the same as STATUS_UNSUCCESSFUL. Are you sure that you get STATUS_INVALID_PARAMETER?April 23, 2004 at 10:14 am in reply to: IOCTL_NDISRD_READ_PACKET without packets #5556
You should check the returned status, when there are no packets in the queue WinpkFilter driver returnes NDIS_STATUS_FAILURE.April 21, 2004 at 12:12 pm in reply to: IOCTL_NDISRD_SET_EVENT and Win32 events #5552
How to wait for an event in a driver model (i.e. with dispatch routines).
I’m not sure that I understand your question. In kernel mode you can wait on the event object using KeWaitForSingleObject. It should be called on the passive level IRQL only but you can create the dedicated system thread for this…April 20, 2004 at 5:35 pm in reply to: IOCTL_NDISRD_SET_EVENT and Win32 events #5550
Please refer CNdisApi::SetPacketEvent regarding translating Win32 event to Ring0 event under Windows 9x/ME.
For Windows NT/2000/XP/2003 you can create Win32 event in kernel with ZwCreateEvent and pass it to driver. In order to wait on this event you should first get event object with ObReferenceObjectByHandle call.
Hope it helps…April 9, 2004 at 8:11 am in reply to: address translation #5544
However, are there any special thinks to consider when using your pkt filter ??
I’m not sure what you actually mean here, but there is no technical problems to realize NAT using WinpkFilter.April 8, 2004 at 7:55 pm in reply to: Re-routing TCP packets #5533
If you mean packet sent to localhost (127.X.X.X) then the answer is NO. These packets (actually they never have the form of packets with IP and TCP headers, just chunks of data) are processed internally by TCP/IP and never reach NDIS level.April 8, 2004 at 5:32 pm in reply to: Re-routing TCP packets #5531
It looks that something was wrong when processing the packets below:
PCA <- SYN/ACK <- PCB
PCA <- SYN/ACK <- PCB
and connection was terminated due to time out. I would try to check what happens there.April 8, 2004 at 5:29 pm in reply to: Dropping on default #5543
It can be done in the custom build if you own Developer license.April 8, 2004 at 12:06 pm in reply to: Re-routing TCP packets #5523
After outgoing packet modification I would indicate it to MSTCP instead sending it over the network.
Hope it helps…April 8, 2004 at 11:54 am in reply to: Unmanned install #5541
Yes, sure. the only thing you should do is creating some registry entries (please find the details in the WinlkFilter docs).April 5, 2004 at 3:08 pm in reply to: WinPKFilter, performance and user/kernel mode #5499
I’m trying to find the best driver model to use, which kind of driver do you suggest to use as a model?
This is not hardware driver, so for Windows NT/2000/XP/2003 you should use NT legacy driver, which sceleton can be generated using something like QuickSYS (http://www.ntkernel.com/resources.shtml). For Windows 98/ME you can use VToolsD framework to generate the driver sceleton.April 5, 2004 at 10:44 am in reply to: problem with winpkfilter #5493
I think you can create the dedicated working thread and perform packet processing in this thread. In this case you won’t block your main thread.