【WDM】Windows Driver Model相談室【デバドラ】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
2007/07/08(日) 14:14:45まず何を勉強したほうがいいのでしょうか?
ドライバプログラミングの入門書から勉強しようかなと思ってるんですが(´・ω・`)
ハードの知識はちょびっとあります。Windowsの知識はあんまりないです(´・ω・`)
http://www.codeproject.com/script/Articles/list_articles.asp?userid=961412
http://www.sciencepark.co.jp/community/lecture.html
0465デフォルトの名無しさん
2007/07/09(月) 21:31:10ありがとうございます。わかりやすいです(´・ω・`)
0466デフォルトの名無しさん
2007/07/10(火) 00:53:47ホリエモンみたいは暑苦しい姿を彷彿とさせる名前だな
0467デフォルトの名無しさん
2007/07/10(火) 08:21:280468デフォルトの名無しさん
2007/07/23(月) 23:52:23こんなに手間取ると思わなんだ・・・・・
以上、チラシの裏でした
0469デフォルトの名無しさん
2007/08/02(木) 09:32:19そのチラ裏が妙〜〜に気になった。
ターゲットOSは、Vista 64bit版でつか?
MS社の方針変更の可能性濃厚なんで
おおまかな手続きの流れをよければ語って
もらえマイカ。
いずれ全てのドライバが署名必要となるのか・・・orz。
0470468
2007/08/02(木) 14:20:49とりあえずVista64bit対応のためでつ。
WindowsServer2008以降32bit版もKMCS必要なことは知ってますよね。(Server2008x86-CTP版で必要なことを確認済み)
>MS社の方針変更の可能性濃厚なんで
方針変更とは? KMCS義務をやっぱりやめるなんて情報があるの?
>おおまかな手続きの流れをよければ語って
>もらえマイカ。
手順等は
http://www.microsoft.com/japan/whdc/winlogo/drvsign/kmcs_walkthrough.mspx
の画面右のdoc参照。
他に知りたいことがあれば、具体的に書いてもらえば可能な範囲で答えるが・・・・
0471469
2007/08/02(木) 17:45:32>方針変更とは? KMCS義務をやっぱりやめるなんて情報があるの?
やめるという情報はないでつ。むしろ、32bitとかも求められるとなると、
いずれSP3辺りでXPなんかもそうなるのかなと・・・。XPのサポートが
延びてるしまだまだ使われるはずなので。
手順docのリンクとんくすでつ。
認証ツールいくつかあるみたいだけれど、おすすめとかありますか?
後、対応化にあたって苦労した話なんか聞かせてもらえるとこれから
認証手続きする人に役立つと思いまつ。
あ、SDK+WDK(withDDK)辺りはインスト済み前提で話してもらっていいでつ。
0472デフォルトの名無しさん
2007/08/02(木) 21:23:37んな事したら発狂する顧客が随分出そうな気配。
0473468
2007/08/02(木) 22:24:17>いずれSP3辺りでXPなんかもそうなるのかなと・・
私も>>472と同じくこれは無いと思います。
>認証ツールいくつかあるみたいだけれど、おすすめとかありますか?
認証ツールとは?
>後、対応化にあたって苦労した話なんか聞かせてもらえるとこれから
>認証手続きする人に役立つと思いまつ。
自分で(Verisign等から)電子証明書を購入し、自分の作ったドライバに自分で
電子署名するなら、特に難しい点は無いと思います。
(KMCS_Walkthrough.docの手順をそのとおり辿るだけ)
私の場合、お客からの請負で作成した(アプリに含む)ドライバにお客の会社の
電子証明書でお客に電子署名してもらわなければならない故に以下で手間取り
ました。
(1) 電子署名とは何か、なぜ必要なのかを理解してもらう。
(2) 電子証明書を購入してもらう。
(3) 電子署名をしてもらう。
(1)は説明不要でしょう。
(2)は私がでは無く客先の担当者が苦労したのですが、でかい会社のため、法務・
総務・購買などに(1)が必要だったようで、電子証明書を購入だけで2ヶ月か
かりました。
0474468
2007/08/02(木) 22:25:03ていうような事務屋さんが仕切っているわけですから、WDKのインストールを含め、
KMCS_Walkthrough.docの手順をやってもらうなど、まず不可能。
で、仕方が無いので、公開鍵・秘密鍵ファイルのありかとパスワードを入力する
ための専用ダイアログアプリとそこから一連の手順を自動実行するバッチ(+α)
を作成し、WDKの中で必要なツール等と合わせてお客に渡し、署名してもらい
ました。
KMCS_Walkthrough.docを見てもらえばわかりますが、Cross-Certificateの関
連で、テスト用電子証明書で署名する手順と本物の電子証明書で署名する手順
が異なるため、上記バッチの確認が(本物の電子証明書がない)自分のところで
できず、苦労しました。
参考:
catファイルの作成にMakeCat/Signability/Inf2Catの3つの選択肢がありますが、
* MakeCatは面倒
* Signablityはファイルをコピーしただけでは使えない(COMの登録が必要)
なので、Inf2Catがお勧めです。
以上、ご参考まで
0475469
2007/08/03(金) 00:44:14実際の流れに沿った詳細な解説ありがとうございます。
おそらく、実際に対応してみないと見えてこないことが多々あると思われ、
>>468さんの情報は今後実施する多くの方に貴重な内容だったと思われまつ。
結果として、お客様自身に電子証明書手続きしてもらうことが
一番大変だったということでつね。PCの事をよくわからない事務屋さんに
ドライバの署名してもらう為のバッチ処理、作るのかなり難易度高そうでつ・・・。
0476デフォルトの名無しさん
2007/08/13(月) 23:51:32ユーザが読むべきデータがまだ無い場合はブロッキングしたいのですが、
どのような機能を使えば良いのでしょうか?
初歩的っぽい質問で申し訳ないのですが、探しても中々でてこないので・・・
どなたかご教授いただければ幸いです。
0477デフォルトの名無しさん
2007/08/14(火) 09:29:51「まだ読み出すべきデータがない」と言ってすぐに戻る。
0478デフォルトの名無しさん
2007/08/14(火) 11:35:50データができたときに割り込みがあるなら、それをトリガにしてIRPを完了かなぁ。
割り込みなくてポーリングでしかわからないなら、ワーカースレッドを起動して
スレッド内でデータができたらIRP完了するのかな。
0479デフォルトの名無しさん
2007/08/14(火) 13:52:12>>477が書いているようにディスパッチルーチンの中で時間のかかる処理の完了を待ってはならない。
>>478のようにディスパッチルーチンではSTATUS_PENDINGを返しておき、割り込みなりポーリング
なりで処理の完了を確認した時点で、IoCompleteRequest()で呼び出し側に完了を伝える。
ドライバ側で上記の実装をしておけば、アプリ側は
同期IO:ReadFile()は処理の完了まで抜けてこない
非同期IO(Overlapped-I/O):ReadFile()は処理の完了を待たない
のどちらでも実装できる。
>>476の質問の書き込みから見て、これらの説明だけではチンプンカンプンでしょう。
何か本を買って一通りの勉強をすることを強く勧める。
例: http://www.ascii.co.jp/books/books/detail/4-7561-3913-2.shtml
入門書としては少し難しいが、実装上のノウハウがひととおり書かれている。
0480476
2007/08/14(火) 13:59:27>>478
>>479
ご回答ありがとうございます!
一応Linux上でのドライバ開発の経験はあるもので、
Linuxだとディスパッチルーチンに相当する部分でスリープしてしまって良く、
それと同じようなことをしようとあがいてました。
もっとWindowsでの事情をちゃんと考慮すべきでした・・・
おぼろげながらどうやればいいかわかってきた気がするので、
またがんばってみようと思います。
ありがとうございました
0481デフォルトの名無しさん
2007/08/22(水) 19:11:190482デフォルトの名無しさん
2007/08/22(水) 19:54:19あとここの本
http://www.osr.com/fsinternals.shtml
日本語の情報はほとんどない
しかしMSのサンプルソースは読みにくい気がするのは俺だけ?
0484デフォルトの名無しさん
2007/08/25(土) 19:04:45FILEM.SYSを利用して,ファイルがどのプロセスから読み書きされているか
調べるツールを作成しようと考えています.
このスレで上げられているFilemonのソース見て,
DeviceIoControlでアプリ側からフィルタドライバ側へアクセスしているだろう
ということは分かったのですが,フィルタドライバ側からのデータは
どのようにして受信するのでしょうか?
初歩的な質問で申し訳ございませんがよろしくお願いします.
0485デフォルトの名無しさん
2007/08/26(日) 00:59:560486デフォルトの名無しさん
2007/09/04(火) 21:51:37亀レスだが、邦訳出てる。
Windows NTファイルシステム詳解
NT4基本に書かれてるけど、大筋はかわってないとオモ。
あと、 ttp://www.acc.umu.se/~bosse/
キャッシュマネジャがすごくイヤな感じだった。
0487481
2007/09/05(水) 14:41:25>>482
DDKサンプル、OSRは大体見てます。
NTファイルシステム詳細は会社にはあるのですが
個人でも買いたいと思ってます。(が売ってません・・・)
>>483
とりあえずDLはしておきました。
>>486
ファイルシステムの場合、OSからのリクエストが
Undocumentedな上に、SPが当たったりすると、動作が変わるのが嫌らしいです。
キャッシュマネージャを利用しようとすると、IRP_MJ_READ/IRP_MJ_WRITEに対して
2回コールされます。
最初はキャッシュフラグOnでOS側から。このときにキャッシュマネージャーのファンクションをコールします(CcCopyRead)
するとキャッシュマネージャ、VMMを経て、またIRP_MJ_READが呼ばれますが、このときはフラグがありません。
で、キャッシュなしということで、ディスクから読み込んで〜
という風になりますが、マルチスレッドを考慮して適切に排他/共有ロックをかけないといけないですし
さらに、先読み、遅延書き込み、によって通常の読み書きより優先度の高い処理が別スレッドで発生したり
Explorerや、AntiVirus、ユーザーが意識していないタイミングで、リクエストがばんばん発生するので
地道に解析しながらやるしかなさそうです。
0488デフォルトの名無しさん
2007/09/05(水) 18:13:06まず動かすんだったらキャッシュマネージャを無視して処理してもいいんじゃ?
0489481
2007/09/05(水) 18:43:08IFSKitはすでにあります。
しかし、添付のドキュメントはほぼフィルタドライバについてだったりして
期待するようなことはあまり書いてないです。
新しくでたVistaのDDKだと、FileSystemのソースもDDKに入るようになったので
IFSKIT自体無くなるのか?
いろいろ見た結果FAT32のサンプルとNTファイルシステム詳細みながら
やるのがよさそうなのでそれでがんばります。
0490デフォルトの名無しさん
2007/09/05(水) 20:17:24IFSはDDKと統合されてWDKっていう扱いになったんじゃなかったか?
MSはころころ名前変えてくれるよな
0491デフォルトの名無しさん
2007/09/06(木) 04:32:54WDKに統合されて誰でもタダで入手できるようになった
0492デフォルトの名無しさん
2007/09/15(土) 14:07:06「Vistaではドライバ未対応のため使えないデバイスが出てくる」
と言われてた気がするんだけど、
具体的にドライバの何が問題?
32bit-Vistaなら、XPのWDMドライバもそのまま使える?
0493デフォルトの名無しさん
2007/09/15(土) 15:03:52一応これまでのドライバモデルも動くらしいが、当然Aeroは動かないっぽい。
Vista は持ってないので、実際に試したことがないので詳しくはわからないです。
ファイルシステムとかプリンタあたりはどうなんだろう。
ここは専門外なのでわかりません。
あとは、電源関連あたりの処理が変わっているらしいので、サスペンドレジューム休止状態などで
不具合が出てしまうデバイスがあるかもしれません。
上記の注意点の条件に当てはまらなければ、原理的にはXPのドライバでも動くはずです。
なにか忘れてることがあるかもしれませんが、そんな感じです。
0494デフォルトの名無しさん
2007/09/18(火) 23:16:57Microsoftからも情報出てましたね。
http://www.microsoft.com/japan/whdc/devtools/WDK/DrvCompat_Vista.mspx
電源周りに変更ありですか。。。
XPの時もあまり関わりたくないのに
結構複雑で困ったんだよな。
0495デフォルトの名無しさん
2007/09/22(土) 11:57:46Vista-x86にて動作する仮想ディスプレイドライバ作っているんだけど、
WDKのmirrorドライバのソースと下記URLを参考したらコード43エラーでて認識してくれん。
http://www.codeproject.com/system/driverdev6asp.asp
XPDM,WDDMは共存できない。ってことらしいんだが、WDDMの情報がまったくでてこない。
参考になりそうなサイトしっている方いたら教えてくれませんか?
0496デフォルトの名無しさん
2007/09/28(金) 02:18:34おそらくGUIDをそろえるんだと思います。
NECのスキャナのドライバでブルースクリーンになるので調べたら、
内部名がbulkusbでDDKのサンプルらしく、KB調べたらバグありらしいので
ドライバの供給はもう終わっているので、自分で修正しようとしています。
bulidしてリネームしてDiriversにコピーしたけどだめでした。
ソースだと、
// {6068EB61-98E7-4c98-9E20-1F068295909A}
DEFINE_GUID(GUID_CLASS_I82930_BULK,
0x873fdf, 0x61a8, 0x11d1, 0xaa, 0x5e, 0x0, 0xc0, 0x4f, 0xb1, 0x72, 0x8b);
ここのところがわかりません。0x6060eb,0x61...のようになるはずなんじゃないかと。
0497デフォルトの名無しさん
2007/09/28(金) 04:13:06中身がDDKのbulkusbそのまんまとは限らないと思う・・・
仮に、中身がほぼ同一だとしたら、
GUIDは、オマイの使ってるデバイスにあわせる必要がある
0498デフォルトの名無しさん
2007/09/28(金) 12:04:46ありがとう。
デバイスとは、製品版のSYSファイルから取り出せますか?
INFにはimageのクラスGUIDと、USDClassというのしかなかったです。
上位と下位みたいだからこれ以外みたいですが。
TWAIN用のDLLとかワンプッシュボタン用のEXEから知ることもできるでしょうか。
現状で動作させると、組み込みはできますが、データソースはデバイスが見つからないというエラーです。
0499デフォルトの名無しさん
2007/09/28(金) 12:34:14まー、その辺のファイルのどっかに書いてあるでそ
逆アセすりゃ、分かるんでない?
0500デフォルトの名無しさん
2007/09/28(金) 23:56:10SYSの逆汗したことないです
dumpbinでも分かりませんでした
GUIDだけ合わせてもだめ?
0501デフォルトの名無しさん
2007/09/29(土) 09:59:56どこのGUIDを合わせなきゃいけないか理解してる?
分かってないなら、
bulkusbと一緒に付いてるサンプルの実行ファイルのソース読め
あと、逆汗ムリつーなら、CreateFileにフックかけて引数調べるとかでも良いかと
0502デフォルトの名無しさん
2007/09/30(日) 03:08:00理解していません。。
infには2箇所ありました。だけど、SYSには依存していないっぽいのでinfは無関係みたい。
製品版のSYSからとってソースに書くという事実は分かります。
場所は、496の場所かと。
mofにもなんからしいのがある気がします。
APIをフックするのも分かりません。やったことないです。
とりあえずソース見て、そしてフックも勉強します。
EXEなりのCreateFileのところの引数を調べるってことですよね、多分。
W32dsmで見てみます。
0503デフォルトの名無しさん
2007/10/01(月) 13:32:45どんなデータのやり取りをしているかは自分で調べないとだめでしょ
んで、GUIDは単にデバイスインターフェイス登録しているだけだから
無くてもかまわない。
元のドライバのSYSと入れ替えれば、OSがロードしてくれるはず
ここまでが下準備で
OSやアプリケーションからどんなリクエストが来るか
デバイスにどんなリクエストを出しているか
はフィルタドライバ作るなりして調べないといけない。
まあ、スキャナをコントロールするのにEXEやプロパティページ拡張のDLLみたいなのは
入ってると思うから、そういうの経由でどのボタン押すとどういうリクエスト来るか
ぐらいは調べられると、楽かもね
まったく動かないのであれば、正直お手上げだと思うけど
多少なりとも動くのなら、落ちる部分だけフィルタドライバでオーバーライドするのが
早い気もするんだけど。
0504デフォルトの名無しさん
2007/10/01(月) 14:44:54バージョンリソースがそのままなのでてっきり同じかと思っていました。
いろいろやらないとだめなんですね。今のレベルだとちょっとお手上げです。
bulidしてSYSをコピーするとか、infをちょっと書き換え程度しかできません。
DLLの中身とかを見ていて、別な会社名を見つけたので、そこのWebに行って
ドライバ取ってきたら、とりあえずそのドライバで1回は動きました。
これでバグが出なければ解決だと思います。だめならまた考えます。
ドライバはNECより新しくてUIはもっと良くなっていました。
0505:デフォルトの名無しさん
2007/10/13(土) 02:47:54とりあえずWinXP環境からバスをチェックして、
ベンダ情報があっているデバイス番号とか機能番号は確認しました。
そこでPCIとPCとの共有メモリの情報を見たいのですが、
どうすればいいのでしょうか?
0506デフォルトの名無しさん
2007/10/13(土) 09:03:410507:デフォルトの名無しさん
2007/10/15(月) 00:06:36その先頭アドレス取得、Winアプリからそのアドレスのデータを読むことはできました。
(意味不明なデータですが、初期化されてないからと思ってます)
ただ、デバイスマネージャのメモリ一欄にその基板用に取得した
アドレスが表示されてません。
ドライバ上で仮想アドレスの先頭を取得するだけではダメなんでしょうか?
アドレス取得後、デバイスマネージャに教える関数とかあるんですか?
WDMがよくわからなくて、XP環境でNTのドライバの本見ながら作ってます、、
0508デフォルトの名無しさん
2007/10/15(月) 02:04:03それがPCI device。そうじゃないとP2P bridgeとかで問題がでるはず。
0509.
2007/10/15(月) 20:13:34書かれていないわけだが・・・
0510デフォルトの名無しさん
2007/10/16(火) 05:33:07WDMかWDFを勉強しなよw PnPに対応しないと、やりたい事はできないよ。
0511デフォルトの名無しさん
2007/10/18(木) 11:35:57通常のPCIデバイスとしてBIOS/OSが認識して初めてWDMの話が出てくるわけだから
デバドラ開発以前の問題に思えるんだが。
そもそもそのWinアプリって何?って話なんだが。
基盤ってあたりで、XilinxとかでPCIデバイス開発したいような気もするんだけど
それなら本読めば書いてあるし、ここで聞いてる理由もわからんな
0512509
2007/10/19(金) 12:38:20レガシードライバで強引に物理リソースに
アクセスしていると思うんだが・・・
リソース割り当て&コンフィギュレーションは
されているが、専用ドライバがインストール
されていないからデバイスマネージャ上で
リソース確認できないんじゃないか?
Winアプリとは前述レガシードライバ経由で
メモリ、I/O、コンフィギュレーションスペースに
アクセスするアプリとみた。
ってここでエスパーしてもしょうがないな。
0513デフォルトの名無しさん
2007/10/19(金) 15:42:35もう本人は見てないんじゃない?
0514:デフォルトの名無しさん
2007/10/19(金) 22:27:36みなさん参考になるコメントたくさんありがとうございます。
経過報告ですが、なんとか試験的に動作できるものは作れてました。
結局、WDM的な作り方ではなく、NT用のデバイスドライバを元にして作りました。
WDMでは裏でしていることが多いようで、自分には不向きなようでした。
NT的な方法でなんでもソースに書いてとりあえず動いてます。
はじめてドライバを触るし、ゼロから作るため、いろいろ思考錯誤しましたが、
これから、それをWDM的に変更していくつもりです。
あと質問ですが、DMAをするには基板側にそういった仕様、機能がないとできないのでしょうか?
ドライバでソースを書くだけでなんとかなるものなのでしょうか?
0515デフォルトの名無しさん
2007/10/20(土) 00:51:04ソースだけで何とかしているだけでDMAでないと思うが…
汎用的に使用可能なDMAって組み込まれてたっけ?
PCIはDMA転送のモードがあるからボードの受け側が対応しているならできるとおもうけど
DMA : Direct Memory Access
メモリ<>メモリもしくはデバイス<>メモリ のデータ転送で
CPUを通さずにデータを転送させる機能
0516デフォルトの名無しさん
2007/10/20(土) 01:04:26趣味で作ってるならいいんだが、そうじゃないなら最初からWDMで書いたほうが良いよ。
PnPとパワーマネージメントはWDMじゃないと、きちんと対応することは難しい。
PnPなんて抜き差ししないから関係ないとか思ってると、後で困る事が多いよ。
0517デフォルトの名無しさん
2007/10/20(土) 09:27:53極端な表現をすればデバイスも偶然動いているだけ。
PCIデバイスのDMAとはデバイスがバスマスタになってトランザクションを
発行しなければならないのでデバイスが対応していなければならない。
0518:デフォルトの名無しさん
2007/11/02(金) 01:30:04返事遅れました。すみません。
趣味というか、興味本位ではじめたドライバの勉強でしたが、
PCI基板を2つPCにさして動かすことはできました。
多少は勉強になったようですが、所詮学生の勉強レベルですね。
就職前にデバイスドライバの勉強でもしようと思いましたが、
修論に専念します。
先生がドライバを簡単に作れるツールがあれば、買ってくれるようなことを
言われたので探してるとこでした。
いろいろありがとうございました。
0519デフォルトの名無しさん
2007/11/04(日) 02:41:06http://mtbeta.msdn.microsoft.com/ja-jp/library/ms310243.aspx?altlang=ja-jp
0520デフォルトの名無しさん
2007/11/06(火) 01:30:41ハァハァ
でも機械翻訳もずいぶんと遠い道のりを経てここまできたんだな。
0521デフォルトの名無しさん
2007/11/07(水) 13:32:11Virtual Audio Cableのようなソフトウェアオンリーの仮想オーディオドライバを作ろうと思うですけれども
ユーザモードのアプリからカーネルモードのPortCls KSフィルタの中のミニポートのインスタンスを見つけ出して
直接通信するにはどんな方法を使ったらよいですか?
0522デフォルトの名無しさん
2007/11/07(水) 14:43:46普通のWDMドライバであれば
CreateDeviceInterfaceだったかSymbolicだったかを呼び出し
それをユーザーモードドライバでCreateFileしてやって
DeviceIoControlを呼び出すと、IRP_MJ_DEVICE_CONTROL経由で
データが飛んでくるのでそれでやり取りできる。
が、オーディオやキャプチャデバイスの場合はミニポートドライバなので
特殊なインターフェイスしか無い
(WDMドライバ本などの基礎的な部分は役に立つが、完全ではない)
DirectShowデバイスの場合はDirectShow経由で行い、
汎用セッティングについては、GUIDでやるのが作法になっているので(KSPROPERTYあたり)
そのデバイスについての固有な命令については、自分でGUIDを定義して
やり取りするのが普通だと思う。
詳細は忘れてしまったので、AC97のProppageサンプル見てみたが
SetupDiでデバイスインターフェイスを探して、そのハンドル経由でIOCTL_KS_PROPERTYで
設定を流し込んでるみたい。
そのデバイスインターフェイスは誰が作ってるかということなんだが
通常だったら自分で作らないと存在しないが、身にポートドライバなので
MSが用意してくれているかもしれない、が名前がどうなってるかまではわからないので
ツールとか使って調べてください。
デバイス固有の作法については、本が無いので、DDKのサンプルとドキュメント見て
やるしかないと思うが、他にいい文献など知ってたら教えて欲しいぐらいです。
0523ゆ? ◆RmDQN/V/..
2007/11/07(水) 16:57:08取り敢えずは早速IOCTL_KS_PROPERTYを試してみるです。有り難うございます。
0525デフォルトの名無しさん
2007/11/17(土) 06:05:03なんとか、VS2005でコンパイル -> VMWare上のXPでデバッグ という流れを
作りたくて、いろいろいじっています。ドライバに関してはほとんど初心者です。
vsprintf という関数を使うと、"外部参照が未解決"となるので、VSの設定で、
"すべての規定のライブラリの無視"を "はい" に変更していたのを "いいえ" に
戻して、コンパイル、インストールしてみたのですが、インストールに失敗します。
インストールは、以下のサイトの、"DIP.zip"てのを使っていてエラーは "Error: 3" と
だけしか出ません。
ttp://ruffnex.oc.to/kenji/windriver/
vsprintf をコメントアウトすると、正常に動くので、原因はこいつで間違いないと思うの
ですが、なぜインストール出来なくなるのかがわかりません。
よろしければ、こうなる理由を教えてください。よろしくお願いします。
>よろしければ、こうなる理由を教えてください。よろしくお願いします。
よろしくないから、教えない。
0527デフォルトの名無しさん
2007/11/17(土) 11:43:49一つだけ。ユーザモードとカーネルモードでは基本的に使えるライブラリもAPIセットも違います。
0528デフォルトの名無しさん
2007/11/17(土) 12:27:08あなたには、ドライバ開発は5年早い。
0529デフォルトの名無しさん
2007/11/17(土) 13:13:40根本的に勘違いしていました。ありがとうございました。
0530デフォルトの名無しさん
2007/11/17(土) 23:40:07まずは自分で貼ったURLのサイトを100回読むことだ。
0531チラシ
2007/12/27(木) 13:46:15_URB_CONTROL_VENDOR_OR_CLASS_REQUESTを
IOCTL_INTERNAL_USB_SUBMIT_URBでIoCallDriverすると
成功と失敗を交互に繰り返すんだが・・・
失敗時、バスにはパケット流れないのにURBヘッダの
ステータスはUSBD_STATUS_DEV_NOT_RESPONDING・・・orz
0532デフォルトの名無しさん
2007/12/30(日) 01:39:29それから500msくらい後から、DPCの処理がされています。
漠然とした質問ですが、原因をご教授ねがえないでしょうか?
0533デフォルトの名無しさん
2007/12/31(月) 00:13:19他のデバイスの割り込み処理が入ってるんじゃね?
もしくは自分のデバイスがさらに割り込んでるとか。
0534デフォルトの名無しさん
2008/01/06(日) 13:19:56http://recwav.dip.jp/
音声でメッセージを伝えよう
http://recwav.dip.jp/M_RECWAV_Media.asp?Speech=1221925210420080106131222
0535デフォルトの名無しさん
2008/01/06(日) 22:46:361 Winアプリ側でReadFile
2 いろいろ処理され、PCI基板のメモリにデータセット(基板側で処理されます)
3 基板が割り込み発生
4 DPCの中で、RtlCopyMemoryでPCI基板のメモリからReadFileのバッファにコピー
データは、200KB〜300KBですが、
4のRtlCopyMemoryに100msくらいかかります。
何かの設定で、バスの速度を早くするとかあるのでしょうか?
それとも、DMA処理とか使って、データのコピー方法を検討する必要があるのでしょうか?
ちなみにその場合、基板内にDMAコントローラがなくても可能なものでしょうか?
詳しいかたお願いします。
0536デフォルトの名無しさん
2008/01/06(日) 23:11:44507か?
I/Oで3MB/sだから、ありえる数値じゃないの。
性能が欲しいならバスマスタでしょ。
もちろんデバイスが対応していないと無理だけど。
0537デフォルトの名無しさん
2008/01/06(日) 23:32:37(ちなみに507です。就職決まったので悪あがき再開してます。)
I/Oで3MB/sというのは、PCIの仕様なのでしょうか。
参考になるURLとかご存知ですか?
バスマスタDMA可能にするには、どういった機能が基板に必要なのでしょうか。
システムDMAというのがあるらしいですが、これはPC既存のもの??
でも遅いようですね。
0538デフォルトの名無しさん
2008/01/07(月) 01:41:39そこそこ行儀が良いと仮定してもread cycleで4byte毎にバストランザクション発生させてんだろ。
1回のトランザクションに何サイクル必要か仕様見て実際に計算すれば予想できるじゃないか。
できるところまで突っ走るのも良いけど、ちゃんと基礎も勉強しないと役に立たない知識になるぞ。
0539デフォルトの名無しさん
2008/01/07(月) 22:46:41非バスマスタならFIFO乗っけるなりして
性能あげるしかないと思うけど・・・
0540デフォルトの名無しさん
2008/01/10(木) 21:10:23Windows 2000/XP/Vista(32bit)でドライバをロード/アンロードできるCUIのツールがあれば教えてください
>hogehoge.exe c:\fugagufa\foo.sys
スレ違いなのは承知していますが、プログラマ以外では使わないツールだろうと考えていますので、
こちらで質問させていただきました。よろしくお願いします
0541デフォルトの名無しさん
2008/01/10(木) 21:47:40ツールとしては見たこと無い
というか、自分も欲しいw
0542デフォルトの名無しさん
2008/01/10(木) 21:53:260543デフォルトの名無しさん
2008/01/10(木) 21:56:45WDK(ドライバ開発キット)に入っているサンプルのdevconツールなんてどうでしょう。
devconは、CUIアプリケーションで指定デバイスを有効/無効できます。
ドライバの有効/無効でロード/アンロードと同じ動作が出来るのではないかと思います。
他にもインストール/アンインストール等もできます。
WDKの入手方法
http://www.microsoft.com/japan/whdc/DevTools/WDK/WDKpkg.mspx
0544デフォルトの名無しさん
2008/01/10(木) 22:23:09ありがとう。
devconはデバイスの管理のようですね。
私の場合は542さんが示していただいているように純粋なアンロード・ロード機能があるもので、
もうすこし汎用的なツールがどこかしらにあるだろうと期待して質問してみました
ちょっとなさそうであれば、チープな実装で片手間に書きます(絶対あると思ってたので。。。
0545デフォルトの名無しさん
2008/01/12(土) 18:33:37CUIってところが問題なのか。
自分でちゃっちゃと書くか、driverloaderあたりをwshで叩くかかな?
0546540
2008/01/13(日) 17:31:06とりあえずかいたのでよければどうぞー
0547デフォルトの名無しさん
2008/01/13(日) 19:39:01乙andありがとう
0548デフォルトの名無しさん
2008/01/19(土) 01:46:52VFW-WDMラッパーの問題で片方ずつしか使用できません。
VFW経由では2台同時使用は出来ないのでしょうか?
例えば、USBポート拡張PCカードを使うなど、何らかの方法でVFW経由の使用が可能でしょうか?
0549デフォルトの名無しさん
2008/01/21(月) 10:00:04自分でドライバを書く気が無いならスレ違い
もし書く気があるなら、そのラッパーの問題とやらをkwsk
0550デフォルトの名無しさん
2008/01/25(金) 22:57:17ユーザモードだとVirtualAllocで確保した空間に実行コードを書き込み、
VirtualProtectで実行可能属性を与えることで実行することができます。
これをカーネル空間で行いたいと考え、
ExAllocatePoolで確保した空間に同じようにコードを書き込みますが、特に保護属性を変更せずに実行できるように見えます。
(プログラム自体はバグっているので自信が無いのですが)これは私のCPUだから、ということではなく、
カーネル空間には保護属性はないと考えて間違ってませんでしょうか?
0551デフォルトの名無しさん
2008/01/26(土) 00:36:26間違っているよ。poolは実行可能領域になるだけでスタック領域は実行不可能になっている。
!pteで簡単に見れるんだからちゃんと調べようよ。
0552デフォルトの名無しさん
2008/01/26(土) 01:00:31やっぱりgoogleとtry&errorなデバッグだけじゃ十分な知識が揃いにくいですね
0553548
2008/01/26(土) 09:57:41レスくれた人どうも。
0554ぱーぷりん
2008/02/01(金) 10:01:51ご存知の方教えてください。DDK内を検索しても見つかりませんでした。
0555デフォルトの名無しさん
2008/02/01(金) 10:48:210556デフォルトの名無しさん
2008/02/02(土) 16:34:22今wav等のHDD上のオーディオファイルをオーディオ入力に渡すというアプリを作るために
仮想オーディオ入力ドライバを作りたいんだけど、
ドライバの情報がWEB上探してもあまり見つからなくて難航してます。
参考になりそうなサイトとか知ってたら教えて下さい。
ちなみに、これを実現するにはオーディオファイルを開くアプリと、
アプリからの入力を受け付ける仮想オーディオ入力ドライバがあれば良くて、
同時にマイク等からのオーディオ入力も行うにはフィルタドライバにすれば良いと思ってるんだけど合ってます?
0557556
2008/02/02(土) 16:55:37上位ドライバとして作って、他の上位ドライバへ転送するような処理をさせればいいのかな?
0558556
2008/02/02(土) 18:27:02過疎杉
0559デフォルトの名無しさん
2008/02/02(土) 18:48:070560デフォルトの名無しさん
2008/02/02(土) 18:57:370562デフォルトの名無しさん
2008/02/02(土) 20:18:06■ このスレッドは過去ログ倉庫に格納されています