|
(转载)Testing Network Drivers with the NDIS Test Tool(2) Figure One Recommended Full NDISTest Hardware Setup It's a good idea to use non-intelligent hubs or repeaters instead of intelligent switches for the test network. Some tests may fail or show warnings when switches are used because they filter the network traffic. If your network adapters so permit, you can connect them back-to-back directly (using a crossover cable) and omit the switch or hub. An easy way to setup NDISTest with only one machine and two network cards is shown in Figure Two. If you have only one network card available, you can even omit the second network adapter and still run NDISTest. Figure Two Simple NDISTest Hardware Setup
NDISTest offers you the following test categories, which you can combine as desired. Each test category requires some or all of the hardware I just described. - 1c - one card tests
- Install the "test device" network adapter that your driver requires in the client machine, and you are ready to run the one card (1c) tests. I colored the test device blue in Figures One and Two. This is the minimal test setup.
-
- 2c - two card tests
- For the two card (2c) tests, install an additional "support device" network adapter in the client machine. Connect it to the test device on a private "test network". This support device is colored orange in Figure Two.
-
- 2m - two machine tests
- Add a server machine for the two machine (2m) tests. Equip the server with a "support device" (orange) network adapter and connect it to the same private test network as the test device of the client as shown in Figure One. The support device in the server takes over the role of the support device in the client, so the support device is no longer required in the client machine.
For the communication channel between the server and the client add a "message device" (green) network adapter to both the client and the server machine. The two message devices can be anything that allows for TCP/IP to run on top of them. For instance, if your test and support devices are Wireless LAN adapters, the message devices can be standard Ethernet adapters. Connect the two message devices to a "message network" that is separate from the private test network. Note that the message network does not need to be a private network and you may also connect other machines to it. If the message devices are the adapter cards that you ordinarily use to connect the client and server machines to your office LAN, and if you're using TCP/IP as the network protocol, you've already done this step. Alternatively, you may also connect the two message devices to the test network, but I recommend that you use independent test and message networks.
In order to achieve an optimal test coverage, you should run NDISTest on two machines with all of the available 1c, 2c, and 2m tests enabled. If available, you should use a multi-processor machine as the client. Where Do I get the NDIS Test Tool?NDISTest is part of the Microsoft Hardware Compatibility Test (HCT). But it is also available as a stand-alone tool coming in a self-extracting archive file, which you can download from the Microsoft Windows Hardware & Driver Central (WHDC) at the NDIS Test Tool page Note: The HCT is required to run the official WHQL tests, which qualify a device for the "Designed for Windows" logo. You can download the complete HCT in the ASP?area=Network" target=_blank>WHQL Network Testing section (several hundred MB!). If you have MSDN Universal Subscription, then the HCT is included in your distribution CDs. After installing the HCT you will find NDISTest in "<HCT root directory>\testbin\ndistest".
Can I test on Windows 98 or Windows ME?The current version of NDISTest (at the time of this writing) runs on Windows 2000, Windows XP, and Windows 2003. It does not run on Windows 98 or Windows ME. An older version of NDISTest does run on these older systems, namely version 3.91, and it is available from Microsoft WHQL (Windows Hardware Quality Labs) in their Network Testing section as file "ndt391.exe". Note that you will find the term "trusted card" being used in earlier NDISTest versions, which is similar to what is now known as a "support device". However, with older NDISTest versions you need one trusted card in both the client and the server whereas newer NDISTest versions require only one support device in either the client or the server. How do I install the NDIS Test Tool?Installation of NDISTest is a fairly easy task: Simply run the downloaded self-extracting archive file and unzip the contained NDISTest files to a directory of your choice. Install NDISTest once on the client machine and once on the server machine. Note: Once you extract the archived files, you can use the batch file "ndsetup.bat" to create further installation copies of NDISTest. For instance, to create the new directory "n:\ndistest" and copy a new installation of NDISTest there, open a command prompt in the current installation directory of NDISTest and enter the following command: ndsetup n:\ndistest
What else do I need?I recommend connecting a debugger to your client machine for several reasons: - NDISTest prints a lot of messages to the debugger console. They will help you better understand any failed or warned tests.
- Your driver should also print messages to the debugger when it detects any anomalies.
- When NDISTest detects some critical situation it may hit a breakpoint, which will freeze the machine until you take appropriate actions in the debugger.
- Any bugs in your driver can potentially crash the system. NDISTest usually hits those bugs, so it is a good idea to have a debugger ready that you can use to examine the bugcheck.
In very rare cases NDISTest may also hit a breakpoint in the server. So you may need to also connect a debugger to the server machine then. The Microsoft WinDbg debugger is available for download in the Microsoft WHDC section Microsoft Debugging Tools. If you have an NDISTest server machine you can run WinDbg on the server machine and connect it to the client machine. During installation of NDISTest, all the debug symbols for NDISTest are copied to the directory "<cpu>\symbols" under the directory where you installed NDISTest. You should add this directory to your debugger's symbol path. If you are unable to connect a debugger to your client or server machine, you can alternatively use a tool like SysInternals' freeware tool DebugView, which you can download from their utilities section. Actually you can use any tool or debugger (e.g. SoftICE) that will display kernel debug messages. Another useful tool is a network sniffer that allows you to watch all the traffic on the test network. The sniffer tool should not use any of the test or support devices but should use an extra network adapter also connected to the test network. You should prefer to run the sniffer on a separate third machine. How do I configure the NDIS Test Tool?Before you configure NDISTest, make sure to enable TCP/IP on both message devices and configure them to use the same IP subnet address. If you have DHCP enabled on the message devices, you should be ok. Check the IP addresses with the IPCONFIG command in a command prompt window if in doubt. NDISTest will present you only those physical and virtual network adapters that are actually still available for the test, message, and support device entries. It is important to note that NDISTest will no longer show any entries that are associated with the same adapter once you select a listed adapter to be a test, message, or support device. This makes sense as you for instance cannot test an intermediate driver with a support device that is the physical adapter to which the IM is bound. You need administrator privileges on the client and server machines in order to run NDISTest. Start the server firstIf you have a server machine, start NDISTest on the server first. Make sure you have administrator privileges on the server. - Run the "ndtest.bat" file from the directory where you installed NDISTest on the server.
- Select the TESTS tab.
- On the right, select the SERVER radio button.
- In the MESSAGE combo box, select the message device from the list of adapters. Notice that the IP address is listed for each adapter.
|