You are correct, the driver does not know (or care) whether the thing talking to it is a WASAPI client in exclusive mode, or is the WASAPI shared-mode audio engine (which is itself just a WASAPI client in exclusive mode.) When you say your driver supports 24-bit, do you mean 24-bit in 24-bit containers, or 24-bit in 32-bit containers? What values are you passing for WAVEFORMATEX.wBitsPerSample and WAVEFORMATEXTENSIBLE.Samples.wValidBitsPerSample?