EXTENDING PASSTHRU NDIS IM DRIVER
Uploader: | Vudodal |
Date Added: | 15 January 2008 |
File Size: | 45.12 Mb |
Operating Systems: | Windows NT/2000/XP/2003/2003/7/8/10 MacOS 10/X |
Downloads: | 36996 |
Price: | Free* [*Free Regsitration Required] |
Tutorial for NDIS intermediate drivers?
This series of articles add functionality to PassThru in s series exfending fairly small steps. Then we provide two functions that manipulate the RefCount: Here is an example that is targeted to the "National Semiconductor Corp. Use the PoolTag utility to make sure that there aren't gross memory leaks.
As an NDIS protocol driver, it illustrates how to establish and tear down bindings to Ethernet adapters. The mechanism that we will add to make our Wininitiated call to NdisRequest will add a second level of indirection for completing requests. We are not hereby endorsing AMD products. From the Win32 API perspective the process of opening an adapter handle will be simple and familiar.
These prior articles as well as their companion source code can be found in the Windows Driver Developer's Digest Archives.
However, the additional nxis of explaining each step really slowed me down - and that was actually a good thing. PassThruStats is the application to get statistics from PassThru.

However, it does confirm that the binding enumeration function works. The program to get statistics packets seen, packets dropped is PassThruStats. Do understand that you will need to enumerate the Pasdthru bindings and edit the NDIS adapter name in the address blocking list file.
Of course your own driver may not be as easy to port to bits as PassThru. At this point we really want to move on and add the logic to open a handle to a specific PassThru binding. The goal here is to make it easier to implement different kinds of filters in the future by making changes to primarily to the filter module.
passfhru
Extending the PassThru NDIS IM Driver - Part 1
One trivial approach to this problem is to only open Win32 handles to the PassThru driver for brief intervals. Actually, we'll address more then simply "opening an adapter handle" here. These have been lightly modified to work in the Windows software development environment. The fxtending communicates briefly with the driver to pass control information; thereafter the driver operates autonomously until the next interaction with the application.
Setting the filter values and providing statistics are based on WMI. The overall structure of the completed PassThruEx project looks like this: Thus, for a given adapter, a consistent picture of the IP addresses is obtained or created. Of course you will need a bit development system. The bottom line here is that PnP can cause events that invalidate a Win32 handle to the PassThru driver after it has been successfully opened. However, the PassThru sample stops short of actually illustrating any observable function.
To accommodate this we add function DevOnUnbindAdapter that notifies the open handle logic about the unbind.
Extending the PassThru NDIS IM Driver - Part 2
For example, if you are passing a structure to your driver, have your driver calculate the expected length of the structure using sizeof and compare it to the input buffer length. However, we must realize that the baseline PassThru driver functionality is already making NdisRequests as part of the miniport pass-through logic.
I hope that this article will show that the effort required to adapt a driver to support bit extended systems AMD Athlon and Opteron is not excessive. There is one additional problem concerning adapter handles that must extehding dealt with.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:. This article and the companion code are intended to be used for the benefit of the reader of this article.
In this case, the handles are closed most of the time and the process of re-opening the handles becomes the notification mechanism re-opening the handle will fail But note that the sources files for the two latter refer to SDK files, so you may have to change something in those sources files; if you do, be sure you use no path names with imbedded blanks but rather the corresponding 8.
Comments
Post a Comment