Hi, everyone
I am writing a testing NDIS driver based on the Thomas’ Passthru Part2 code.
I want to implement the objects as the follow:
interrupt the interesting packets, and put into a queue;
the user app can obtains the packets from the driver by ReadFile.(I want to read the IP Packets).
and then the user app simulate the real server to response the packets.
write the response packet to the driver by WriteFile.
the NDIS driver can notify the the appropriate bound protocol driver to recieve it.
Now, I write the step1’s code in the MPSendPackets, put the packets into a global queue.
and add the IRP_MJ_READ/IRP_MJ_WRITE functions. But I do not know how I can notify the upper.
NdisMEthIndicateReceive or NdisMIndicateReceivePacket?
because this driver is not a virtual NIC, I am not sure I should use NdisMEthIndicateReceive to do that.
And based on the DDK, I found using NdisMIndicateReceivePacket is very complex.
I do not know how to use it. how to change the write buffer data to the NDIS_PACKET array?
Please help…
Hi, everyone
I am writing a testing NDIS driver based on the Thomas’ Passthru
Part2 code.
I want to implement the objects as the follow:
interrupt the interesting packets, and put into a queue;
the user app can obtains the packets from the driver by ReadFile.(I
want to read the IP Packets).
and then the user app simulate the real server to response the
packets.
write the response packet to the driver by WriteFile.
the NDIS driver can notify the the appropriate bound protocol
driver to recieve it.
Take a look at the netvmini source in the recent DDKs; it does
something similar to this. If you’re just trying to loop packets back
up to the OS, an IM driver may be unnecessary, in which case, a virtual
miniport will be a lot simpler.
> Hi, everyone
> I am writing a testing NDIS driver based on the Thomas’ Passthru
> Part2 code.
> I want to implement the objects as the follow:
> 1. interrupt the interesting packets, and put into a queue;
> 2. the user app can obtains the packets from the driver by ReadFile.(I
> want to read the IP Packets).
> 3. and then the user app simulate the real server to response the
> packets.
> write the response packet to the driver by WriteFile.
> 4. the NDIS driver can notify the the appropriate bound protocol
> driver to recieve it.
Take a look at the netvmini source in the recent DDKs; it does
something similar to this. If you’re just trying to loop packets back
up to the OS, an IM driver may be unnecessary, in which case, a virtual
miniport will be a lot simpler.
-sd
Thank your help.
I need iterrupt the packages based on the private address info(such as 10.1.1.1)
and transfer the packages to the remote gateway by one SSL tunneling,
and then the gateway redirect to the internal box.
When the internal box response the packet, the remote gateway can response the packet
by the tunneling.
at the current time, i only want to do some testing research. Hmmm… I find the above
problems block me…
If i use the vitual NIC, I need allocate a virtual IP for it, add some routing for it
like OpenVPN. I do not want to do that…
> Take a look at the netvmini source in the recent DDKs; it does
> something similar to this. If you’re just trying to loop packets back
> up to the OS, an IM driver may be unnecessary, in which case, a
> virtual
> miniport will be a lot simpler.
>
> -sd
Thank your help.
I need iterrupt the packages based on the private address info(such
as 10.1.1.1)
and transfer the packages to the remote gateway by one SSL tunneling,
and then the gateway redirect to the internal box.
When the internal box response the packet, the remote gateway can
response the packet
by the tunneling.
You don’t mind installing a kernel driver for your SSL VPN?
You don’t mind installing a kernel driver for your SSL VPN?
Sorry I can’t be of more help.
-sd
Thanks. But if we do not do some work in the kernel driver,
It is hard to support some specail application, such as netbios, VoIP.
Actually, it should not be called as SSL VPN.
we just use SSL to establish secure tunneling.
Anyway, thanks!