WindowsDDK各種についてのスレ
■ このスレッドは過去ログ倉庫に格納されています
Microsoft Windows Driver Development Kits http://www.microsoft.com/ddk/ 注意: いつの間にやらDLできなくなってる。 CDを注文する以外に方法はない。しかも送料が$25。 古いバージョンについて Microsoft Windows DDK Version Retirements The Microsoft® Windows® 2000 DDK, the Microsoft Windows 98 DDK, and the Microsoft Windows NT® 4.0 DDK are no longer be available for purchase or download on this site. スマソ、分かりません。 というか、漏れがDDKを使って開発しようとしているのが >>181 と同じ。OS/2なら標準機能なのに。 >>183 thnx!! これを参考にしてちょっとした工夫を加えてみる。 マイコンピュータにA:やB:ドライブとしてでるのキボンね Windows2000でASPI経由でSCSIコマンドを発行しようと思ってます。 http://support.microsoft.com/default.aspx?scid=kb ;en-us;310072&sd=tech を適用してデバイスマネージャに認識させることまではできたんですが、 いざコマンドを出すとLUN8以上でSS_NO_DEVICEが返ります。 解決法等心当たりがある方はお願い致します。 CD-ROM(CDFS) の geometry を得たり、中身をベタで hex 表示したくて、 winXP では、nt4ddk を見て、できるようになったのですが、win98 でも できないかと 98ddk.exe などを落として来て調べていますが、難渋して います。 win98 では、Vwin32 を開いて、Ioctl() で、アクセスできないのでしょうか。 FAT, FAT32 は、vector にあった fd_rw にソースがあり、これに似た処理が できれば、よいと期待しています。 morry さんのサイトの、VxDCall で、int 2Fh を呼ぶ方式で、win98 でも CDFS を覗けるようになったけど、kernel version が違うせいか、winXP では、起動しないアプリケーションになってしまった。 XPでVxDCallって…ポカーン ドライバ開発者なのに9xとNTの違いすら知らん連中が増えてきたのか 単なる趣味のプログラマです。なんでも閲覧アプリを作っています。 起動しているOSを調べて、9x なら VxDCall するルーチンを呼ぶようにした のだけれど、リンクした lib が 9x の kernel を参照しているので、ダメなの です。今のとこ、#ifdef - #endif で、9x と XP とは分けるようにしたのだけ れど、この後2本立ては面倒なので、9x 対応部分は dll にしようかなと思って います。 それにしても、9x では、こんな面倒なことしないと、CD-ROM のセクタ読みが 出来ないなんて、どうなってるのでしょうね。15セクタまでも読めないし。 9x - ASPI NT - SPTI でいいんじゃないの? >>194 早朝からガイドをありがとうございます。 NT DDK を入手して5日目ですが、CDFS で追求してきて、fd_rw の DeviceIoContorl() 依存に したがったのが、回り道になった気もしています。 SCSI 制御を少し調べます。 また、質問したときは、よろしくお願い致します。 SCSI 制御はまだ途上ですが、ちょっと分からないことが出てきたので、教えて 下さい。 winXP で、CD-ROM の DISK_GEOMETRY を、MSDN の、 How Win32-Based Applications Read CD-ROM Sectors in Windows NT のサンプル通りに、IOCTL_CDROM_GET_DRIVE_GEOMETRY で DeviceIoControl() で、取得したのですが、Cylinders が、HiPart も LowPart もゼロで出てくる CD-ROM(media) にぶっつかりました。(別の CD-ROM media では、LowPart が 0x99 なんて出てきていました。) この media は、別の CD-ROM property を見るソフトで見ると、総セクタ数が 1,710 ですが、構造体 DISK_GEOMETRY の要素からはこの数はどうやっても計算 出来ません。 この DISK_GEOMETRY の求め方は、当てにならないということでしょうか。 それとも、この media が特殊ということでしょうか。16 sector に CD001 は あります。 つーかCD-ROMにCHSなんて無いんだから、 ASPIなりSPTIでREAD CAPACITYでいいんじゃないの。 >>197 レスをどうもありがとうございます。 愚痴になるけど、 IOCTL_CDROM_GET_DRIVE_GEOMETRY でぐぐると、結構出てくるのは、何な んでしょうね。 >>198 CD-R や RW じゃなくて、CD-ROM でそういうメディアありますか? >>199 お聞きのことが、よくわかりません。 198 は、IOCTL_CDROM_GET_DRIVE_GEOMETRY で検索すると、これで、 CD-ROM sector を読むサンプルや説明があるということです。 また、196 で、media といったのは、CD-ROM というだけでは、 FD, HD, MO といった分類に聞こえるので、円盤自体をいいたかった ためです。 用語も厳密に理解していないため、誤解を与えたらお詫びします。 ASPI については、adaptec の driver の download の中に pdf で technical reference があったので、それを見ていますが、access で READ CAPACITY 相当のコード例が見つからず、なかなか進みません。 >>201 お教えいただきありがとうございます。 また、新しい用語が出てきて、○×△です。ボチボチ読みます。 ntddscsi.h が必要らしいのが分かって nt4ddk の中を探しましたですよ。 ところで、ANSI は移転したんですねえ。 >>200 あ、誤解や有用なサジェスチョンとかじゃなくて、マルチセッションがらみで その辺の仕様に影響がでていたような記憶があったので、ROM と R(RW) で違いがあるのかな、と思って聞いてみたわけです。 DDKってSPごとにバージョン違うんでしょ? おれ、win2kddk.exe持ってるけど、SP1って表示される。 >>203 ゆくゆくは、Mac も Unix のも読めるようにしたいと思っていますが、 今は、16 sector に CD001 があるものを読めればと思っています。 17 sector 以降にもいろいろエントリがあるようですが、まだその意味 まで把握していません。CD-RW は容量も違うので、ちょっと違うかなと 想像していますが、CD-R は焼けば、CD-ROM ではないかという程度の 理解です。 vector にあった、fd_rw のソースを生かしたいと、読んだデータを BPB とかに合わせようとしていますが、197 の方がご指摘のように CHS はないですから、CD001 形式に限れば、16 sector を読んで、 そこにあるデータを分解すれば、こと足りるわけです。 余談ながら、DiskEditor というソフトで、総セクタ数を見ると、 16 sector の total sector より 0x10 少ないのも気がかりなこと です。0 - 15 sector は含めないということでしょうか。 >>204 DDK って買うものみたいで、download も出来るので、変な印象を持って います。 ntddscsi.h が見つからず、他に ddk があるかと探しましたが、ms の サイトでは、ftp サイトの dir のリストを許してくれませんでした。 どんな SP があるか分かるといいですよね。 尚、ntddscsi.h は、nt4ddk にひそんでいました。 DDKを入手することで手に入るのは、デバッグ用シンボルテーブルの付いた カーネルおよびその他周辺プログラムのイメージという理解でいいですか? と考えると、SPがOSのcoreの総とっかえということからして、DDKのバージョンも SPの数と同じだけあることになりますね。 あのー 学生でPGバイトしてて ddk使って〜な機能のもの作れって言われたんですがー バイトで半年やってるだけの人にできるんでしょうか >>211 半年という期間はどうでもいい、君の知識と能力次第だ。 出来る人もいれば、出来ない人もいる。 自分で判断できないようなら、君は間違いなく後者に属すると思う。 >>211 ドライバの本を買って読めば、そのうちなんとなくわかってくるよ。 >>214 やっぱ,本とDocument読んでがんばるしかないんですね. がんばります >>213 でいうところの「出来る人」であれば、サンプルソースをとっかかりにしてdocument漁るのが一番早いね |;´-`).。oO(IFS キットって、何であんなに高いんだろう? まあフリー版IFSで結構ファイルシステムドライバ書いてる人は 多いみたいなんで、そっちでいくってことで。 しかしあれはドキュメントも何もないのに彼ら(↑の書いてる人)は どうやって開発方法とか学習したんだろう? あーバイトには無理みたいです というか,自分には無理でした. もう,前に進む気がしない でも,社員は,進んでると思ってる. >>221 どうにもならなくなる前にゴメンナサイしとけ もしくは、やる気が残ってるなら、聞きまくれ やる気はありますが, DDK経験者の社員がいないので,聞けない状況です. 今度,今の状況を詳しく説明して,まだやれって言われたら もうちょっとがんばってみます. ホントはバイト先変えたいのですが, それが終わらないと辞めますもいえないし T T いきなり、激しい質問をしてしまいますが、プリンタードライバーを開発しようと する場合にはDDKを入手すればなんとかなりますか? ファイアーウォールと実行ファイルを実行させないツール(BlackICEの実行制限機能の簡易版みたいなの)が作りたくてDDKを購入したのですが何から手をつけていいのかわかりません。 本屋でDDK関連の本を立ち読みしたのですが、どれも内容はUSBのドライバに関するものばかり。 USBのドライバでも学べば他のツールを作れるようになりますか? >>229 ありがとう。 ソース読んで挑戦してみます。 すみません。忘れてたした。 >『ファイアーウォールと実行ファイルを実行させないツール』 >『ファイアーウォール』と『実行ファイルを実行させないツール』 >どっちだ? 『ファイアーウォール』と『実行ファイルを実行させないツール』の方です。 >>220 フリー版IFSはどこから手に入れるのでしょうか? $md5sum DDK_XP.ISO add294e46849d80b89c0f67662598136 *DDK_XP.ISO これは正しいですか? USB使う場合って、標準USBドライバに合わせるべきなんか、 独自USBドライバ作るべきなんか、 どうやって判断してまつか? 標準のクラスに合わせて作るべき どのクラスにも当てはまらないようなデバイスなら独自で 標準クラス一覧を日本語で読めるところ無いかな... それと、DDKでなくて、ツールを購入すると50マソ近くするみたいですが何とかなりませんか。 関数を一杯作るんでなくて、クラスライブラリの派生で作りたいでつ。 ファイルシステムドライバってプラグアンドプレイとか電源管理ってやらないんですか? あひゃ、Morry's Un'Gramming Pageが閉鎖してた。 >>246 Internet ArchiveにはHTMLは全部残っている。画像がかなり足りないが。 http://web.archive.org/web/20040125191913/tech.millto.net/ ~morry/ で、久しぶりにその内容をじっくり読んで実験を行ってみたところ、 Win32アプリ単体で下位1M領域にメモリを確保することに成功。 もちろん、Win32アプリからBIOSを呼び出すこともできた。 この手のページは更新されなくても存在するだけで価値があるんだけどなあ。 なんとなくリンク http://f7.aaa.livedoor.jp/ ~inusite/zatugaku/note/close.html http://deztec.jp/lecture/cl/close.shtml 維持するにはコストが必要だということを無視しまくってるな >>245 があったのは無料サーバだし 運営会社が消滅してるのにサーバが存続してるという謎の状態だから コストの問題で閉鎖したのでないのは明らかだが。 sysなどを作るときに使う build.exe っていったいなにをやってるんですか? nmakeを呼び出してるんですか? cl.exeを呼び出してるんですか? 初心者ですいません 自分で調べたら, setenv.batが設定をして,buid でnmakeを呼んでました. nmakeが,cl や link などを呼び出していました. >>247 暫くこのスレ見てなくて気づかなかった。 教えてくれてありがとう。 入手困難な古い技術書とかマニュアルとか、 ああいう世界へ行ってしまったよーな気分だった。 vmwareとかcolinuxを見てると、Windowsのドライバという形で なんでも実装できるんだなと思わせられますね。 二つともcr3やgdtrとかldtrを制御が回ってくるたびに書き換えてるわけでしょ? Windowsがリング0とリング3しか使ってないことを利用して、 仮想マシンはリング1で動かしてるんじゃなかったっけ? >vmware 非特権命令のsgdtあたりをどうごまかしてるのか知らないけど >>256 これが概要図としては分りやすそう。 http://www.extremetech.com/article2/0,1558,1156611,00.asp これを読む限りじゃVMX driverとVMMはring0で動いてるらしい。 CPUとメモリはVMMが直にアクセスしてるところを見ると、 VMX driverが連続した物理メモリ領域を確保して、VMMにコンテキスト スイッチするたびに、うまいことやってMMU関連を誤魔化してるんだろか。 USBのドライバである.SYSを作成したいんですが、 コンパイラはVC++本体ですか? それとも、Development Kitsのコマンドプロンプトですか? それと、プロジェクトファイルを作るときは、EXEと同じ感じで良いのでしょうか? ビルドは、DDK付属のbuildコマンドで行います。 プロジェクトを作るときは、makeプロジェクト?にしましょう。 外国産のツールなどで、VCでもビルドできるようには出来ますが あくまでもbuildコマンドを使うのが基本のようです。 また、buildコマンドを実行する前に環境変数の登録等(DDKにバッチファイル付属)を行うようにします。 SOURCES、MAKEFILEの準備も忘れないで下さい。 Win32からFriendlyNameを変えるのはSetupDiSetDeviceRegistryPropertyでいけるんですが ドライバ側からFriendlyNameを変えるのってどうやるんでしょうか? 同じデバイスをいっぱい繋げてるんですがデバイスマネージャで見分けるのに デバイスから固有の情報をもらってFriendlyNameを変えるようにしたくて… サンクス>>259 buildコマンドで上手くいきました。 DOSプロンプトで作るなんて不思議ですね。 >>263 手元にあるWindows DDK 2600では可能みたいだ。 DDKサンプルをcygwinのgccでコンパイル, リンクすることは可能でしょうか? いちおう,kernel32.lib -> libkernel32.a のように,対応するライブラリファイルはあるようです. >>265 自分でmakefile書けばなんとかなるんじゃね リンク手順が面倒だったり、ヘッダやスタブライブラリの中身が足りなかったり、 ヘッダそのものが足りなかったりすることが多々あるけど。 >>264 AMD64向けビルドしようとするとamd64mk.incが無いって出る。 しかもどこにも無い予感。 いったいどこに? >>267 2600ではItanium用しかないからでは。 Server 2003 SP1向けならあるかと。 ファイルシステムをユーザモードで実装するための ライブラリみたいなのがあったような気がするんですが、 どなたかご存知ないですか? >>270 すみません、知らなかったので調べてみたんですが、 IFSってファイルシステムのフレームワークということで ファイルシステムのドライバを書くことになると思うんですが、 何か勘違いしてますでしょうか? 以前見たライブラリは、ドライバ自体はユーザモードの アプリケーションと通信する機能しか持たなくて、 実装をほとんどアプリケーションで行っている、ってやつ だったような気がしたんですが、どなたかご存知ないでしょうか? マスストレージデバイスのドライバを作成するために 必要なハードウェアの仕様を知りたいのですが、 それが記載されているURLありませんか? >>271 そーゆーのあったら俺も欲しいもんだ。 >>272 デバイス製造者にあたるのが筋ではないか? 実装を調べるのなら、Linux, *BSDのソース覗くと ちょっとはヒントになるかもな。 >269 これ? ttp://web.mit.edu/fifs/www/ TrueCrypt のソースって、IFS を理解する上で参考になる? ttp://www.truecrypt.org/ USB2.0の自作デバイスと約20MBytes/sで数時間通信していると、 0x000000D1 IRQ_NOT_LESS_OR_EQUAL Usbehci.sys でOSが落ちるのですが、原因がわかりません。 自作ドライバが悪いのか、 デバイス側のUSBコントローラ(FX2LP)が悪いのか、 usbehci.sysが悪いのか。 どなたかご存知ないでしょうか? usbehci.sysのバージョンはXPはSP2のもの、 2000はSP4以降のものを使用しています。 >>276 デバイスの熱暴走か? 自作デバイスに冷却ファンを付けてみればいいかも。 XP用ドライバ入門者ですが、入門変にUSBマウス用ドライバは難しいですか? >>277 返答ありがとうございます。 FX2LPはFX2のLP版でかなり消費電力が抑えられています。 FX2はちりちりに熱くなったけど、 FX2LPはちょっと温かい程度です。 なので熱暴走ではないのではないかと考えていますが、 やっぱりデバイス側(FX2LP自体またはファーム)が原因と思われますでしょうか? そういえば、前にFX2をいじっていたときも、 間違ったファームを書いたら即座にOSが落ちたことがありました。 もう少し具体的に説明させていただくと、昔から使っていたBallPointMouseをVAIO-U1で使いたくて 1)PS/2⇒USB変換@Arvel 2)232C⇒USZ変換@IO で試したのですが、ダメでした。1)はBallPointMouseのデータがPS/2規格以前のものらしい事、 2)は、認識はされるがドライバ側でBallPointMouseを非サポートの為、カーソルが飛び回ったり。。。 で、結果的にダメでした。 ただ、BallPointMouse自体はSerialマウスなので、RS232C経由のデータの送信自体は正常で USBドライバ側でBallPointMouseの定義が無いだけのようです。 ゲゲったら、NTまではDDKのサンプル・ソースにBallPointMouseの定義が含まれている旨があったので このスレの、神カキコからnt4ddk.zipをDLして、MSERIES.C中に // // Microsoft BallPoint. // 。。。以下省略、を発見したところです。 想像するに、自前のUSBマウスドライバ側で標準Mouseより長いBallPointMouse型のデータを 正しく受け取り、上位層(カーソルのプロトコル?)に正しく渡してあげる部分だけを なんとかすればなんとか成るのかな。。。ところで、自分で出来るかな?みたいな状態です。 っていうか、やる気なんですが。一点、心配事としては、見つからないだけで既に誰か神が もう作ってくれているんじゃないかなという点です。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる