Previous Next

AVStream Descriptors

An AVStream minidriver describes itself and the filter types it supports by providing nested descriptor structures in the call to KsInitializeDriver. Each key component — the device, the filter factory, and the pin factory — has an associated descriptor.

The main descriptor for an AVStream minidriver is the device descriptor, KSDEVICE_DESCRIPTOR. This structure specifies how many filter types the minidriver exposes, where to find descriptors for each of these filter types, and where to find the relevant device dispatch table. The FilterDescriptors entry in the device descriptor points to a table of pointers to filter descriptors, one for each filter type the minidriver exposes.

A KSFILTER_DESCRIPTOR indicates how many pin types the filter supports, where to find descriptors for them, the KS categories the filter is to be registered under, and the topology of the filter. Inside each filter descriptor, the minidriver provides a table of pin descriptors that describe each pin type present on the filter.

A KSPIN_DESCRIPTOR_EX tells AVStream what interfaces, mediums, and data formats a specific pin supports.

Typically, AVStream minidrivers lay out static descriptor tables in their source and call KsInitializeDriver to perform the setup work. For more information on initializing your driver, see Initializing an AVStream Minidriver.

There are other types of descriptors as well, such as the node descriptor KSNODE_DESCRIPTOR that describes a given topology node.

The dispatch table is common to each of the three main descriptor types. See AVStream Dispatch Tables.