DirectShow is a component-based multimedia architecture that has been part of Windows since 1996. It provides playback of audio and video data (including MPEG and DVD) as well as recording and editing services.
For articles explaining details of DirectShow, see the DirectShow pages.
For helpful articles including sample code, see How To... and Articles. See here for more information on DirectShow support for the MPEG-4 file format. DirectShow is also supported on Windows Mobile, and you can download tools and filters here.
The Kernel Streaming architecture (WDM Streaming) implements a DirectShow-compatible component model for WDM device drivers. It has been part of Windows since Windows 98 and Windows 2000. It allows drivers to negotiate media types and buffer allocators and exchange timestamped samples between pins in kernel-mode in just the same way as DirectShow filters do, although there are minor differences such as the behaviour of the clock. A user-mode proxy filter represents these filters in a DirectShow graph, which ensures that the data is transferred to and from user mode if necessary and converts between the kernel-mode and user-mode interfaces. If two proxy filters are connected together, they will arrange for the data to pass directly in kernel mode.
Most KS drivers use the AVStream class driver, although the older audio port class driver is still used for audio devices and the stream class driver is used for older video capture drivers. Very few drivers have been written to KS directly without using one of these class driver / minidriver models.