DSP Based Solutions
DSP-based solutions face numerous obstacles when implemented as ISA Plug and Play devices:
- The devices on a DSP based design tend to be dependent on the "parent" DSP device such that code must be present on the DSP for the various register planes to respond properly.
- DSPs are dynamic in nature. However, ISAPNP establishes a device with a static resource set.
- Because of the nature of Plug and Play, separate functions cannot have dependencies on other functions, because ISAPNP does not guarantee initialization order of the enumerated devices. The following statements support this claim:
- Logical devices are, by definition, independent. There is no bus independent method to determine the association of a device node with a parent board.
- Dependent components cannot determine when the supporting DSP initializes or relocates.
- Dependent components do not receive notification when a supporting device is disabled.
The solution to these problems is to include all the resources in a single device function and using the multiple function support in Windows 95 to create the child devices from a subset of the resources. The "multiple function" specification, as described elsewhere in the Windows 95 DDK, allows a parent/child relationship between device nodes.
For an example of multiple function support, please investigate the parent/child relationships established in WAVE.INF for the Media Vision Pro Audio Spectrum 16 cards (device IDs *PNPB00D and *PNPB00E).
An alternative solution is to write a private enumerator for your DSP based device. Please contact the Microsoft Hardware Vendor Relationship Group for details.