Sample Device Drivers

The examples in this chapter were extracted from a sample device driver for the Orchid Vidiola video capture hardware. This device is similar to a number of capture cards which use the Auravision VxP500 capture and scaling chip. The driver for the Orchid Vidiola implements a subset of the Plug and Play specification.

The Orchid Vidiola sample driver consists of three components. Source files for each component are contained in subdirectories branching from ddk\mmedia\samples\auravis.

Directory Component 16 or 32 Description
DRV AVCapt.drv 16

(some 32-bit flat segments)

The main capture driver which includes the DriverProc entry point
VXD AVVXP500.vxd 32 Plug and play support VxD which includes
AVWIN AVWin.dll 16 A support DLL which is entirely unique to the Auravision driver.

AVCapt.drv is the core capture driver. It is a Ring3 DLL. By convention, capture drivers use the DRV extension rather than DLL.

AVWin.dll is a separate support DLL called by AVCapt.drv. This functionality is separate from AVCapt.drv purely for historical reasons. Most drivers will have only a capture driver (*.drv) and an associated plug and play VxD. Therefore, AVWin.dll will not be described further in this document.

The Orchid Vidiola can only participate in Plug and Play to a limited extent. For example, the base port and IRQ are not software configurable, but must be manually configured by the user via jumpers. For this reason, the sample VxD does not implement the full range of plug and play functionality such as dynamic resource assignment.

Note  The Video for Windows Developers Kit (VFWDK) included sample capture drivers for the Truevision Bravado and Creative Labs Video Blaster. While these drivers did not include PnP capabilities, they are generally simpler than the Vidiola driver and provide another useful reference when developing your own capture driver.