Testing NDIS Miniport Drivers by Using the Windows CE .NET Test Kit

 

Harish Rane
Microsoft Corporation

February 2004

Applies to:
     Microsoft® Windows® CE .NET

Summary: This article provides step-by-step instructions about how to run a one-card test, a two-card test, and a two-card test on two computers on network driver interface specification (NDIS) miniport drivers by using the Windows CE .NET Test Kit (CETK). For more information about how to run an NDIS test on miniport drivers, please refer to the CETK Help documentation.

Contents

Introduction
NDIS Test on Miniport Drivers for Network Cards
NDIS Test on Miniport Drivers for Onboard Ethernet Devices
NDIS Test on Miniport Drivers for Wireless Devices

Introduction

Consider testing miniport drivers for Ethernet interfaces. Note that Ethernet devices can be onboard devices or peripheral devices, such as Industry Standard Architecture (ISA), Peripheral Component Interconnect (PCI), CompactFlash, Personal Computer Memory Card International Association (PCMCIA), and CardBus cards. For onboard Ethernet devices, you must use that particular platform to test the miniport drivers. For ISA, PCI, CompactFlash, PCMCIA, and CardBus cards, you can choose a particular platform (for example, a Microsoft® Windows® CE PC [CEPC]–based hardware platform), and you can test the drivers on that platform. If Ethernet devices are not onboard, you should test them on all supported CPUs (basically, ARM, x86, MIPS, and SHx) to ensure that the miniport drivers qualify as production-quality drivers. This article discusses two main scenarios: onboard and detachable peripheral devices.

NDIS Test on Miniport Drivers for Network Cards

The following sections describe how to run the NDIS test on miniport drivers for network cards.

Preparing the Hardware

The example scenario in this section tests the miniport driver for the NE2000 PCMCIA card. To test this card, consider the simplest platform, CEPC, for the following reasons:

  • It is x86 based and therefore inexpensive and readily available.
  • It has five PCI slots and an optional ISA slot so that you can extend the slots to have mini PCI slots or CompactFlash, PCMCIA, or CardBus controllers.

The CEPC platform in this example has two PCI Ethernet cards: one TI1250 chipset-based PCMCIA card controller (PCI card), and one VGA card.

Of the two PCI Ethernet cards, one is used to download the image through a Kernel Independent Transport Layer (KITL) transport device and for Ethernet debug (EDBG). You can use any supported PCI card (for example, NE2000, RTL8139, or DP83815) or an ISA card. For the hardware compatibility list for Windows CE, visit the Peripheral Support Web page.

The second card is used for support in a two-card test. For more information about NDIS one-card or two-card tests, please view the Help topics in the product documentation under the CETK application.

The following criteria can help you choose a support card:

  • The second card should be a similar type of card so that the same test miniport driver can support it. For example, both the primary test card and the support card should be NE2000 compatible if you are testing an NE2000 miniport driver. You can then test how the same miniport driver handles more than one adapter.
  • If the test miniport driver supports more than one bus type, we recommend that you use a support card with a different bus type than that of the test card. For example, when you test an NE2000 miniport driver, you can use an NE2000 PCMCIA card as the primary test card, and an NE2000-compatible PCI card as the support card.

The preceding criteria are best practices, but they are not necessary conditions to run the NDIS tests. You can run the tests if you use a support card for which the miniport driver is available and is also supported in the operating system image that you are testing. The following list describes the requirements to complete the test:

  • A VGA card is required because you will have an IABASE image (a display-based image) loaded onto the CEPC platform.
  • A PCMCIA card controller (which can be an ISA-based i82365 chipset-based controller) is required because the test card in this example is on a PCMCIA card.

Preparing the Image

To begin preparing the image, open Platform Builder for Microsoft Windows CE .NET version 4.2, and then select the x86 platform. Here, you can choose any configuration, but for this example, select Enterprise Web Pad. For more information about how to choose certain components to make the required image, see the Platform Builder Help documentation. The following components are required in the final image:

  • TI1250 chipset-based PCMCIA card controller (PCI card). By default, an ISA-based (i82365 chipset) PCMCIA card controller is added into an image. In this example, CEPC supports a PCI-based PCMCIA card controller.
  • VMINI, the Virtual Miniport driver that exports the EDBG port as a miniport interface to which protocols like Transmission Control Protocol/Internet Protocol (TCP/IP) can bind.
  • CETK.

Preparing Setup

When you look at the hardware setup, you can see that the Windows CE .NET–based test device (which is a CEPC in this example) and the Microsoft Windows XP–based computer have at least one interface on the same public network. The interface for the CEPC is being used for KITL and for Ethernet debug, and also as a production interface (VMINI). The CETK client on the Windows CE .NET–based test device (Clientside.exe) will use that interface to communicate with the CETK server that is running on a Windows XP–based computer.

Figure 1 shows the hardware setup for an NDIS one-card or two-card test. Note that the support adapter shown in the figure is required only for an NDIS two-card test.

Figure 1.

Running the NDIS One-Card Test

To run an NDIS one-card test:

  1. Download the image to the CEPC.

  2. Start the CETK server on the Windows XP–based computer. For example, if you have Windows CE .NET 4.2 installed on your computer, click Start, point to All Programs, point to Microsoft Windows CE .NET 4.2, and then click Windows CE .NET 4.2 Test Kit.

    The CETK tool appears, as shown in Figure 2.

    Figure 2.

  3. After the image has started on the CEPC, use Platform Builder on the Windows-based desktop computer and run the following command at a command prompt:

    s clientside /n=comp1 /p=5555
    

    The Clientside.exe program on the CEPC will connect to CETK server that is running on the Windows XP–based computer over VMINI. The CETK server will then show CEPC WindowsCE (x86) as the client, as shown in Figure 3.

    Figure 3.

  4. Expand the WindowsCE (x86) test node, expand Ethernet, and then select One-Card Network Card Miniport Driver Test, as shown in Figure 4.

    Figure 4.

  5. Right-click One-Card Network Card Miniport Driver Test, and then click Quick Start.

    When you do this, the test runs but it does not work because the associated command line is not modified yet to consider the test card. To view the results of the test, use the following steps:

    1. On the Tests menu, click View results.

    2. Click Windows CE (x86).

    3. Expand Ethernet.

    4. Click One-Card Network Card Miniport Driver Test to display a window where you can view the error log. In addition to test results, the error log lists the currently present adapters that are on the Windows CE .NET–based device.

      You will see NE20001, which is an instance of an NE2000-compatible PCMCIA card, and PCI\NE20001, which is an instance of a PCI NE2000-compatible card that is present on the Windows CE .NET–based test device (the CEPC). Next, you need to modify the command that is associated with the test. To do this, close the following error log window.

      Figure 5.

  6. Change the command line that is associated with the test by doing the following:

    1. Expand Ethernet.

    2. Select One-Card Network Card Miniport Driver Test, and then right-click Edit command line. A dialog box appears.

    3. In the Command line box, modify the command to the following command, and then click OK:

      tux -o -d ndt_1c -c "-t NE20001"
      

      Note that NE20001 is an instance of an NE2000-compatible PCMCIA card in this command.

      Figure 6 shows the modified command.

      Figure 6.

  7. Expand Ethernet, select One-Card Network Card Miniport Driver Test, right-click One-Card Network Card Miniport Driver Test, and then click Quick Start. This action starts the test. The following figure displays what you see when the test is in progress.

    Figure 7.

  8. After the test is finished, you can see that the test is complete and whether the test passed or failed.

    Figure 8.

  9. To see the final test results, use one of the following steps:

    • On the Tests menu, click View Results, click Windows CE (x86), expand Ethernet, and then click One-Card Network Card Miniport Driver Test. This action displays a window where you can find the log files.

      -or-

    • Expand Ethernet, select One-Card Network Card Miniport Driver Test, right-click One-Card Network Card Miniport Driver Test, and then click View Results. In the window that appears, you can view all of the test-suite results and the results of individual tests.

    If you have Platform Builder running and the Windows CE .NET–based device has KITL enabled, you can also view the log files in the Platform Builder debug output window, as shown in Figure 9.

    Figure 9.

Running the NDIS Two-Card Test

The "Preparing Setup" section and Figure 1 earlier in this article described the general setup for both one-card tests and two-card tests. However, the two-card test has additional setup requirements.

Be sure that the test adapter and the support adapter from the test device are connected to the same, isolated hub or switch. You must connect both adapters to an isolated network because the test generates very high traffic. If the adapters are connected to a standard, nonisolated network, the test will slow all other traffic on the network.

In addition to these two adapters, another adapter (VMINI in this example) is required by the CETK client that is running on the test device so that the CETK client can communicate with the CETK server that is running on the Windows XP–based computer. So for this test, you will need three adapters or network interface cards. It is important to note that you must connect the third network adapter to the same network subnet to which the Windows XP–based computer that is running the CETK server is connected. The advantage of using VMINI as the third network card is that you can keep using the same network card for KITL and also as an interface to communicate with the CETK server that is running on the Windows XP–based computer.

You must use a support card to send certain packets of different types to a test adapter so that the protocol driver that is sitting on top of the test adapter can confirm whether it has received those specific packets. Similarly, the support adapter can confirm whether certain packets sent by test adapter are correctly received or not. This way, the send and receive capabilities of test adapter can be tested. Note that you should not use VMINI as a support adapter because VMINI has very limited resources and cannot withstand the stress tests.

In addition, we recommend that you use a 10/100 switch instead of a hub. If you use a hub, traffic from other network cards can slow the test.

Running the NDIS two-card test on one computer

To run the NDIS two-card test on one computer:

  1. Download the image to the CEPC.

  2. Start the CETK server on the Windows XP–based computer. For example, if you have Windows CE .NET 4.2 installed on your computer, click Start, point to All Programs, point to Microsoft Windows CE .NET 4.2, and then click Windows CE .NET 4.2 Test Kit.

  3. After the image has started on the CEPC, use Platform Builder on the Windows-based desktop computer and run the following command at a command prompt:

    s clientside /n=comp1 /p=5555
    

    The Clientside.exe program on the CEPC will connect to CETK server that is running on the Windows XP–based computer over VMINI. The CETK server will then show CEPC WindowsCE (x86) as the client.

  4. Now the CETK server is running on the Windows XP–based computer and Clientside.exe (the CETK client) is running on the CEPC. Expand the WindowsCE (x86) test node, expand Ethernet, select Two-Card Network Card Miniport Driver Test, right-click Two-Card Network Card Miniport Driver Test, and then click Edit Command Line.

    Figure 10 shows the graphical user interface (GUI) of the CETK server for this step. The Two-Card Network Card Miniport Driver Test check box is the same whether the NDIS two-card test is on one computer or two computers.

    Figure 10.

  5. In the Edit Command Line dialog box, modify the command line in the Command line box to the following command, and then click OK:

    tux –o –d ndt_2c -c "-t NE20001 –s PCI\NE20001"
    

    In this command:

    • NE20001 is the instance of the NE2000-compatible PCMCIA card on the miniport driver that you want to test (called the "test Windows CE .NET–based device" in this article).
    • PCI\NE20001 is the instance of the PCI NE2000 card that you used as the support card in the support device.
  6. Expand Ethernet, select Two-Card Network Card Miniport Driver Test, right-click Two-Card Network Card Miniport Driver Test, and then click Quick Start. This action starts the test, and you can see that the test is in progress. The test will take approximately 15 to 30 minutes to finish, depending on the CPU that you selected. The test is a suite that contains six individual tests. The last two individual tests are Send/Receive stress tests and take the most time to complete.

  7. The CETK server will indicate when the test is complete and whether the test has passed or failed. To view the test results, expand Ethernet, select Two-Card Network Card Miniport Driver Test, right-click Two-Card Network Card Miniport Driver Test, and then click View Results.

Running the NDIS two-card test on two computers

The NDIS two-card test on two computers performs the same tests that the NDIS two–card test performs on one computer.

An NDIS two-card test needs three interfaces. One interface (this can be VMINI1) is required for the CETK, and the other two interfaces (the primary test card and the support card) are required to complete the test. If you have two interfaces on a test device, you should perform an NDIS two-card test on two computers.

The advantage of a two-card test on two computers is that you do not need a third adapter on Windows CE.NET–based device used for the test.

Figure 11 shows the configuration for the NDIS two-card test on two computers.

Figure 11.

The role of the support card in an NDIS two-card test is now moved to the support card that is in the support device. The support device can be any Windows CE .NET–based device, and it does not need to be the same device that you used for the test device. Also, the support adapter that is in the support device can be any type of adapter; it does not need to be the same adapter that you used for the test adapter. However, the support device must have two interfaces, just like the test device. VMINI1 in the support device is used to communicate with the test that is running on the test device.

Important note   You should not run Clientside.exe on the support device. Clientside.exe should run on only the test device. Nevertheless, the image for the support device should also include support for the CETK.

The test that is running on the test adapter coordinates with Ndtserver.exe (NDIS test server) that is running on the support device. The test uses the support card that is in the support device in the same way that it uses the support card that is in the test device.

The support device can have any image or the same image as the test device, depending on the CPU selected. However, in this example, you will consider the CEPC that is being used as the support device, and you will use the same image for the test device.

Note   If you cannot find Ndtserver.exe for the second support Windows CE .NET–based device, you may have to build it. The source code for Ndtserver.exe is under private\test\net\ndis\NDT\server.

To run the NDIS two-card test on two computers:

Note   In this example, assume that you are again testing an NE2000 miniport driver, and that you are using an NE2000-compatible PCMCIA card. The support card that is in the support device is an NE2000-compatible PCI card. However, the following steps apply only to the test device.

  1. Download the image to the CEPC.

  2. Start the CETK server on the Windows XP–based computer. For example, if you have Windows CE .NET 4.2 installed on your computer, click Start, point to All Programs, point to Microsoft Windows CE .NET 4.2, and then click Windows CE .NET 4.2 Test Kit.

  3. After the image has started on the CEPC, use Platform Builder on the Windows-based desktop computer and run the following command at a command prompt:

    s clientside /n=comp1 /p=5555
    

    The Clientside.exe program on the CEPC will connect to CETK server that is running on the Windows XP–based computer over VMINI. The CETK server will then show CEPC WindowsCE (x86) as the client.

  4. Download the image to the support device. Using Platform Builder for the support device, run the following command:

    >s ndtserver
    
  5. Determine the IP address of VMINI on the support device. For example, the IP address may be 10.10.0.3. You should get a successful response if you use the ping command on the test device for 10.10.0.3.

  6. The CETK server is now running on the Windows XP–based computer, and Clientside.exe (the CETK client) is running on the test device. Expand Ethernet, select Two-Card Network Card Miniport Driver Test in the CETK server application that is running on the Windows XP–based computer, right-click Two-Card Network Card Miniport Driver Test, and then click Edit Command Line.

  7. In the Edit Command Line dialog box, type the following command in the Command line box, and then click OK:

    tux -o -d ndt_2c -c "-t NE20001 –s PCI\NE20001@10.10.0.3" 
    

    In this command:

    • NE20001 is the instance of the NE2000-compatible PCMCIA card on the test Windows CE .NET–based device (the miniport driver that you want to test).
    • PCI\NE20001 is the instance of the PCI NE2000 card that you used as the support card in the support device.
    • 10.10.0.3 is the IP address of VMINI interface on the support device.
  8. Expand Ethernet, select Two-Card Network Card Miniport Driver Test, right-click Two-Card Network Card Miniport Driver Test, and then click Quick start. This action starts the test, and you can see that the test is in progress. The test will take approximately 15 to 30 minutes to finish, depending on the platform and CPU. The test is a suite that contains six individual tests. The last two individual tests are Send/Receive stress tests and will take the most time to complete.

  9. The CETK server will indicate when the test is complete and whether the test has passed or failed. To view the test results, expand Ethernet, select Two-Card Network Card Miniport Driver Test, right-click Two-Card Network Card Miniport Driver Test, and then click View Results.

NDIS Test on Miniport Drivers for Onboard Ethernet Devices

In this example, you will use a Windows CE .NET–based device or board that has an onboard Ethernet or port, and you will test the miniport driver for this onboard Ethernet port. During development, this Ethernet port is used as an EDBG port for downloading the image and for KITL. (Note that KITL is used to control the device.)

If you use this Ethernet port for KITL, the port will not be shown when the Windows CE .NET–based device is running, and the kernel will use it internally. At the most, you can add support for VMINI, but VMINI is not a production-quality driver; it is provided only for development purposes. Also, testing VMINI will not test the miniport driver for that onboard Ethernet port, but it will test the EDBG driver for the Ethernet port.

The only option that is available is not to let the onboard Ethernet port be used for KITL. If the Windows CE .NET–based device or board does not support any other means for KITL (for example, Serial/RNDIS [Remote NDIS] for KITL), you must disable KITL. If you disable KITL, you can see and test the Ethernet port after the Windows CE .NET–based device is turned on. The sections that follow describe how to run the test without using KITL.

Preparing the Hardware

Because the test Ethernet port or adapter (the miniport driver that you want to test) is onboard, use the same board or Windows CE .NET–based device as a platform.

Preparing the Image

Open Platform Builder, and then create the platform that is pertinent to the test Windows CE .NET–based device. For more information about how to choose certain components to make the required image, see the Platform Builder Help documentation. The created platform should undergo following changes:

  • Add support for Windows CETK into the platform.
  • Disable KITL and the debugger for the platform.

To disable KITL and the debugger for a platform:

  1. In the Platform Builder integrated development environment (IDE), on the Platform menu, click Settings.

  2. Click the Build Options tab.

  3. Clear the Enable KITL check box, which will also clear the Enable CE Target Control Support check box.

  4. Clear the Enable Kernel Debugger check box, and then click OK.

    Figure 12.

  5. Copy the following test binaries from the Platform Builder installation (for example, C:\Program Files\Windows CE Platform Builder\4.20\cepb\wcetk\ddtk\x86) to the release folder for your platform:

    Tux.exe, tux.pdb, kato.dll, kato.pdb, tooltalk.dll, tooltalk.pdb, 
    ndt.dll, ndt.pdb, ndt_1c.dll, ndt_1c.pdb, ndt_2c.dll, ndt_2c.pdb, 
    clientside.exe, clientside.pdb, netall.dll, netall.pdb, 
    ndtserver.exe, ndtserver.pdb. 
    

    Note   If you do not have Ndtserver.exe, you may have to build it. The source code for Ndtserver.exe is under private\test\net\ndis\NDT\server.

  6. Modify any .bib file (for example, the Project.bib file). In all of the .bib files, add the following entries in the MODULES section:

    MODULES

    Name Path Memory Type
    tux.exe $(_FLATRELEASEDIR)\tux.exe NKS
    kato.dll $(_FLATRELEASEDIR)\kato.dll NKS
    tooltalk.dll $(_FLATRELEASEDIR)\tooltalk.dll NKS
    ndt.dll $(_FLATRELEASEDIR)\ndt.dll NKS
    ndt_1c.dll $(_FLATRELEASEDIR)\ndt_1c.dll NKS
    ndt_2c.dll $(_FLATRELEASEDIR)\ndt_2c.dll NKS
    clientside.exe $(_FLATRELEASEDIR)\clientside.exe NKS
    netall.dll $(_FLATRELEASEDIR)\netall.dll NKS
    ndtserver.exe $(_FLATRELEASEDIR)\ndtserver.exe NKS
  7. In Platform Builder, click the Build menu, and then click Make image to build the Nk.bin file.

    The following figure shows a Windows CE .NET–based device with only one onboard Ethernet port.

    Figure 13.

The test Windows CE .NET–based device in this example has only one onboard Ethernet port. The device supports KITL over the same Ethernet port. When this Windows CE .NET–based device is used in production, it will use the same Ethernet port that any other production-quality Ethernet port would use to gain access to the network.

In this example, assume further that the test Windows CE .NET–based device does not have any other onboard Ethernet port, PCI slot, PCMCIA slot, CompactFlash slot, or CardBus slot, and that the device does not have any support for the RNDIS host or function. Because of these assumptions, the only way for the device to gain access to the network is through the onboard Ethernet port (the miniport driver that you want to test).

The support Windows CE .NET–based device is the same make and model as the test Windows CE .NET–based device. This device can be any device running Windows CE .NET—even a CEPC device. The support Windows CE .NET–based device is required when you run the NDIS two-card test on two computers.

Running the NDIS One-Card Test on the Onboard Ethernet Port

To run the NDIS one-card test on the onboard Ethernet port:

  1. Download and flash the image in the flash memory of the test Windows CE .NET–based device, and then start the test Windows CE .NET–based device without using the Platform Builder connection (do not use KITL or a debugger).

    Note   If the test Windows CE .NET–based device does not have flash memory but its boot loader can download the image by using an onboard Ethernet port and then start the device, you can use Platform Builder to download the image, but not for KITL.

  2. Use an input device (for example, an external keyboard, an input panel, a stylus, or a mouse) to run Clientside.exe on the device, and then connect to the CETK server that is running on a Windows XP–based computer. For example, you can use a keyboard to open a command prompt on the Windows CE .NET–based device, and then run the following command (where the CETK server is running on the comp1 Windows XP–based computer on the default port, 5555):

    clientside /n=comp1 /p=5555
    

    For more information about how to run Clientside.exe and connect to the CETK server, see the CETK Help documentation.

  3. After you connect to the CETK server, the CETK server displays the connection. Run the one-card test with the -nounbind option. The command that is associated with the one-card test is the following command, where *adapter_instance_name*is the name of the adapter:

    tux –o –d ndt_1c.dll –c "-t adapter_instance_name -nounbind"
    

    For example, if you have the RTL8139 chipset Ethernet device on board and it is displayed as RTL81391, the preceding command should be the following command:

    tux –o –d ndt_1c.dll –c "-t RTL81391 –nounbind"
    

    Note that the CETK connection will be disconnected after you start the test if you do not use the -nounbind option.

Running the NDIS Two-Card Test on Two Computers on the Onboard Ethernet Port

To run the NDIS two-card test on two computers on the onboard Ethernet port:

  1. Assume that your support Windows CE .NET–based device and the test Windows CE .NET–based device are the same type of device. Download and flash the image in the flash memory of the test Windows CE .NET–based device, and then start the test Windows CE .NET–based device without using the Platform Builder connection (do not use KITL or a debugger).

    Note   If the test Windows CE .NET–based device does not have flash memory but its boot loader can download the image by using an onboard Ethernet port and then start the device, you can use Platform Builder to download the image, but not for KITL. Similarly, start the support Windows CE .NET–based device.

  2. Use an input device (for example, an external keyboard, an input panel, a stylus, or a mouse) to run Clientside.exe on the test Windows CE .NET–based device, and then connect to the CETK server that is running on a Windows XP–based computer. For example, you can use a keyboard to open a command prompt on the Windows CE .NET–based device, and then run the following command (where the CETK server is running on the comp1 Windows XP–based computer on the default port, 5555):

    clientside /n=comp1 /p=5555
    

    For more information about how to run Clientside.exe and connect to the CETK server, see the CETK Help documentation.

  3. After the connection is displayed, run the following command on the support Windows CE .NET–based device by using an input device:

    ndtserver
    
  4. Obtain the IP address of the support adapter on the support Windows CE .NET–based device. If, for example, the IP address is 10.10.0.3, you will receive a successful response if you use the ping command for 10.10.0.3 on the Windows XP–based computer.

  5. Using the CETK server GUI on the Windows XP–based computer, expand Ethernet, select Two-Card Network Card Miniport Driver Test, right-click Two-Card Network Card Miniport Driver Test, and then click Edit command line.

  6. In the dialog box that appears, change the command in the Command line box to the following command:

    tux –o –d ndt_2c.dll –c "-t test_adapter_name -s 
    support_adapter_name@IPv4_address_of_the_support_adapter -nounbind"
    

    For example, if you have an RTL8139 chipset Ethernet device on board on both the test Windows CE .NET–based device and the support Windows CE .NET–based device, and the Ethernet device is displayed as RTL81391, the preceding command should be:

    tux –o –d ndt_2c.dll –c "-t RTL81391 –s RTL81391@10.10.0.3 –
    nounbind"
    

    Note that 10.10.0.3 in this example command is the IP address of the support adapter for the support Windows CE .NET–based device. Note also that the CETK connection will be disconnected after you start the test if you do not use the -nounbind option.

Result

In this example, the "2c_MulticastReceive" subtest from the two-card network test suite will fail, which is expected. For more information about that subtest or about the two-card network test suite, please refer to the CETK Help documentation.

Running the NDIS Two-Card Test on the Windows CE .NET–Based Device with One Onboard Ethernet Port and Support for Another Interface

The test Windows CE .NET–based device in this example has an IABASE image (it has a screen or it is connected to a monitor), one onboard Ethernet port, and support for another pluggable Ethernet interface (CompactFlash, PCMCIA, CardBus, or PCI card).

The test Windows CE .NET–based device supports KITL only over the onboard Ethernet port. In addition to the Ethernet port, the test Windows CE .NET–based device has a PCI, CompactFlash, PCMCIA, or CardBus slot for the Ethernet card. This example is easier than the example in the previous section, where there was only one onboard Ethernet port available on the test Windows CE .NET–based device. In this example, the support Windows CE .NET–based device is the same type of device as the test Windows CE .NET–based device.

Onboard Ethernet ports for both the test Windows CE .NET–based device and the support Windows CE .NET–based device are connected to an isolated hub or switch. The pluggable Ethernet interface (CompactFlash, PCMCIA, CardBus, or PCI card) from each test and support Windows CE .NET–based device functions as a support interface and is connected to a nonisolated, public hub or switch.

The following figure shows the test Windows CE .NET–based device with only one onboard Ethernet port and the support Windows CE .NET–based device started with the same images (with no KITL or debugger support). The support Windows CE .NET–based device is not required for a one-card test, but it is required for a two-card test on two computers.

Figure 14.

Running the NDIS One-Card Test on the Onboard Ethernet Port with a Support Interface

To run the NDIS one-card test on the onboard Ethernet port with a support interface:

  1. Disconnect the onboard Ethernet port on the test Windows CE .NET–based device from the isolated network, connect it to the public network, download and flash the image (with no KITL and debugger support) in the flash memory of the test Windows CE .NET–based device, and then start the test Windows CE .NET–based device without using the Platform Builder connection (do not use KITL or a debugger).

    Note   If the test Windows CE .NET–based device does not have flash memory, but its boot loader can download the image by using an onboard Ethernet port and then start the device, you can use Platform Builder to download the image, but not for KITL. After the test Windows CE .NET based device has started, connect the onboard Ethernet port on the test Windows CE .NET–based device back to the isolated network.

  2. Use an input device (for example, an external keyboard, an input panel, a stylus, or a mouse) to run Clientside.exe on the test Windows CE .NET–based device, and then connect to the CETK server that is running on a Windows XP–based computer. For example, you can use a keyboard to open a command prompt on the Windows CE .NET–based device, and then run the following command (where the CETK server is running on the comp1 Windows XP–based computer on the default port, 5555):

    clientside /n=comp1 /p=5555
    

    For more information about how to run Clientside.exe and connect to the CETK server, see the CETK Help documentation.

    Because the pluggable support interface is on a public network, Clientside.exe will use this interface to communicate with the CETK server running on the Windows XP–based computer.

  3. After the CETK server displays the connection, run a one-card test. The command that is associated with the one-card test is the following command, where *adapter_instance_name*is the name of the adapter:

    tux –o –d ndt_1c.dll –c "-t adapter_instance_name"
    

    For example, if you have the RTL8139 chipset Ethernet device on board and it is displayed as RTL81391, the preceding command should be the following command:

    tux –o –d ndt_1c.dll –c "-t RTL81391"
    

    Important Note   Here, you are not using the –nounbind option because you have two interfaces (one for the onboard Ethernet port and one support interface) on the test Windows CE .NET–based device.

Running the NDIS Two-Card Test on the Onboard Ethernet Port with a Support Interface

To run the NDIS two-card test on the onboard Ethernet port with a support interface:

  1. Disconnect the onboard Ethernet port on the test Windows CE .NET–based device from the isolated network, connect it to the public network, download and flash the image (with no KITL and debugger support) in the flash memory of the test Windows CE .NET–based device, and then start the test Windows CE .NET–based device without using the Platform Builder connection (do not use KITL or a debugger).

    Note   If the test Windows CE .NET–based device does not have flash memory, but its boot loader can download the image by using an onboard Ethernet port and then start the device, you can use Platform Builder to download the image, but not for KITL. After the test Windows CE .NET based device has started, connect the onboard Ethernet port on the test Windows CE .NET–based device back to the isolated network.

  2. Repeat step 1 for the support Windows CE .NET–based device, and then start that device. After the support Windows CE .NET–based device has started, connect the onboard Ethernet port back to the isolated network.

  3. Use an input device (for example, an external keyboard, an input panel, a stylus, or a mouse) to run Clientside.exe on the test Windows CE .NET–based device, and then connect to the CETK server that is running on a Windows XP–based computer. For example, you can use a keyboard to open a command prompt on the Windows CE .NET–based device, and then run the following command (where the CETK server is running on the comp1 Windows XP–based computer on the default port, 5555):

    clientside /n=comp1 /p=5555
    

    For more information about how to run Clientside.exe and connect to the CETK server, see the CETK Help documentation.

    Because the pluggable support interface is on a public network, Clientside.exe will use this interface to communicate with the CETK server running on the Windows XP–based computer.

  4. After the CETK server displays the connection, run the following command on the support Windows CE .NET–based device by using an input device:

    Ndtserver
    
  5. Obtain the IP address of the pluggable interface on the support Windows CE .NET–based device. If, for example, the IP address is 10.10.0.3, you will receive a successful response if you use the ping command for 10.10.0.3 on the Windows XP–based computer.

  6. Using the CETK server GUI on the Windows XP–based computer, expand Ethernet, select Two-Card Network Card Miniport Driver Test, right-click Two-Card Network Card Miniport Driver Test, and then click Edit command line.

  7. In the dialog box that appears, change the command in the Command line box to the following:

    tux –o –d ndt_2c.dll –c "-t test_adapter_name -s 
    support_adapter_name@IPv4_address_of_the_support_adapter -nounbind"
    

    For example, if you have an RTL8139 chipset Ethernet device on board on both the test Windows CE .NET–based device and the support Windows CE .NET–based device, and the Ethernet device is displayed as RTL81391, the preceding command should be:

    tux –o –d ndt_2c.dll –c "-t RTL81391 –s RTL81391@10.10.0.3"
    

    Note that 10.10.0.3 in this example command is the IP address of the support adapter for the support Windows CE .NET–based device.

    Important Note   Here, you are not using the –nounbind option because you have two interfaces (one for the onboard Ethernet port and one support interface) on the test Windows CE .NET–based device.

NDIS Test on Miniport Drivers for Wireless Devices

The only difference between testing the miniport driver on an 802.3 Ethernet device and testing the driver on an 802.11 wireless device is that a wireless device must be connected to either an ad-hoc network or an infrastructure network (an access point).

Figure 15 shows the configuration for testing a miniport driver on a wireless device.

Figure 15.

Setting Up a Wireless Network

The test Windows CE .NET–based device in this example has a wireless PCMCIA adapter, and the support Windows CE .NET–based device is the same type of device as the test Windows CE .NET–based device. The support Windows CE .NET–based device also has the same type (although it does not need to be the same type) of wireless PCMCIA adapter.

To run the test on a wireless device, we recommend that you configure your wireless device in different modes and run the test in each mode. For example, you can configure your wireless device to connect to an ad-hoc network and can run the test. Then, you can configure your wireless device to connect to an infrastructure network and can run the test again.

Note   We recommend that you use appropriate wireless security while running these tests, and we are not responsible for any misuse of your network by outsiders because of running these tests. Please refer to the wireless security guidelines provided by the wireless adapter manufacturer or the wireless router manufacturer.

To configure your device to connect to an ad-hoc network:

  1. Load the appropriate IABASE image on the test Windows CE .NET–based device.

    Note   This image needs to have support for an 802.11 wireless network. For more information, see the Platform Builder Help documentation.

    Load the similar image on the support Windows CE .NET–based device.

  2. Using the GUI on the support Windows CE .NET–based device, start an ad-hoc network and assume that the service set identifier (SSID) is "NDIS_TEST." (Note that one can give any name as an SSID.) Use the wireless security recommended by the vendor or manufacturer of the wireless adapter.

  3. Using the GUI on the test Windows CE .NET device, configure the wireless client to connect to NDIS_TEST.

  4. Because this is an ad-hoc network, you will get the 169.254.xxx.xxx IP address (the autoconfig IP address) on the wireless interface on both of the devices. Use this IP address and the ping command to ping one device from the other device.

To configure your device to connect to an infrastructure network:

  1. Load the appropriate IABASE image on the test Windows CE .NET–based device.

    Note   This image needs to have support for an 802.11 wireless network. For more information, see the Platform Builder Help documentation.

    Load the similar image on the support Windows CE .NET–based device.

  2. Set up an access point, residential gateway, or wireless router and configure it to transmit a certain SSID. Use the wireless security recommended by the hardware vendor or manufacturer.

  3. Using the GUI on the test Windows CE .NET–based device, configure the wireless client to connect to the same infrastructure mode SSID configured in step 2.

  4. Using the GUI on the support Windows CE .NET–based device, configure the wireless client to connect to the same infrastructure mode SSID configured in step 2.

  5. The test Windows CE .NET–based device and the support Windows CE .NET–based device have now connected to the same infrastructure network, and hence wireless interfaces on both of these devices can communicate with each other. Use the ping command to ping one device from the other device.

Running the NDIS Test on a Wireless Device

After setting up wireless interfaces on the test Windows CE .NET–based device and on the support Windows CE .NET–based device, either in ad-hoc mode or in infrastructure mode, the procedures that you use to run a one-card test and a two-card test are the same procedures used for Ethernet devices. For detailed information, refer to "Running the NDIS One-Card Test" and "Running the NDIS Two-Card Test on Two Computers" earlier in this article.

For additional resources, see the Windows CE .NET website.