【WDM】Windows Driver Model相談室【デバドラ】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNGMmAllocateContiguousMemory()ってまずくね?
とにかくマップするだけの関数だったような。
0165デフォルトの名無しさん
NGNG0166156
NGNG基本的に>>162をベースに作りました。
ただ、物理メモリの空きを探すのにMmAllocateContiguousMemory()を使うのは
まずいようなので、PFNデータベースを参照しました。
(WinNT系のPFNの資料がほとんど見当たらなかったので、怪しいかも)
0167デフォルトの名無しさん
NGNG0168155
NGNG参考にしたサイト
http://www.codeproject.com/internet/drvfltip.asp
0169デフォルトの名無しさん
NGNGWindbgのシンボルサーバにはアップされているみたい。
XPのSP2 RC2でもコマンドが使えるようになった。
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNGhttp://WindowsBeta.microsoft.com
にあがってたよ。
ベータアカウント持ってる人に頼んでみたら。
0172デフォルトの名無しさん
NGNGドライバは、bulkusbのままでいいんでない?
FILE_FLAG_OVERLAPPEDで開いて、非同期通信して
タイムアウトしたら、CancelIo発行
0175デフォルトの名無しさん
NGNGDDKの勉強はじめたんですが、DDK付属のサンプルが
コンパイルできなくて困っています。
DDK_XPの \WINDDK\2600\src\network\ndis ディレクトリ内の
サンプルがすべてコンパイルでエラーを排出します。
エラーの内容
driver\passthrou.h(318) : error C2146: syntax error : missing ')'
before identifier 'DevicePnPEvent'
など多数のエラーが出ます。
環境:Win2k、DDK_XP(ネットに落ちてたもの)
setenv.batで環境変数は登録しています。
他のサンプルはしっかりコンパイルできるんですが、ndisディレクトリ以下が
コンパイルできません。
ndis.h か ndis.lib ファイルが壊れているのか?とも考えました。
初歩的質問ですがご存知の方ご教授ねがいます。
0176デフォルトの名無しさん
NGNGBuild Enviromentsのメニュー下にあるコマンドプロント使ってる?
BUILDで全部通ったけど
0177175
NGNGレスありがとう御座います。
Win2k FreeBuildでビルドしています。
javaSDKとか影響していたりするのでしょうか…
原因不明です。
特定のディレクトリのサンプルだけです。
DDKをアンインストールして再インストール後もこの症状が消えません。
sourceファイルもDirsも変更していないのですが…
0178デフォルトの名無しさん
NGNG>Win2k FreeBuild
でやってみると、確かにエラーが出るね。
XPだと問題茄子
0179175
NGNGXPで開発環境整えればいいんですね。
ありがとう御座いました。
こんなことでずっと悩んでないで、早く聞けばよかったです。
難解な課題山積みですがすこしがんばってみます。
0180デフォルトの名無しさん
NGNG違う、違う、Build EnviromentsのXP FreeBuildのコマンドプロンプトだよ。
誤解を招くような書き方をしてすまぬ
0181デフォルトの名無しさん
NGNGinc/ddk/w2kにはないヘッダーがあるからっぽいね
プログラマなら定義がないとかそんなのはエラーみてなんとかしんさい。
0182175
NGNGそうですね、これくらいは自己解決レベルですね。
どうも思い込むと発想の転換が下手でして…
コマンドプロンプトがXPなんですか…
0183デフォルトの名無しさん
NGNG某書店(埼玉県)で見つけて慌てて両方買った俺はヴァカですか?
探すと以外に見つからないんだよね、アレ。
0184デフォルトの名無しさん
NGNG貴重だからもっとけ
0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNGちょっと後悔。
0187デフォルトの名無しさん
NGNGもっと解説本を出版汁!!
0188デフォルトの名無しさん
NGNG(OSはWinXP SP1、DDKはXP SP1 DDKです)
IoConnectInterrupt関数で割り込み関数を登録したのですが、登録した割り込み関数に
入ってくる割り込みは、必ずそのPCIボードの割り込みなのでしょうか?
デバイスマネージャでIRQを確認すると、そのPCIボードには16番が割り当てられており、
USBホストコントローラとマザーボードのグラフィックコントローラのIRQと共有しています。
割り込み関数に入ってくる割り込みが必ずそのPCIボードの割り込みであれば
それで問題はないのですが、仮に共有しているデバイスの割り込みも入ってしまう場合
入ってきた割り込みがどのデバイスが引き起こしたものなのかを判断する方法がわかりません。
どのような方法でそれを判断するのでしょうか?
0189デフォルトの名無しさん
NGNGhttp://www.sciencepark.co.jp:8080/bbs1/wwwboard.html
http://www.ouk.co.jp/ogawa/treecrsdx/index.cgi?
0190デフォルトの名無しさん
NGNGISRの中で自分のデバイスに訊いてみれば?
0191デフォルトの名無しさん
NGNGPCIボード自体から割り込みの他に「割り込み要因」をフラグかなんかでもらわないとダメでしょ。
要因が無ければ他のデバイスとか。
0192デフォルトの名無しさん
NGNGコインストーラを作りますか?
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNGエラーセクタのリトライを止めたいのですけど、
どこを設定したらよいですか。
DeviceIOControlくらいは使えます。ドライバか、IDEやSCSIパススルー
なんかでやるんだと思いますけどどこを見ればいいのか見つけられません。
0195デフォルトの名無しさん
NGNG何がやりたいのかわからないけど、
それはドライバでやりたいの?
0196デフォルトの名無しさん
NGNGいや、分からないのです。出来ればVC、VBアプリからやりたいです。
0197デフォルトの名無しさん
NGNGエラーセクタのリトライってソフトでやってるのかね。
0198デフォルトの名無しさん
NGNGZMODEMの時代が終わったっぽいので、USBに切り替えたいんでつ。
でもWDM難しそうだし、何よりUSBホストのドライバ作ったら他OS(PC Linuxとか)でも同じ動作するドライバを作る必要がありそうな...
じゃあ、ドライバ作らずに、アプリとUSBに標準で付いてるドライバを組み合わせる形を思いつきましたが、そんなことは可能でしょうか?
USB-ZMODEMドライバなんて有るわけ無いよな...
0199デフォルトの名無しさん
NGNGいいんじゃねーかつーきがするが。
0200デフォルトの名無しさん
NGNGやりたいことはまさにそれなんですが、機器側の端子をUSBだけにしたいんでつ。
USBシリアルじゃ、ニセモノっぽくて...
0201デフォルトの名無しさん
NGNG少しは調べろ。USB<>シリアル変換アダプタじゃないぞ
0202デフォルトの名無しさん
NGNG「USB<>シリアル変換アダプタじゃない」ドライバか何かが存在する、と?
はつみみです。
0203198
NGNG0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNGもしかして、
USB⇔シリアル変換モジュール
でつか?
確かに見た目USBだから良サゲ。
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGさらに、Linux版も同時開発できまつか?
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNGBULK転送でデータを送受信するくらいのものなら、
DDKのbulkusbをほとんどそのまま使える
linuxの方は、ここだとスレ違いだが、WDM書くより簡単に思えた
0210デフォルトの名無しさん
NGNGそんなことないYO!
WDMとLinuxと同時開発方法とか教えてYO!
0211デフォルトの名無しさん
NGNGwindowsの方は、DDKにサンプルあるし、
linuxの方は、あちこちにソースあるだろうから、そう苦労しないと思うけど
とりあえず、参考資料
WindowsXPデバイスドライバプログラミング 入門と実践
http://www.amazon.co.jp/exec/obidos/ASIN/4774118419/
詳解Linuxカーネル
http://www.amazon.co.jp/exec/obidos/ASIN/4873111331/
LINUXデバイスドライバ 第2版
http://www.amazon.co.jp/exec/obidos/ASIN/4873110815/
0212198
NGNG別スレで、Win32の中の人がCLI/WinFXになるから、CLIがネイティブになると盛んに言われてます。
(ドライバなんかもマネージドになっちゃうんだろうか?)
今までのドライバの動作が遅くなって、ドライバもCLIで作れ!なんてことは発生しえるのでしょうか?
ドライバはOSの命とまでは言わなくても、それなしでは機器を制御出来ないわけですが、
VBを丸々捨てたM$ですから、今までのドライバを丸々捨てられることはあながち無いとも言い切れないような。
と考えると、データ転送ならUSBドライバ作るよりLANポートと標準ドライバの方が良いのかな???
でも、機器側のIPとかネットに入るの大変なんだよな。
と、独り言ですた。
0213デフォルトの名無しさん
NGNG0214198
NGNGやっぱIP設定があるのでUSBにします。
シリアル <-> USB 変換器
はどうなのか教えて下さい。
0215198
NGNGm$もLinuxもそういうことはしてくれませんか。
0216デフォルトの名無しさん
NGNGおまえさー、
>ZMODEMの時代が終わったっぽいので、USBに切り替えたいんでつ。
って自分で言っておいて何でUSB側をZMODEMにせなあかんねん。
0217198
NGNG確かに自己矛盾してますた。
開発なんて矛盾があるところの調整みたいなもんだし、、、
出来上がりはバリバリのUSBが良いけど、中の人がZMODEMであれば開発楽だなー、と。
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNGハブを経由するとデータが落ちてしまうことがある。
これってハブが悪いって断言していいのだろうか?
装置側が悪いってこともあるの?
0222デフォルトの名無しさん
NGNG他の機器が動くなら、御社に難あり。
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG難しいのを意外だと思う奴がいることが意外。
0225デフォルトの名無しさん
NGNG実際にSCSIコマンドを作成して、コマンド転送している部分が載ってる
ソースはありますか?
bulkusbなんて、バルクオンリーでSCSIコマンド転送してそうな感じが
したんですけど、IoCallDriverかなにかで全部丸投げしていて、肝心
のCBWを作成してる所や実際に転送してる所が判りませんでした。
CBW == SRB
CBWCB == CDB
という認識は間違って無いですよね?
0226デフォルトの名無しさん
NGNGbulkusbは、バルク転送でデータを送るだけ
SCSIコマンド云々は自分で実装しる
>>211で出てる
>WindowsXPデバイスドライバプログラミング 入門と実践
>http://www.amazon.co.jp/exec/obidos/ASIN/4774118419/
で、CDのストレージデバイスクラスを作成してるサンプルがあるから、参考になるかも
0227225
NGNGありがとうございます。
紹介してもらった書籍はあるので、これからは書籍ベースで解析してみます。
とは言うものの、Win32アプリからI/Oに送ったWriteFile()等のメッセージがIRPに
詰められて送られて来るとは思うのですが、そこからSCSIコマンドに直すところが
どうにも不明なところで、実際にやってるソースは無いかなと思ったのです。
0228デフォルトの名無しさん
NGNGファイルシステムフィルタドライバを作ろうと思ってます.
そこで,マイクロソフトのIFSキットでいるのでしょうか?
フリーのIFSキットあると聞いたんですけど,よくわかりません.
OSRのFSDKはダウンロード先が書いてないような・・・・
どなたか知っていたらお願いします.
0230デフォルトの名無しさん
NGNGext3ifsってのがあるよ
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNGフィルタドライバならDDKだけでいけるよ。
Filemonのソースを見れ。
0233デフォルトの名無しさん
NGNGご存知の方、教えてください。
0234デフォルトの名無しさん
NGNGフィルタドライバ実践の書籍は手元にあるので,読んでいるところです.
>>230
有難うございます
ソースをダウンロードして読んでみようと思います
これはIFSキットとは別でファイルシステムドライバそのものなのかな?
>>232
ご指摘有難うございます
サンプルを読んでみます
0235デフォルトの名無しさん
NGNGファイル一つ送るだけなのに、全部で30個のコマンド(コマンド転送、
データ転送、ステータス転送が一括りとして10個のコマンド)を送って
いて少し驚いています。
そこで質問なのですが、実際に書き込みたいデータ
(Write10のコマンド転送、実データ転送、ステータス転送)
を送っている所は、1個所しかなく、他の部分で行われ
ている処理も、SCSIコマンドを読み解くとWrite10のコマンド転送、
データ転送(何を転送?)、ステータス転送しています。
USBに書き込みたいファイルの中身を転送している場所以外のWrite10
コマンドは、何をしている所なのでしょうか?
どなたか、宜しくお願い致します
0236235
NGNGその上記の知りたい部分のByte配列で読みとれる部分には、
MSDOS5.0
NO NAME
FAT16
等の記述がありました。
USBの情報を取得しているなら、この部分のコマンド転送部の
CBWCBにはReadが来ると思うのですが、これもWriteなのです。
0237デフォルトの名無しさん
NGNGMass Storage デバイスの話しだよな?
http://www.usb.org/developers/devclass_docs
↑からマスストレージクラスの仕様書落として、読んでみたら?
0238デフォルトの名無しさん
NGNGよくわからんが、ファイルを書き込むならFAT領域なども当然更新
書き込みされる。で、それ以外の場所に何故か書き込むとかそういう話?
0239235
NGNGはい、Mass Storageの話で、紹介頂いた仕様書も
一応目を通しています。
>238さん
>よくわからんが、ファイルを書き込むならFAT領域なども当然更新
>書き込みされる。で、それ以外の場所に何故か書き込むとかそういう話?
それ以外の場所に、と言うよりは、書き込みたい内容の分(ファイルの実データ)
だけWriteすれば良いものだと思っていました。
それがUSBモニタで、ファイルをUSBメモリに書き込んだ全パケットを監視すると、
書き込みたいファイルの転送の前に、前処理の様にwriteが走っており、さらに
書き込みたいファイル転送の後には、後処理の様にwriteが走っています。
前処理部分で読みとれるのは>236で書いたとおりで、後処理では良く読みとると
(>236を書いてから気が付いたのですが)ファイル名らしき物がデータ転送部に
ありました。
その、此処で便宜上に言った前処理と後処理(それも含めてファイル転送なので
しょうが)について、そこで何が行われているのか教えて頂きたいのです。
たぶん前処理は、>238さんの仰るFAT領域などの更新処理なのかと思っています。
長文の上、説明下手で申し訳ありません。
0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNGそもそも「ファイルシステム」とは何か、ということを調べるといいと思う。
ちゃんと。
0244デフォルトの名無しさん
NGNGそれか、m$が配布してるバルクUSBサンプルの方が良いで塚?
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGちょっと処理足すだけでOKなんでつか?
0247デフォルトの名無しさん
NGNG転送単位が256B単位になっててHi-speedで使えんかったから増やしてみた。
あとは、もうちょっと速くするための工夫を挿れてみたとか。。。
0248デフォルトの名無しさん
NGNG本読んでみたら、Bulkてのが基本的なパケット通信みたいね。
とりあえず、BulkUsbのソース印刷してみまつ。
0249デフォルトの名無しさん
NGNGどうしたことでしょう。
0250デフォルトの名無しさん
NGNGインストールのチェックで抜かしたんじゃない?
0251デフォルトの名無しさん
NGNGインストールし直して入りますた。
0252デフォルトの名無しさん
NGNGWindowsNT/XPで、LPT1をCreateFileしてDeviceIoControlしたいのですが、
なにをやってもロジアナに反応しません。入り口でつまづいてます。
標準ドライバとかBIOSとか、その辺の設定に問題があるのでしょうか?
0253デフォルトの名無しさん
NGNGサンプル位しかないのかなぁ
0254デフォルトの名無しさん
NGNGこれぐらいしか知らない
http://www.sciencepark.co.jp:8080/bbs1/wwwboard.html
http://www.ouk.co.jp/ogawa/treecrsdx/index.cgi?
0255デフォルトの名無しさん
NGNG情報交換系ですか
勉強するためのサイトがよかったですが、掲示板でも見ていれば勉強になりますね
ありがとうございます
0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNG印刷結果を画像出力したいのですが、どのサンプルを見ればよいのか教えてください
XP_DDKの内容でお願いします。
0258デフォルトの名無しさん
NGNGftp://ftp.atfile.com/download/WindowsDDK/
http://club.shelek.com/viewfiles.php?id=2
0259デフォルトの名無しさん
NGNG2003DDKはないようですね
0260デフォルトの名無しさん
NGNGそれは注文するしかないってことか。
探せばありそうだが。
0261デフォルトの名無しさん
05/01/28 11:46:160262デフォルトの名無しさん
05/01/28 14:50:20質問が漠然としすぎです
0263デフォルトの名無しさん
05/01/30 17:37:26Ke386IoSetAccessProcess()
と同じような関数ってx86-64にありますか?
■ このスレッドは過去ログ倉庫に格納されています