ドライバー(デバイスドライバー)とドライバースタックの違いは何ですか?私は人々が「ドライバースタック」について話しているのを聞き続けていますが、これまで実際に聞いたことがありません...ありがとう!
2 に答える
ドライバーは...まあ...ドライバーです。
ドライバースタックとは、ドライバーが相互に接続され、それぞれがチェーンにビットを追加することです。たとえば、ビデオカードのドライバーを使用するOpenGLまたはDirectXドライバーは、PCI ExpressまたはAGPまたはその他のドライバーを使用して、リソースを設定し、ピクセルなどをプッシュします。または、もちろん通信するためにUSBドライバーを使用する必要があるUSBデバイスのドライバー。
技術的には、1つのドライバーで構成される「スタック」を作成することは可能ですが、「スタック」と言う場合、ほとんどの場合、複数のドライバーを意味します。または、彼らは彼らが話していることを知っているように聞こえようとしているだけです。
ドライバースタックとは、ドライバーの理論上の垂直チェーンを指し、各ドライバーは、ハードウェアからユーザーコードまで、またはユーザーコードからハードウェアまでのラインで特定のジョブを実行します。
Windows OSでは、HWへのメッセージ(データを含む)はIRP(IO要求パケット)でモデル化され、この行を一方の側からもう一方の側に通過し、その途中で各ドライバーがメッセージを処理して操作を実行します。
理解しやすい例として、「関数ドライバー」と呼ばれるWindowsのメインドライバーがあります。何らかの理由で、その上に「フィルタードライバー」を配置して、データが到達する前にユーザーモードからデータを変更するなどのマイナーな作業を行います。あなたのメインドライバー。不要な、または変更できない動作中のドライバーが既にある場合は、これが必要になることがあります。
Windowsドライバースタックでこのアッセイを参照してください: https ://docs.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/driver-stacks