The streamio operations are a subset of ioctl operations that perform a variety of control functions on streams.
Because these STREAMS operations are a subset of the ioctl operations, they are subject to the errors described there. In addition to those errors, the call fails with the errno global variable set to EINVAL, without processing a control function, if the specified stream is linked below a multiplexor, or if the specified operation is not valid for a stream.
Also, as described in the ioctl operations, STREAMS modules and drivers can detect errors. In this case, the module or driver sends an error message to the stream head containing an error value. This causes subsequent system calls to fail with the errno global variable set to this value.