このファイルへのすべてのアクセスを処理できるファイルの作成方法。私のプログラムは、このファイルから読み取り、このファイルへのすべての書き込みを受信するすべてのプログラムに要求されたデータを送信できます。
4 に答える
CreateFileMapping / MapViewOfFile を使用して共有メモリ領域を作成する必要があるように思えます。Web や書籍で多くの例を見つけることができます。
質問はかなりあいまいです。
他のアプリケーションが自分のものである場合は、ファイルを使用するのではなく、他のプロセス間通信 (IPC) メカニズムを選択できます。または、一時ファイル (特別な TEMPORARY 属性で作成されたファイル) を使用できます。
他のアプリケーションが自分のものではなく、ファイルがディスク上に存在することを期待している場合は、このファイルを作成するか、仮想ファイル システムとディスクを作成するか、既存のファイル システム上に仮想ファイルを作成する必要があります。仮想ファイル システムを作成するには、カーネル モード ドライバー (ファイルシステム ドライバー) が必要です。既存のディスクに仮想ファイルを作成するには、カーネル モードのファイルシステム フィルター ドライバーが必要です。
カーネル モード ドライバーは作成が難しく、時間がかかり、Windows の内部構造に関する十分な知識が必要です。オプションの 1 つとして、コールバック ファイル システム (CBFS) 製品を使用できます。これにより、ユーザー モードで仮想ファイル システムを作成できます (ドライバーが提供されます)。しかし、CBFS はあなたのタスクにとってやり過ぎになる可能性があります。
したがって、タスクと要件を確認し、他のアプリケーションにデータを提供する別の方法を見つけることをお勧めします。
NTFS ストリーム:
NTFSストリームが代替オプションになる場合があります。
Windows Sysinternalsからの引用:
NTFS ファイル システムは、情報の代替データ ストリームを作成する機能をアプリケーションに提供します 。デフォルトでは、すべてのデータはファイルのメインの名前のないデータ ストリームに保存されますが、構文「file:stream」を使用すると、代替データを読み書きできます ...
ストリーム上のその他の関連リソース:
- ファイル ストリーム(MSDN ページ)
- Streams を使用した C++ コード サンプルは、こちらで提供されています。
- NTFS ストリーム(AuditMyPC.com のエントリ)
- NTFS 代替ストリーム: 何を、いつ、どのように行うか