【WDM】Windows Driver Model相談室【デバドラ】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
2008/02/03(日) 03:24:29このスレで質問する人の大半が
目的とやりたいことがあってない
0564デフォルトの名無しさん
2008/02/08(金) 15:37:36BIOSの設定を、Windowsから変更することできませんか?
WDM(デバイスドライバ)経由でできたりしないのでしょうか?
BIOSの時計は、Windowsから同期(変更)しているみたいだから、
できそうな気がするのですが・・・
0565デフォルトの名無しさん
2008/02/08(金) 20:18:500566デフォルトの名無しさん
2008/02/08(金) 22:29:510567デフォルトの名無しさん
2008/02/09(土) 00:05:090568デフォルトの名無しさん
2008/02/10(日) 15:54:56設定方法次第。
I/O経由なら可能だろうけど、
保存場所がメモリアドレスに出てきていたら、不可能な場合もある。
0570デフォルトの名無しさん
2008/02/10(日) 20:11:16CMOSのI/O portのlockはHALが持っているから勝手にアクセスすると
トラブルの原因になる。
DDKではobsoleteと書かれているがHalGetBusDataの引数に
BUS_DATA_TYPEでCmosがあるからそれを使えばアクセス可能だと
思われる。
0571デフォルトの名無しさん
2008/02/10(日) 21:34:09目標は各種ループバックデバイスが作れるレベルです。
0572デフォルトの名無しさん
2008/02/10(日) 21:59:43お前に言いたい事は、
目的によって実装が全然異なるのに「各種」なんてあるわけない。
その程度の事がわかるぐらいになってからドライバを書け。
そもそもDRM対策で個人ドライバ開発者が厳しい状況に置かれている
事を理解しろ。
0573デフォルトの名無しさん
2008/02/11(月) 00:42:06DDK落としてtoasterで心行くまで遊べばいいと思う。
実際より書籍が好きなら忘れてくれ。
0574デフォルトの名無しさん
2008/02/17(日) 21:47:25複数の異なるアドレスからデータを非同期に読みたいのです。
例えば4つのスレッドからドライバにアクセス(ReadFie、IO_CTRL_・・・等)する場合に、
複写元にデータが入ったタイミングで割り込みきて、
DPCで複写先(スレッド毎に異なる場所)にコピーするとき、
ISR、DPCでどのスレッドからのReadFileがきたのかを
判断する基準てあるのでしょうか?
ISRには独自データを追加する場所もないようです。
ISR、DPCを複数用意する手段があるのでしょうか?
0575デフォルトの名無しさん
2008/02/18(月) 08:23:37リクエスト元のスレッドなんて意識するような作りをしちゃいかんだろ。
何の為のIRPだ。
readに対する応答処理として、それは誤っている。
故に、死ね。
0577デフォルトの名無しさん
2008/02/18(月) 12:38:07複数のアドレスとring3のスレッドが一対一対応しているなら
アドレスの数だけ新しいデバイスオブジェクトを作っちまったら
どうだ?
どうしてもダメなら
・プロセスID、スレッドID等の情報をドライバに登録する
DeviceControlをつくり、読み書きの前にスレッド情報を
登録しておく。
・ReadFileはやめて
DeviceIoContro(
ハンドル,
スレッド識別読み取りコード,
上記情報バッファのアドレス,
上記情報バイト数,
読み取りデータ格納バッファアドレス,
読み取るバイト数,
...
);
・WriteFileはやめて
DeviceIoContro(
ハンドル,
スレッド識別書き込みコード,
上記情報に書き込みデータを付加したバッファのアドレス,
上記情報 + 書き込むバイト数,
NULL,
0UL,
...
);
実装としては果てしなくダサいな・・・
0578デフォルトの名無しさん
2008/02/18(月) 17:23:470579デフォルトの名無しさん
2008/02/19(火) 21:27:42WDMで書くのをやめる。
0580デフォルトの名無しさん
2008/02/20(水) 12:33:39まずドライバに持たせたバッファにコピーするだろw
0581デフォルトの名無しさん
2008/02/22(金) 01:51:29解決できない問題があり質問させていただきます。
ドライバはKS(KernelStream)のMiniDriverとしてつくっており、
Filter1つに、Pinが WaveとMidi用のCapture/RenderPinの計4本の構成です。
あと、各ピン用のBridge Pinを用意しています。
PinのCreateまでは成功しているのですが、
その後、Pinステートの変更、PCMストリームデータのRead/Writeをしようとすると
KSから MiniDriverの
・PinSetDeviceState ルーチン
・PinProcess ルーチン
がコールされなく、原因を探しています。
原因の手掛かりになりそうなことでもいいので
わかる方がいましたら教えていただけないでしょうか?
( KSPropertyでサポートしないといけないものがある、
KSディスクリプタの設定内容に怪しい箇所がある、 など)
ドライバの動作確認には、WDKの付属ツール
KSStudioを使っています。 WDKは Ver6001です。
ちなみに、
PinCreate ルーチン
PinClose ルーチン
PinSetDataFormat ルーチン
IntersectHandler ルーチン
はKSから問題なくコールされています。
各ルーチンは、KSPINディスクリプタに登録しています。
宜しくお願いします。
0582デフォルトの名無しさん
2008/02/25(月) 00:14:32自己レスです。Pinのルーチンが呼ばれない件、解決しました。
Pinの接続設定とPinディスクリプタの設定値に不備があったのが原因でした。
失礼しました。
0583デフォルトの名無しさん
2008/03/03(月) 16:23:26を作ろうとしていますが、インストールで詰まっています。
参考書:滝口著「フィルタドライバプログラミング」では、最も一般的な方法として
DDKのサンプルにある「addfilter.exe」をビルドして使えといっており、たしかに配賦
のためインストーラーが必要になりコマンドラインベースの方法が良いので納得です。
しかし説明に乏しく引数の指定方法がよくわかりません。
usage:
addfilter [/listdevices] [/device device_name] [/add filter] [/remove filter] [/lower]
とありますが、 [/device device_name] というときdevice_nameはどんな指定のしかたをするのでしょうか?
XXXX.sysといったことなのか、それとも何かレジストリキーのようなものなのか。
[/add filter]も同様で何を指定するのか判然としません。
どなたかご存知のかた、教えていただけませんか?
宜しくお願いします。
0584デフォルトの名無しさん
2008/03/03(月) 17:42:21正直あの本の方法は特殊だと思う。
一般的に特定のデバイスで動作させるには、
そのドライバにインストールできるようなInfファイルを書けば良くて
サンプルはDDKについてるから、それとヘルプ参照しながらで
簡単に作れたと思う。
0585デフォルトの名無しさん
2008/03/06(木) 12:34:34ざっとソースを眺めたところ、
device_nameは/listdevicesの出力結果、
filterはHKLM\SYSTEM\CurrentControlSet\Servicesにぶら下がってるキー名
に見えた。
0586デフォルトの名無しさん
2008/03/14(金) 03:44:23Visual Studio 2005 なら正式版あるけどテンプレにドライバなかった
0587デフォルトの名無しさん
2008/03/14(金) 05:52:54Visual Studioに統合もできたはず
0588デフォルトの名無しさん
2008/03/14(金) 11:39:050589デフォルトの名無しさん
2008/03/14(金) 17:24:31本家WHDCサイトも見ておけッ
http://www.microsoft.com/japan/whdc/DevTools/default.mspx
0590デフォルトの名無しさん
2008/03/14(金) 21:03:48ありがとう。探してみるわ
>>589
サー!イエスサー!!
0591デフォルトの名無しさん
2008/03/20(木) 16:36:37wudfddi.hをインクルードすると
構文エラー : 識別子 '_in'
というエラーが出てしまいます。
確か、VS2002や2003で最近のSDKやWDKをコンパイルとすると
この手のエラーが出たような記憶があるのですが、
何とか突破する方法はないでしょうか。
WDKとダウンロードインクルードパスの追加は完了しています。
0592デフォルトの名無しさん
2008/03/23(日) 21:49:58止む無くVC2008をインストールして解決することにしました。
0593デフォルトの名無しさん
2008/05/09(金) 21:00:21それは最近のVC++の/analyzeオプション用の注釈だと思う。
単純に/D__inとかで空に置換してコンパイルできない?
0594デフォルトの名無しさん
2008/05/11(日) 10:33:31VCに最初から入っているPlatformSDKに相当するものとの相性があって
最新のもの同士なら大抵うまくいくが、片方のバージョンが違うと
インクルードがうまくいかないことが多い。
WDKは最近出たものだから余計そうじゃないかと。
逆にPlatformSDK入れてパス通せばうまくいくんじゃないかと。
すでに動いているだろうから余計なことする必要は無いけどね。
0595デフォルトの名無しさん
2008/05/26(月) 21:52:05windows.hがインクルード出来なくて、RegOpenKeyEx()が使えないです。
なにかヒントください。
VC6+XPSP1DDKです。
0596デフォルトの名無しさん
2008/05/26(月) 22:32:31Windows起動中にロードするドライバだとレジストリの場所によっては読めないところもあるので、
注意してくださいね。
0597デフォルトの名無しさん
2008/05/26(月) 22:33:02Windows.hはユーザーモードアプリケーション用であって
ドライバのカーネルモードはntddk.hとかになる。
サンプルをインストールしてよく見てみるべし。
0598デフォルトの名無しさん
2008/05/26(月) 22:36:200599デフォルトの名無しさん
2008/05/28(水) 22:58:32ハードウェアが存在しないのでバスドライバがハードウェアの追加を「検出」することも
ないと思うのですが、実際にはAddDeviceがちゃんと呼び出されるみたいです。
なぜ呼び出されるのでしょうか? MSのサンプルRAMディスクのソースを見ても
特別なことをしているようには見えません。
0600デフォルトの名無しさん
2008/05/29(木) 20:27:50RtlQueryRegistryValuesで読めました。
引数悩んだけど、なんとかなりました。
thx
0601デフォルトの名無しさん
2008/05/30(金) 22:14:07.inf(inx)
0602デフォルトの名無しさん
2008/05/31(土) 09:38:22デバイスマネージャで非表示デバイスの表示をやると出てくるやつがそれだ。
そこに登録されているものは、すべてのデバイスの列挙が終わってから
DriverEntryが呼ばれる。
DriverEntryでの処理が適切であれば、AddDeviceがすぐに呼ばれるはず
AddDevice内で正式に処理を行う。
で、普通のドライバかカーネルモードサービス(という表現を他のところで見たが
これの正式な言い方は知らない)をどこで区別してるかというと
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
が本体のエントリポイント。
だから手順を知っていればInfすらいらないはず
まあ、Inf使ったほうが確実だとは思うけどね。
0603デフォルトの名無しさん
2008/06/02(月) 10:54:45トンクス。(599じゃないけど
自分で追ってみたんだけど、Servicesセクションの、AddServicesディレクティブで指定したセクション内で、
StartType = 3 ; SERVICE_DEMAND_START, bulkusbの場合…PnPで検出する場合はこちら
と指定するか、
StartType = 0 ; SERVICE_BOOT_START, ramdiskの場合…OS起動時に必要なデバイスはこちら
の違いだと、思ってるんですが、、あってます?
あとお聴きしたいんですが、
ramdisk(StartType=0?)の場合、AddDeviceに渡されるPDOって何なんでしょうか?
他のデバイスの場合は、バスドライバが作成した何かだと思うんですが…
0604603
2008/06/03(火) 00:13:00modelsセクションのhw-id, ramdiskサンプルでいうと以下のRamdiskのところ(普通のバスならベンダIDやプロダクトIDが入る)に、
テキトーなIDを書いておけば、デバイスの有無に関わらず、AddDeviceが呼ばれるようになるのかな?
[Manufacturer]
%MSFT% = DiskDevice,NTx86
; For Win2K
[DiskDevice]
%DiskDevDesc% = DiskInstall, Ramdisk
; For XP and later
[DiskDevice.NTx86]
%DiskDevDesc% = DiskInstall, Ramdisk
このhw-idは、PnPデバイスならデバイスが接続されたときのinfファイルの探索に用いられるのか。
0605603
2008/06/03(火) 01:14:27Walter本(15章)でいうHardware (instance) keyが、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\UNKNOWN\0000 として
登録された。
(USBだと HKLM\SYSTEM\CurrentControlSet\Enum\USB 以下にHardware keyが来る。デバイス1つごとに。)
察するに、Ramdiskのような非PnPデバイスは、OSの起動時なりにこのEnum\Root以下のキーがすべて対応するドライバにPDOとしてAddDeviceされるんかな?
ご意見かポインタきぼんぬ。
0606603
2008/06/03(火) 01:34:37ちゃんと読まなきゃダメだな。スレ汚しスマソ
0607デフォルトの名無しさん
2008/06/05(木) 17:31:44プリンタドライバ開発を始めようというところで、ソースコードデバッグがしたいのですが、
ブレークポイントの設定ができずに悩んでます。
1.サンプルをServer 2003 Checked x86 でビルドし、インストール・実行はできた。
2.そこでできた.pdbと.dllとソース類をまとめて解析用マシンにコピーし、Symbol Path、SrcPath, Image Pathに追加。
3.src*c:\test*http://msdl.microsoft.com/download/symbolsとやって、何やらダウンロードはできている模様。
4.解析用マシンからBreakし、F9などでブレークポイントを入れても、その行の色が変わらない。
5.Edit - BreakPointダイアログを見てみると、ブレークポイントが追加されているみたいだが、
「0 eu 0001 (0001) .....」となっており、「unresolved」らしい。
�C.印刷実行中にメッセージボックスを出し、そこで解析用マシンからBreak。
�D.Step実行をすると、アセンブラが表示されて1行ずつ実行されているような雰囲気。
どうもシンボルが読み込めていない気がするのですが、どうすれば良いでしょうか?
0608デフォルトの名無しさん
2008/06/05(木) 22:36:094の時点でだめだね
使ってるモジュールがリリース版になってるなどして
ロードしてるモジュールとシンボルが一致して無い。
ロードしてからコンパイルしなおしてるとか
ちゃんとファイルがコピーされているから
日付、サイズをちゃんと確認すべし。
0609デフォルトの名無しさん
2008/06/06(金) 06:14:490610デフォルトの名無しさん
2008/06/06(金) 10:20:16レスありがとうございます!
1.実行用マシンの Server 2003 Checked x86 でリビルドし、プリンタインストール。
2.すぐに解析用マシンにソースとpdbファイルなどをコピー。
3.実行用マシン再起動
としてみましたが、結果変わりませんでした。
何か基本的な手順を抜かしていたりしませんか?
あと基本的な質問なのですが、
実行用マシンで印刷が実行されると、それに必要なモジュールが解析用マシンにロードされるのでしょうか?
そしてモジュールがロードされた後に、pdbなどのシンボルを探してロードするのですか?
>>609
すみません、タイプミスでした。
実際は srv にしていたので、そこは大丈夫かと思います。
0611デフォルトの名無しさん
2008/06/07(土) 00:46:11(DLLって言われた時点で気がつくべきだった)
カーネルデバッグできるのはカーネルモードだけだった気がする
だから、VisualStudioか、WinDbgで、起動してるプロセスにアタッチするように
するしか無いんじゃないかな
0612デフォルトの名無しさん
2008/06/07(土) 09:53:37プロセスにアタッチって1台のマシンでやるわけですか?
0613デフォルトの名無しさん
2008/06/07(土) 16:58:490614デフォルトの名無しさん
2008/06/08(日) 12:05:37INFファイルから起動かけるのって無理かな?
逆に、EXEからINF実行って仕組みが一般的?
0615デフォルトの名無しさん
2008/06/08(日) 14:27:19デバッグするマシンにWinDbgいれれば1台でできるし
開発マシンから見たければ、リモート設定すればできる。
ただ、どっちにしろ、パスだのログインだのアクセス権だの
結構めんどくさい&ひっかかるので注意。
>>614
ExeからInfならSetupDi系関数なら簡単じゃなかったかな
ドライバインストール時に呼ばれる個別設定はCoInstallerDLLだったような・・・
0616デフォルトの名無しさん
2008/06/09(月) 00:42:13デバッガから印刷しなければ1台で問題なし
そもそもWinDbg自体から「プリント」はできないはずでは?
WinDbgを入れて、スプーラにアタッチして
それから、メモ帳などを開いて、印刷実行
これでマシンは1台でOKですよね?
ブレークポイントがうまくつけられない orz
0617610
2008/06/09(月) 13:33:11プロセスにアタッチして、とうとうデバッグができました・・・(;*´∀`*)
「ファイルに出力」ってのを選ぶとプリントプロセッサが動かないらしく、
何もつながってないポートを選んで印刷したらブレークポイント設定できました。
VisualStudioでもデバッグできたので、ビルドもできれば楽になりそう・・・
0618デフォルトの名無しさん
2008/06/12(木) 20:52:15CreateFile(filename〜)を指定して、ファイルを作り出そうとしているんですが
うまくいきません 無論fpt=fopen("log.txt","w") などしても
無駄です。
OUTPUTとしては「印刷物(中間ファイル)」と「コード中に外部ファイルに
書き込んだファイル」
を考えているのですが、、、、ドライブのソースコード中に何を
書いたら外部ファイルをつくりだすこともできるんでしょうか?
要するにコンソールでいえば、fopenして外部ファイルに書き込んで
チェックする作業をドライバでもやりたいのです。
0619デフォルトの名無しさん
2008/06/12(木) 23:16:25コンパイルエラーとかはないの?
デバッグでステップ実行してみたら?
俺は印刷データをビットマップファイルに保存するのに成功してるから、
普通のログファイル作成も問題ないはず。
0620sage
2008/06/12(木) 23:27:10AVStreamのMiniDriverとしてUSBAudioドライバを作っているのですが、
MIDIのストリーム転送機能で、KS(KernelStream)から送られてくる
MIDIデータに不明なデータがあります。
KSから送られてくるMIDIデータは、
不明データ(4バイト)+MIDIメッセージ長(4バイト)+MIDIメッセージ(可変長)
の形式で繰り返し送られてきます。
不明データと書いた最初の4バイトが何を指すものか
知っている方がいたら教えてください。
USBAudioドライバからデバイスには、USBMIDIフォーマットで
転送するため、MIDIメッセージ以外のデータを送る事はないのですが、
制御かなにかで必要となるデータなのでしょうか?
宜しくお願いします。
0621デフォルトの名無しさん
2008/06/12(木) 23:39:29sageさん、思いっきりAGEてるんですけど><
0622デフォルトの名無しさん
2008/06/13(金) 17:26:45WDKをVSに統合したいんですけどどうすればいいんですか?
アプリみたいにVS上でIDEを使って開発したいんです。
WDK: Server 2008
VS: VS2008Pro
0623デフォルトの名無しさん
2008/06/14(土) 01:46:17APIつかってエラー出たならGetLastErrorが基本。
>>620
KS系はPinで定義してあるデータを送るものだから
Pinの定義を調べてみては?
>>622
ddkbuild.cmd
0624デフォルトの名無しさん
2008/06/14(土) 13:49:08老師、感謝
今からGoogle先生を訪問します
0625デフォルトの名無しさん
2008/06/14(土) 19:19:24ありがとうございます。
PINの定義としては、
DataRange.MajorFormat = STATICGUIDOF(KSDATAFORMAT_TYPE_MUSIC);
DataRange.SubFormat = STATICGUIDOF(KSDATAFORMAT_SUBTYPE_MIDI);
DataRange.Specifier = STATICGUIDOF(KSDATAFORMAT_SPECIFIER_NONE);
Technology = STATICGUIDOF(KSMUSIC_TECHNOLOGY_PORT);
を設定しています。
WDKドキュメントで、KSから送られるMIDIデータのフォーマットを
探しているのですが、見つけられないでいます。
0626デフォルトの名無しさん
2008/06/14(土) 20:52:39タイムスタンプぢゃないのかしらん
0627デフォルトの名無しさん
2008/06/14(土) 23:20:24定石をありがとう。感謝します。
CreateFile関数はどうやらプリンタドライバ中では使えない様
なんですが、、ZwCreateFileという関数があるのですが
それならプリンタドライバ中でも使えるのか今確認していますが
何か情報をお持ちの方は情報をお願いします。
最悪、スプーラに書き込みを行えばWinDbgなしでもDebug作業が
できることはわかりました。
0628デフォルトの名無しさん
2008/06/15(日) 10:35:18ちょっと聞きたいんだが、仕事でプリンタドライバ作ってるの?
お遊びなら、色々試行錯誤して楽しむのもいいけど、お仕事ならきちんと基礎を身に付けてから
でないと、ユーザーに大きな迷惑をかけることになるよ。
周りにドライバを作り慣れた先輩とかいないの?
0629デフォルトの名無しさん
2008/06/15(日) 10:54:56勉強しつつがんばってくれ、みたいな感じで始まった。
仕事はいろいろともらっている2年生。
嫌ではないが、進んでやりたくはないという状況だなー。
だって全然わからんのだよ・・・orz
>>627
ソースがいま手元になくて分からんけど、
CreateFileWって関数かも?
Unicodeじゃないとだめって制限があるらしいので。
0630デフォルトの名無しさん
2008/06/15(日) 15:15:31>>627の書き込みからカーネルモードのドライバを作っていると想像するが、「ユーザーモードのアプリや
サービスから使用できる関数と、カーネルモードのドライバから使用できる関数は全くの別物」とうことは
デバイスドライバを作る上で一番最初に知るべき基礎の基礎ですよね。
CreateFileWもユーザーモード用のWindowsAPIです。
基礎を知らずに作るととりあえず自分のパソコンでは動いても他の環境では動かない物が出来上がる、
というのはアプリでもドライバでも同じだけど、ドライバの場合はたいていOSもろとも落ちるからねえ。
周りに聞ける人がいないなら、書籍ですかね。
お奨めは、
http://www.ascii.co.jp/books/books/detail/4-7561-3913-2.shtml
これで難しいと感じるなら、その前の入門書として
http://seshop.com/detail.asp?pid=1005
ですかね。(どちらも古い本だから、今はもっといいのがあるかも)
後は、自分の担当するデバイスに一番似通ったDDKサンプルを実際に動かしてみる(必要なら対象機器を
勉強用に会社に買ってもらう)のが良いんでは。
ドライバもだんだんユーザーモードで作れるようになってきてるみたいだけどね・・・
0631デフォルトの名無しさん
2008/06/15(日) 15:37:49>>611にも書いてるけど
0632デフォルトの名無しさん
2008/06/15(日) 16:31:30そういうのは定番の本で足りちゃうんだよね。
で、ドライバに関してはさらに特殊でカーネルモードですらないっていう
これはMSDN、ぐぐる、サンプルソース見るしかない。
ユーザーモードについては一般的なプログラミング知識があればできると思うけど
GetLastErrorを試してないあたりに、その知識も少ないと感じる。
セキュリティ的な面でユーザーモードといえども使えない関数があるかもしれないから
最低でもGetLastErrorで調べてみろってことなんだが。
とにかくがんばれとしか言いようが無いな。
0633デフォルトの名無しさん
2008/06/18(水) 19:16:3486用には普通にビルドできるんですが、64用にビルドすると
外部参照エラーになってしまいます。WinUsb_Initialize()とかの
関数が軒並みアウトです。
普通にリンカーの餌に、SDKのLib/x64ディレクトリにあるsetupapi.lib
を与えてるんですけど。WINSUB.libなんてのも有りそうで無いみたいだし。
だれかわかる人がいたら教えてください。
環境はVC++2008 / Microsoft SDKs v 6.0A / WinDDK 6000です。
0634デフォルトの名無しさん
2008/06/18(水) 19:19:55WINUSB 正
0635デフォルトの名無しさん
2008/06/19(木) 09:47:14どこを見てるんだ?
普通に DDK の lib 探したら winusb.lib が見つかるわけだが。
winusb.dll 使ううえにダイナミックリンクじゃないんだから lib ファイルがあるに決まってるだろ。
0636デフォルトの名無しさん
2008/06/19(木) 15:04:48そんなに怒らないで。
>>633の彼はドライバ開発したのとがないんだ。
だから、winusb.libも普通にVC2008やPSDKにあると思っている。
さすがに、setupapi.libを与えたには、ぽかーーーんとした
0637デフォルトの名無しさん
2008/06/19(木) 22:12:08これ、ひょっとしてWDKでMFC4.2アプリ開発できるってことですか?
あと、先生方はWDKをVSに統合して、IDE上でドライバプログラム書いているんですか?
0638デフォルトの名無しさん
2008/06/19(木) 22:51:17付いているのだとMSの中の人がどこかのMLで言ってた
0639デフォルトの名無しさん
2008/06/19(木) 22:56:490640デフォルトの名無しさん
2008/06/19(木) 23:06:08それってドライバの話じゃなくてさ
ターゲット環境が変わったら、ライブラリも変えろって話でしょ?
そこらへんはC言語の基礎的な話なので、
どっかでちゃんと理解しといたほうがいいんじゃない?
>>637
できると思うよ。ただ、本来の機能全部入っているかはわからない。
Ioctlなどでドライバを操作したいユーザーモードアプリケーションを作ろうとした場合のためにあると思われる。
カーネルモードのヘッダと一緒にすると不具合が出る部分を出ないようにしたりしてるんじゃないかね
と、嘘かもしれないことを言ってみる。
開発環境は人による。秀丸にこだわってる人も居るだろうし、人それぞれ。
0641デフォルトの名無しさん
2008/06/20(金) 00:20:08自分が使っているVC2005expressでMFC使えないから、ひょっとしたら
WDKと連動してやるとMFCアプリのコンパイル(他人のソースを)できるようになるのかなと
思ったんです。小物のcplを作る程度の物しかそろってないですかね。あと、PrefastもVC2005express
で使えたら良いなと思ったり...
自分みたいなへたれですと、インテリセンスないとどうしようもない
何のtypedefなのか、構造体のメンバなんかがさっぱりなんでIDE必須なんですよね
で、WDKインストールしてもVSに統合されないから、他の人は自分で統合してるのかな
と思ったしだいです。ドライバー職人ぐらいになると、インテリセンス鬱陶しいし、
使い慣れたエディタの方がVSでやるより良いとなるんですか!
0642デフォルトの名無しさん
2008/06/20(金) 00:43:40適当なプロジェクトを作って、ソースファイルを登録して
ヘッダーへのパスを通せば、インテリセンスも使える
エディタとしてならIDE使えるよ。
buildは、それぞれのコマンドプロンプトからだけど。
0643デフォルトの名無しさん
2008/06/20(金) 02:04:370644デフォルトの名無しさん
2008/06/20(金) 05:53:310645デフォルトの名無しさん
2008/06/20(金) 21:28:280646デフォルトの名無しさん
2008/06/20(金) 23:57:36解決したのかな?たぶんKSMUSICFORMAT::TimeDeltaMsだよ。
0647デフォルトの名無しさん
2008/06/22(日) 23:44:130648デフォルトの名無しさん
2008/06/23(月) 22:04:46どのメンバで制御すればよいのでしょうか?。
それらしきものが見当たらないのですが・・。ちなみにプリンタドライバの
開発になります。
0649デフォルトの名無しさん
2008/06/23(月) 22:29:360650デフォルトの名無しさん
2008/06/24(火) 21:11:28その影響では?
0651デフォルトの名無しさん
2008/06/29(日) 18:34:560652デフォルトの名無しさん
2008/06/30(月) 09:45:270653デフォルトの名無しさん
2008/06/30(月) 12:00:23「自分のくっついているデバイス」? 自分をEnumerateしたバスドライバのこと?
「デバイスID」? デバイスインスタンスIDのこと?
質問の意味不明。エスパー登場求む!
0654デフォルトの名無しさん
2008/06/30(月) 13:37:390655デフォルトの名無しさん
2008/06/30(月) 18:29:310656651
2008/06/30(月) 21:48:59例えば、Microsoft ACPI-COmpliant Embedded Controllerをデバイスマネージャのプロパティで見ると、
(少なくとも私の環境はですが)「一致するデバイスID」は*pnp0c09となっています。
これをドライバ内部から調べる方法がないかなと探しています。
もちろんコード中に文字列として"*pnp0c09"を持っていれば良い話なのですが、
そうではなくて、APIなどで、自分がフィルタドライバとしてくっついているデバイスの
「一致するデバイスID」やその他、プロパティの詳細タブで見れるような情報を
取得するような方法をご存知ないでしょうか?
0657デフォルトの名無しさん
2008/06/30(月) 22:03:20IoGetDeviceProperty()や
IoOpenDeviceRegistryKey()からレジストリ読み取りで揃うんじゃね?
0658デフォルトの名無しさん
2008/07/05(土) 00:14:18WinDbgは使えないのでしょうか?。
そもそもWinDbgはカーネルモードの(プリンタ)ドライバですよね?。
ご意見お願いします。
0659デフォルトの名無しさん
2008/07/05(土) 08:55:53某企業ってどこ?
そこのプリンタは買わな・・・・(以下自粛)
0660デフォルトの名無しさん
2008/07/05(土) 10:03:320661デフォルトの名無しさん
2008/07/05(土) 13:33:540662デフォルトの名無しさん
2008/07/07(月) 09:46:04■ このスレッドは過去ログ倉庫に格納されています