Er hm nevermind, that conclusion isn't quite right. readProcess and writeProcess check if m_pStream is valid, which is only non-NULL if the device is open.

I guess there is a built-in assumption that if the input channelCount is > 0 then the input FIFO is non-NULL and that if the output channelCount is > 0 the output FIFO is non-NULL.