痔になりやすい生活習慣とは?

Daemon Toolsみたいに仮想ドライブを作りたいのですが、
どうすればいいでしょうか?
やはり、それなりのドライバが必要でしょうか?
自分である程度検索してみた結果
FileDisk
http://66.102.7.104/search?q=cache:A3EXzNS77XgJ: …
というものを見つけたのですが、こういうドライバを使えばいいのでしょうか?

あと、Daemon toolsの仕組みはどうなっているのでしょうか?
あれもドライバを利用してやっているのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

ドライバを作成するための手順を書くことは、例えて言えば「家を一軒建てる手順を書く」ようなものです。

「それさえ読めば作成できる」というレベルまで詳細に記述することは不可能ですので、開発を始めるまでの標準的な手順の概要のみを書きます。

Daemon Toolsを例に挙げられているので、Windows用ドライバの作成を前提として説明します。

まずMicrosoft Windows Driver Development Kit(通称DDK)が必要です。DDKの入手方法は2通りあります。http://www.microsoft.com/whdc/devtools/ddk/defau …の真ん中あたりにある「How to Obtain a DDK」に説明されていますが、1つは有償(送料等実費負担)でCD-ROMを取り寄せる方法、もう1つはMSDNサブスクリプションを購入しする方法です。MSDNサブスクリプションについてはhttp://www.microsoft.com/japan/msdn/subscription …を参照してください。

次にDDKを使用するための環境が必要です。Windows XPが最適ですが、Windows 2000でもそれほど不便ではありません。

上記2つがあれば、とりあえずWindows用ドライバの作成は可能です。どのようにしてプログラムを書けばよいのか、その方法はDDKに付属のドキュメント内に詳細に解説されていますので、よーーーく読んでください。(DDKを入手しなくてもドキュメントだけは読むことができます。http://msdn.microsoft.com/library/default.asp?ur …の左側にある目次からDriver Development Kitをクリックし、Getting Started with Windows Driversから先をまず読んでください。)

なお、DDKは英語版しかありません。DDKあるいはドライバ開発に関する日本語の書籍が何冊かありますが、そこに記載されているのと同じことをやるのでない限り、頼りになる資料は英語のものしかないと思ってまず間違いありません。

次に、あればより便利なものとしては次のようなものがあります。

(1) Microsoft Platform SDK(通称SDK)

通常のWindowsアプリケーション開発のために使用する開発キットのことです。ドライバ開発を行う場合でもアプリケーションに関する知識はあったほうが何かと便利なので、SDKは用意しておいたほうがよいでしょう。

SDKはVisual C++等の開発ツールにも含まれていますが、SDKは数ヶ月ごとに更新されるので、最新をダウンロードして使用するほうが良いでしょう。

(2) Windows 2000またはWindows XPが動作するもう1台のPC

デバッグ作業を行う際、もう1台PCがあると「リモートデバッグ」というものが可能になり、非常に効率が上がります。リモートデバッグを行う場合は、2台のPCをシリアルケーブルかIEEE1394ケーブルで接続します。後者のほうが高速なのでより便利ですが、Windows XP同士のみで使用可能です。

(3) Microsoft Virtual PC(またはVirtual Server)

Virtual PCを使用すると、上記(1)のように物理的に2台のPCを用意するかわりに、1台のPC上に仮想PCを作成することができます。完全に独立したPCとしての動作を要さない場合(ハードウェアに対する直接のアクセスを行わない場合等)は、(1)の構成よりも高速にリモートデバッグが可能です。ただし仮想PCが画面を共有するので、マルチモニタ等の広い画面がないとかえって不便な場合もあります。


挙げていくときりがないので、このくらいで。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ドライバを作ることがとても難しいことがわかりました。

そのうち作れるようになれるよう、努力します。
ありがとうございました。

お礼日時:2005/07/10 21:55

ご質問の内容は



(1) 「仮想ドライブを作成できるソフトウェア」を使用して、仮想ドライブを作成したい
(2) 「仮想ドライブを作成できるソフトウェア」を作成したい

の、どちらでしょうか。

前者であれば、挙げられているようなソフトウェア(ドライバ)を使用すれば実現できます。

後者であれば、挙げられているようなソフトウェア(ドライバ)を作成するスキルが必要です。

Daemon Toolsは専用のドライバで実現されています。

この回答への補足

質問の内容は、(2)です。
このようなことを聞いてる時点で無理だとは思いますが、
いろいろ勉強してできるようになりたいです。

手順を教えていただければ幸いです。

補足日時:2005/07/08 11:57
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC# インスタンスの破棄

C#でインスタンスの破棄を明示的に行いたいのですが、
実際の開発現場では、どのように行っているのでしょうか?

自分で調べると「ガベージコレクタ」が暗黙的に行っているようですが明示的には行わないのが普通なのでしょうか?
もしくは、「Dispose」を使用して明示的に行うのが普通なのでしょうか?

実際に開発されている方からすると簡単な事かもしれませんが教えて頂けると助かります。

以上ですが、よろしくお願いいたします。

Aベストアンサー

結論から言うと、どちらでも良いです。
できれば生成から破棄まで考えて開発できると良いですね。

ガベージコレクションが実行されることで自動開放されますから、
一切.close()や.dispose()を使わなかったとしてもプログラムが
不正終了してしまう事はほとんどありません。

実際の開発では使わなくなったものを使わなくなった時点で
明示的に破棄することが多いです。正確には明示的に破棄するもの、
明示的に破棄しないもの、の2種類に分類しています。

例えばファイルを読み書きするストリーム系のオブジェクトや
データベースとのコネクションなどです。これは開発会社や
開発チーム、案件によって若干違っていて、徹底するところや
適当なところもあります。個人的には徹底したい派ですが。。。

ガベージコレクションが発生するとプログラムの実行動作が
遅くなり、また瞬間的に大きな負担がかかることがあります。
そのため全てをガベージコレクタに任せるのではなく、
明示的に開放できるもの、メモリを大量に消費するものは
その都度、適切に開放していくことで処理効率が良くなります。

プログラミング関連の調べ物で、サンプルソース等を見ることが
あるかと思います。この時サンプルで明示的に開放していたら、
それは明示的に開放したほうが良いもの、と思いましょう。
これだけでもステップアップになりますね。

結論から言うと、どちらでも良いです。
できれば生成から破棄まで考えて開発できると良いですね。

ガベージコレクションが実行されることで自動開放されますから、
一切.close()や.dispose()を使わなかったとしてもプログラムが
不正終了してしまう事はほとんどありません。

実際の開発では使わなくなったものを使わなくなった時点で
明示的に破棄することが多いです。正確には明示的に破棄するもの、
明示的に破棄しないもの、の2種類に分類しています。

例えばファイルを読み書きするストリーム...続きを読む


人気Q&Aランキング