SunOS 4 リリースでは、特定のドライバは ioctl() 要求を行う前は STREAMS ドライバであったということを知っておく必要があります。
STREAMS 以外のドライバについては、次のように直接 ioctl() 要求ができます。
ioctl(fd, DRIVER_IOCTL, arg); |
STREAMS ドライバについては、次のように strioctl 構造を設定した後で使用しなければなりません。
ioctl(fd, I_STR, &strioctl); |
ドライバが STREAMS ベースであったかどうかを判定する簡単な方法はありませんでした。現在では、ストリームヘッドに対する認識されない ioctl() はドライバに渡されるので、ドライバが STREAMS ベースであったかどうかを知る必要がなくなりました。
特に透過的 ioctl() をサポートするため、新しいメッセージタイプが Solaris 7 リリースに追加されました。現在、カーネルとの間のユーザデータの転送をストリームヘッドに通知するための「コピーイン」 および「コピーアウト」 メッセージがあります。
STREAMS ドライバを書く詳細については、『STREAMS Programming Guide』を参照してください。