In Windows 98, a bug in the system graph builder prevents a KSCATEGORY_AUDIO_DEVICE wave-data path from operating correctly unless it contains at least one node. Because PCM pins are either hardware mixing pins (with SUM, volume, and SRC nodes, for example; see KSNODETYPE_SUM, KSNODETYPE_VOLUME, and KSNODETYPE_SRC) or have KMixer (and its nodes) inserted above them, this problem affects non-PCM pins only. In order for your driver to work on Windows 98 SE + QFE, make sure that the data path through a non-PCM pin always has at least one node. When passing AC3 over S/PDIF, for example, you can add a KSNODETYPE_SPDIF_INTERFACE node that implements a property to manipulate the SCMS (serial copy management system) bits.
The earliest QFE package for Windows 98 SE that contains the fix to enable AC3-over-S/PDIF playback is the following:
| QFE number | Executable file | Release date |
|---|---|---|
| WinSE 9724 | 269601USA8.EXE | 8/9/2000 |
All later QFEs for Windows 98 SE also contain this fix.
This QFE installs updated versions of the following audio system files:
The IPortClsVersion interface is not available in this QFE, which means that this interface cannot be used to detect the presence of the QFE.
The best way to determine whether a QFE that contains the WavePci fixes is present is as follows:
The WavePci fixes are present in the following the file version and date of portcls.sys (or in any more recent version):
Another technique is to look in the registry to determine whether a particular QFE has been installed. For example, you can try to access the following registry key to see whether the first QFE for Windows 98 SE is installed:
HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\Updates\W98.SE\UPD\269601
The key exists only if the first QFE is installed. The drawback to this approach is that it does not tell you whether a later QFE, which also includes the WavePci fixes, is installed.