CreateFile()などのWin32ファイルAPIをオーバーライドする方法はありますか?アプリに自分のアプリ専用の仮想ファイルを表示させたいのですが、仮想ファイルは実際には存在しません。
2 に答える
カーネル モード ドライバーを使用する方法 (文書化されている方法) と、そのようなドライバーを使用しない方法 (ハッキーな方法) の 2 つの方法があります。
カーネル モード ドライバーでは、(1) 仮想ファイル システム ドライバーを作成する (または既存のドライバーを使用する) 方法と、(2) ファイルシステム フィルター ドライバーを作成する (または既存のドライバーを使用する) 方法の 2 つがあります。ドライバー開発 = 適切かつ完全に行うための 1 年ほどの作業。ドライバーの開発は、MSDN で完全に文書化されています。
カーネル モード ドライバーがない場合は、API フックを使用する必要があります。Detours、MadCodeHook、Boxedapp SDK などのライブラリがこれを行います (また、これを行うこともできます)。
API トピックのフックは、ここで完全に説明するにはかなり長くなりますが、このトピックに関する優れたCodeProject の記事があります。
システム全体?悪いアイデア。自分のアプリだけの場合は、標準 API を使用せずに自分で実装してください。ただし、セッション間でデータを保持する必要がある場合は、データをどこかに保存する必要があります (ファイル、レジストリなど)。