Microsoft KB Archive/917528

From BetaArchive Wiki
Knowledge Base


An unexpected exception occurs in the RNDIS driver on an ARMv4 platform that is running Windows CE 5.0

Article ID: 917528

Article Last Modified on 4/4/2007



APPLIES TO

  • Microsoft Windows CE 5.0



SYMPTOMS

When the Remote Network Driver Interface Specification (RNDIS) driver receives a malformed packet on an ARMv4 platform that is running Windows CE 5.0, an unexpected misalignment exception may occur in the driver.

CAUSE

This problem occurs because data alignment is not correctly enforced in the RNDIS driver public code.

RESOLUTION

To resolve the problem, change the Windows CE 5.0 RNDIS driver public code. To do this, follow these steps:

  1. In Platform Builder for Windows CE 5.0, open the rndis.c file.

    Note By default, the RNDIS driver public source code file is located in the following folder:

    %WINCEROOT%\Public\Common\Oak\Drivers\Usbfn\Class\Rndis\Rndismini2

  2. Locate the closing braces at line 1414 and at line 1415.
  3. Insert the following code after the closing brace in line 1414 and before the closing brace in line 1415:

    // Must match PacketAlignmentFactor provided in
    // REMOTE_NDIS_INITIALIZE_CMPLT.
    
    if (((DWORD)pRndisMessage) % 8) 
      break;

    Note This change moves the closing brace from line 1415 to line 1420. This change is at lines 1621-1626 of the Windows CE 6.0 RNDIS source code.

  4. Save the changes.
  5. On the Build OS menu, click Clean Before Building.
  6. On the Build OS menu, click Build and Sysgen.


STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section.

MORE INFORMATION

This problem has been resolved in Windows Embedded CE 6.0.

For more information about how to build a run-time image, visit the following MSDN Web site:

For more information about how to perform a Windows CE 5.0 command-line build, visit the following MSDN Web site:

The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.

Keywords: kbdriver kbcearmv4 kbtshoot kbcode kbexpertiseinter kbbug KB917528