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.