んが、このような機能は、Windowsに組み込まれていないが、それはティーのようなカーネルモードのデバイスドライバを書くために、原理的には可能なはずです。もちろん、は基本的にと同じ方法で、ユーザーモードの実装と同じように動作します。ソースからデータを受け取り、宛先に書き込みます。あなたは、より効率的な読み込み操作を発行するのではなく、teeデバイスに送信される出力としてデータを受け取ることができます。ユーザー/カーネルモードの移行を避けることもできますが、それでもわかりませんどのくらいのパフォーマンスを改善するか
私の推測では、それはおそらく労力価値がないだろうが、おそらくエッジケースがあるということです。
それは疑似ハンドルではなく、本当のハンドルを使用していますように私は、Windowsの古いバージョンのI/Oも、カーネルドライバがコンソールに対処することができたか否かはわかりません。しかし、コンソールI/Oが遅いので、いずれかのエンドポイントがコンソールであれば、ユーザーモードの実装にとどまることもあります。このシナリオではボトルネックにはなりません。
スプライス状カーネルモードデバイスドライバは、また、可能であるべきです。これはおそらく、わずかに異なるAPIを使用していても、ユーザーモードのバージョンとまったく同じ方法で実装されるでしょう。いずれの場合も
、カーネルモードドライバを使用すると、おそらく、それが簡単に効率的に異なるプロセスからの同時ティーおよび/またはスプライスの多くを処理するためになるだろう。ユーザーモードでは、スレッドごとに別々のスレッド、または個別のプロセスで処理する可能性があります。
「Unix」と「Linux」が混乱していると思います。 ['tee(2)'](http://linux.die.net/man/2/tee)と['splice(2)'](http://linux.die.net/man/2/)スプライス)システムコールはLinux固有のもので、他のUnix版では利用できません。たとえば、Mac OS Xには、マニュアルのセクション2またはセクション3(システムコールまたはライブラリ関数)に 'tee 'も' splice'もありません。通常の 'read'、' write'、 'open'、' close'システムコールで 'tee'(コマンド)を実装します。それについては何も面白くない。それらの、またはそれらの直接のアナログは、Windows上でうまく動作します。 –
OKコメントに基づいて質問を更新しました。私はシステムコールの実例であるので、私はそのコマンドについて言及しました。 – twinlakes