DelphiアプリケーションとWindows NTシステムドライバーの間の通信
-
29-09-2019 - |
質問
私は非常にシンプルなドライバーを構築しようとしています。その唯一の目的は、「pssetcreateprocessnotifyRoutine」を登録し、カーネルから受信されたコールバックで、Proccessが開始および停止されていることをWin32アプリケーションに通知することです。
「driverentry」と「driverunload」でこのようなシンプルなドライバーを構築し、DDKでコンパイルする方法しか知っていません。しかし、実際にコミュニケーションを実装する方法がわかりません。私はそれがioctlで行うことができることを知っています。しかし、それを超えて私は暗闇の中にいます。 Delphiでそれを行う方法の簡単な例が見つかりません。私はそれができることだけを知っています。
だから私が探しているのは、それを行う方法やイベントのより良いイベントについてのいくつかのシンプルで理解できるチュートリアルです。たぶん、コミュニケーションの他の方法もあります。
どんなヘルプにも適用されます。
解決
デルファイであろうとなかろうとは関係ありません。関数deviceiocontrolを使用する必要があります。読む MSDNの記事 それについて。
要するに、いくつかを選択する必要があります iOCTLコード 利用可能なセットから。次に、これらのコードのいずれかを使用してdeviceiocontrolを呼び出し、いくつかのデータを渡し、ドライバーではその要求を処理して他の何かを返します。
また、ユーザーモードでReadFileまたはWriteFileを呼び出すことによって生成されたものなど、標準のiOCTLを処理することもできます。
「Delphiでそれを行う方法」を探してはいけません。チュートリアルを探してください。言語に関係なく、それらはすべて同じです。それは純粋なWin32/ネイティブAPIのものです。 これが1つです たとえば、グーグルで検索しました。