Forum Replies Created
-
AuthorPosts
-
Which driver have you tried to install? NDIS IM or NDIS hook one (there are options for Windows XP)? Have you rebooted the system after installation?
How can I do to obtain this certificate ?
An example from VerySign http://www.verisign.com/code-signing/content-signing-certificates/microsoft-authenticode/index.html
Will it be ok for the VirtNet source code if I purchage the developer update, since I have no modifications to do ?
Yes, it will be ok.
But if my software runs well and I don’t need neither support nor upgrades, will I still have the right to sell my products using your driver or will I have to renew my subscription ?
No, you have not to renew after one year (and can continue to distribute your software) but you can purchase the renewal anytime when you really need some updates.
Another question, I don’t remember if the driver works with Windows 7 64 bits ; if it’s not the case will I have the new version if it’s released within one year ?
Windows 7 is already supported.
– I need to forward packets for WAN links or interfaces ; in order to do NAT I need to know what is the IP of this interface/connection. For the connection, I can use the RAS_LINKS structure. But is there another way for the interface than looking in the registry with the device ID ?
– I also need to know the DNS server(s) from these interface/connection. For the interface I can look into the same key of the registry ; but for the connection, I don’t know how to find it (the information is also in the registry, but how can I proceed to know its ID ?)
You can use IP helper API for these tasks, there is no way to do that with WinpkFilter driver.
Since I know now I can use your driver and API, I’ll have to purchase it. How does it work after, I download a package containing all tools to install it or so ? I’d need to perform a silent install of the driver, is this possible ?
Other question, are the sources of the VirtNet adapter available in this package ? It would be nice if I could rename it with the name of my company.Creating the silent installation for WinpkFilter driver is possible. The only important thing you have to care is obtaining code signing certificate and sign driver binaries to avoid Unknown Publisher warnings and allow WinpkFilter driver to load on Vista/7 x64 in normal mode. If you license WinpkFilter I will deliver you VirtNet source code for free.
If to be honest I already lost the idea of where you are in your development. Could you describe the particular problem in details?
Your applications tries to read packet only one time and then exits if fails to read one, while packetsniffer and passthru wait for packets to be available. This is the difference.
May be there are no packets to read from the adapter at the moment when you do read and ReadPacket returns FALSE.
WINDDK7600.16385.0srcnetworkndisnetvmini is very similar
Да, так и есть.
There are ways. I use dumpbin tool for this
http://msdn.microsoft.com/en-us/library/c1h23y6c%28VS.71%29.aspxЧто имеется ввиду под поддержкой IPv6? NDIS IM сборка WinpkFilter драйвера позволяет фильтровать IPv6 на системах начиная с Windows XP и старше, для более ранних систем IPv6 не был реализован.
Если имеется ввиду поддержка IPv6 на уровне встроенных фильтров, то это несложно добавить если будет интерес со стороны пользователей.
I would advise you to check if ndisapi.dll built with MinGW really exports required functions. May be project needs some rework to be properly used with MinGW.
Yes, filters allow you to reduce the number of packets indicated to user mode for processing thus improving overall performance.
Note, that only unmanaged block of memory can be passed to WinpkFilter driver. To simplify marshalling STATIC_FILTER_TABLE for C# is declared to contain fixed size array of filters (256).
//
// Static filters table to be passed to WinpkFilter driver
//
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct STATIC_FILTER_TABLE
{
public uint m_TableSize; // number of STATIC_FILTER entries
[MarshalAs(UnmanagedType.ByValArray,SizeConst=256)] // For convinience (easier marshalling to unmanaged memory) the size of the array is fixed to 256 entries
public STATIC_FILTER[] m_StaticFilters; // Feel free to change this value if you need more filter entries
}So in order to fix the marshalling error you have to change your code like this:
pFilters.m_TableSize = 7;
pFilters.m_StaticFilters = new STATIC_FILTER[256];You pass 256 filters to drivers but only 7 are valid as indicated by pFilters.m_TableSize
Hmm, link errors look like you have different name mangling in DLL and application. Strange issue if you have rebuilt both projects with the same compiler. May be you have to do some changes to NDISAPI.DLL to build properly with MinGW. Regretfully,I have never used MinGW and I can hardly advise how to persuade it to make proper linkages.
You may consider using C interface instead C++ one, it won’t have problems like this.
3G modem won’t appear in the list as dedicated network adapter, but you will see an active WAN link under NDISWANIP network interface when connection is established.
The link seems to be correct however, because if I don’t do this I have one more error. Any idea to fix this error ?
Try to rebuild ndisapi.dll with your compiler and then link to your application. Different C++ compilers use different name mangling for C++.
I also have another question : I ran listadapters.exe and it shew me a list of interfaces. Then, I plugged a 3G key and ran again the program : it shew me the same list as before. Is this normal ?
In Windows all WAN devices are visible as NDISWANIP virtual Ethernet interface, so adding another modem does not change the list of adapters. If you establish the connection using 3G modem you will see it in the list of the active WAN links.
-
AuthorPosts