
EMB432 Developing Bus Agnostic Drivers for Windows CE David G.Heil Chief Engineer Solutions Division CalAmp Corporation Microsoft MEDC Mobile Embedded DevCon 2005
EMB432 Developing Bus Agnostic Drivers for Windows CE David G. Heil Chief Engineer Solutions Division CalAmp Corporation

Microsoft MEDC Mobile Embedded DevCon 2005 May9-12,2005 Las Vegas Microsoft

Agnostic Doubtful or noncommittal Uncertain of all claims to knowledge
Agnostic Doubtful or noncommittal Uncertain of all claims to knowledge

Bus A vehicle carrying many passengers; used for public transport An electrical conductor that makes a common connection between several circuits
Bus A vehicle carrying many passengers; used for public transport An electrical conductor that makes a common connection between several circuits

Driver The operator of a motor vehicle A program that determines how a computer will communicate with a peripheral device
Driver The operator of a motor vehicle A program that determines how a computer will communicate with a peripheral device

Bus Agnostic Driver An operator of a vehicle carrying many passengers that has commitment issues A program that determines how a computer will communicate with a peripheral device over a common electrical connection that makes no claims to knowledge
Bus Agnostic Driver An operator of a vehicle carrying many passengers that has commitment issues A program that determines how a computer will communicate with a peripheral device over a common electrical connection that makes no claims to knowledge

Bus Agnostic Driver "A bus agnostic driver is a standard driver that is relatively simple to implement and can be shared by various bus implementations for the same hardware chipset."- Windows CE 5.0 Help
Bus Agnostic Driver “A bus agnostic driver is a standard driver that is relatively simple to implement and can be shared by various bus implementations for the same hardware chipset.” – Windows CE 5.0 Help

Obtain Registry Handle HKEY OpenDeviceKey(LPCTSTR Activekey); This function opens the device registry key specified by the ActiveKey parameter.The caller of OpenDeviceKey is responsible for closing the registry handle it returns
Obtain Registry Handle HKEY OpenDeviceKey( LPCTSTR ActiveKey ); This function opens the device registry key specified by the ActiveKey parameter. The caller of OpenDeviceKey is responsible for closing the registry handle it returns

Obtain Window Information DWORD WINAPI DDKReg GetWindowInfo(HKEY hk, PDDKWINDOWINFO PW.主); This function fills the DDKWINDOWINFO structure with information it reads from the registry. This information includes everything a driver must have to map its memory (and I/O)windows
Obtain Window Information DWORD WINAPI DDKReg_GetWindowInfo( HKEY hk, PDDKWINDOWINFO pwi ); This function fills the DDKWINDOWINFO structure with information it reads from the registry. This information includes everything a driver must have to map its memory (and I/O) windows

Structure Contents DDKWINDOWINFO Bus number that your device was found on Bus type(PCI,PCMCIA,Cardbus,etc...) Array of I/O windows (Each element contains the base address length) Array of memory windows (Each element contains the base address length)
Structure Contents DDKWINDOWINFO Bus number that your device was found on Bus type (PCI, PCMCIA, Cardbus, etc…) Array of I/O windows (Each element contains the base address & length) Array of memory windows (Each element contains the base address & length)