Share via


Production-Quality Drivers (Windows Embedded CE 6.0)

1/6/2010

Microsoft provides production-quality drivers that adhere to best practices for developing Windows Embedded CE device drivers.

Production-quality drivers generally have these characteristics:

  • Work without modification on the buses for which they were designed.
  • Reduce the amount of customization required for drivers to function on various hardware platforms.
  • Enable all necessary functionality in a specific driver technology.
  • Expose drivers in the Platform Builder Catalog.
  • Use the bus agnostic model when applicable.
    For more information, see Bus Agnostic Drivers.
  • Use the _countof macro, defined in stdlib.h as of Windows Embedded CE 6.0, to compute the number of elements in an array. Using the _countof macro adds consistency and provides stronger type checking.
  • Comment source code.
  • Use all Windows Embedded CE capabilities when possible.
    For example, in Windows CE 5.0, driver namespaces, Power Manager IOCTLs, and bus driver interfaces are fully implemented in production-quality drivers. For more information, see Device File Names, Power Management I/O Controls, and Bus Drivers.
  • Have the following architectural improvements:
    • Minimized PDD code to allow easier porting to other hardware platforms.
    • Abstracted resource assignments to the registry when possible.
    • Reusable, platform-independent libraries.
      For more information, see Best Practices for Developing a Device Driver.

Not every driver in Windows Embedded CE is defined as a production-quality driver.

The following tables show the production-quality device drivers, the location of the device driver's sources file under %_WINCEROOT%, and the name of the binary.

Block Drivers

Driver Sources file location Binary

ATAPI PCI/IDE storage block driver

Public\Common\OAK\Drivers\Block\ATAPI\Common

Atapi.dll

USB host mass storage client driver

Public\Common\OAK\Drivers\USB\Class\Storage\Class

Public\Common\OAK\Drivers\USB\Class\Storage\Disk\SCSI2

Usbmsc.dll

Usbdisk6.dll

USB function mass storage driver

Public\Common\OAK\Drivers\USBFN\Class\Storage\Transport\BOT

Usbmsfn.dll

Secure Digital Memory Card driver

Not applicable.

Sdmemory.dll

Display Drivers

Driver Sources file location Binary

ATI Rage XL Expert 98 (Warbird)

Public\Common\OAK\Drivers\Display\RageXL

Ddi_ragexl.DLL

Silicon Motion 3DR (Cougar)

Public\Common\OAK\Drivers\Display\SMI3DR

Ddi_3dr.DLL

MediaQ MQ200

Public\Common\OAK\Drivers\Display\MQ200

Ddi_mq200.DLL

Flat driver for the Intel PXA27x Development Platform

Platform\Common\SRC\SOC\PXA27X_MS_V1\display\PXA27X_LCD

Pxa27x_lcd.DLL

VGA linear (flat) framebuffer driver

Public\Common\OAK\Drivers\Display\VGAFlat

Ddi_flat.DLL

Flat driver for the Samsung S3c2410x LCD controller

Platform\DeviceEmulator\SRC\Drivers\Display\LCD\S4C2410X_LCD

S3c2410x_lcd.dll

Flash Drivers

Driver Sources file location Binary

MirrorBit NOR flash driver

Public\Common\OAK\Drivers\Block\MSFlashFMD\FASL\FASLD

Fasld.dll

SD NAND flash PCI driver

Public\Common\OAK\Drivers\Block\MSFlashFMD\SDNPCI\SDNPCID

Sdnpcid.dll

NOR flash Strataflash

Public\Common\OAK\Drivers\BLOCK\MSFlashFMD\Strata\StrataD

Stratad.dll

SmartMedia NAND flash (SMFLASH) driver

Not applicable.

Smflash.dll

Network Drivers

Driver Sources file location Binary

NE2000-compatible generic Ethernet adapter PCI, PC Card, and ISA driver

Public\Common\OAK\Drivers\NetCard\NE2000

Ne2000.dll

SMS SMSC100FD Ethernet adapter driver for SH4-based hardware platforms

Public\Common\OAK\Drivers\NetCard\SMSC100FD

Smsc100fd.dll

Intel Pro E100BEX Ethernet adapter driver

Public\Common\OAK\Drivers\NetCard\E100BEX

E100bex.dll

Atheros AR6000 Wi-Fi driver for Compact Flash adapter

Public\Common\OAK\Drivers\NetCard\AR6K

AR6K_ndis_cf.dll

Atheros AR6000 Wi-Fi driver for SDIO adapter

Public\Common\OAK\Drivers\NetCard\AR6K

AR6K_ndis_sdio.dll

CISCO Aironet 340/350 PCMCIA WLAN card driver

Not applicable.

Pcx500.dll

Intersil Prism2 WLAN PCMCIA driver

Not applicable.

Islp2nds.dll

Realtek RTL188x 802.11b native driver

Not applicable.

Rtl1880nf.dll

PC Card Drivers

Driver Sources file location Binary

PC Card MDD

Public\Common\OAK\Drivers\PCCard\MDD\MDD_Both

Pcc_serv.dll

Texas Instruments PC Card socket driver for the 12XX, 14XX, and 15XX PC Card controllers

Public\Common\OAK\Drivers\PCCARD\TIPCCard\TIPCCard_Both

Pcc_tipccard.dll

i82365 socket driver

Public\Common\OAK\Drivers\PCCard\I82365

Pcc_i82365.dll

Legacy PC Card driver that allows PCMCIA clients to work with a bus agnostic driver

Public\Common\OAK\Drivers\PCCard\PCMCIA

Pcc_pcm.dll

Power Management

Driver Sources file location Binary

Power Manager PDD

Public\Common\OAK\Drivers\PM\PDD\Common

Public\Common\OAK\Drivers\PM\PDD\Default

Public\Common\OAK\Drivers\PM\PDD\PDA

Pm_pdd_common.dll

Pm_default_pdd.dll

Pm_pda_pdd.dll

Secure Digital Card Drivers

Driver Sources file location Binary

SDIO standard host controller driver based on version 1.0 of the SDA Standard Host Register Specification

Not applicable.

SDHC.dll

SD bus driver that exposes an API for developing SD Memory Card and other SDIO client drivers

Not applicable.

SDBus.dll

Samsung 2410 SDIO host controller driver

Not applicable.

Sdhc_sc2410.dll

PXA27x SD host controller driver for the Intel PXA27x Development Platform

Not applicable.

Sdhc_mainstoneii.dll

Serial Port Drivers

Driver Sources file location Binary

Com16550 serial port driver for 16550 UARTs

Public\Common\OAK\Drivers\Serial\COM16550

Public\Common\OAK\Drivers\Serial\SER16550

Com16550.dll

Ser16550.lib

S3c2410x serial port driver

Platform\DeviceEmulator\Src\Drivers\Serial

Serial.dll

USB function serial client driver

Public\Common\OAK\Drivers\USBFN\Class\Serial

Serialusbfn.dll

USB Function Drivers

Driver Sources file location Binary

Netchip NET2280 USB 2.0 function bus driver

Public\Common\OAK\Drivers\USBFN\Controller\NET2280

Net2280.dll

PXA27x USB function driver for the Intel PXA27x Development Platform

Platform\Common\SRC\SOC\PXA27X_MS_V1\USBFN

Pxa27x_usbfn.dll

Samsung 2410 USB function bus driver

Platform\DeviceEmulator\SRC\Drivers\USB\Function

Sc2410usbfn.dll

USB Host Drivers

Driver Sources file location Binary

EHCI USB 2.0 host controller driver

Public\Common\OAK\Drivers\USB\HCD\USB20\EHCIPDD

Ehci.dll

USB driver interface

Public\Common\OAK\Drivers\USB\USBD

Usbd.dll

Legacy OHCI USB host controller driver

Public\Common\OAK\Drivers\USB\HCD\OHC

Ohci.dll

OHCI USB host controller driver

Public\Common\OAK\Drivers\USB\HCD\OHCD2

Ohci2.dll

UHCI USB host controller driver

Public\Common\OAK\Drivers\USB\HCD\UHC

Uhci.dll

OHCI USB host controller driver for the Intel PXA27x Development Platform

Platform\Common\SRC\SOC\PXA27X_MS_V1\HCD

Pxa27x_ohci.dll

USB Human Input Device (HID) class driver

Public\Common\OAK\Drivers\USB\Class\HID\HIDClass\USBPDD

Usbhid.dll

See Also

Concepts

Device Driver Source Code
Windows Embedded CE Drivers

Other Resources

Best Practices for Developing a Device Driver
Device Driver Libraries
Production-Quality OAL
Sources File