WindowsDDK各種についてのスレ
■ このスレッドは過去ログ倉庫に格納されています
:環境 VC++2005pro WDK 6001.18001 :やりたいこと サンプルソース UsbViewをコンパイルしたい。 (USBからシリアルコードをひっぱりたい)\WINDDK\6001.18001\src\usb\usbview :やったこと 新規プロジェクト作成>Win32>Win32プロジェクト>空のプロジェクト プロジェクト>プロパティ>リンカ>コマンドライン CFGMGR32.LIB COMCTL32.LIB setupapi.lib を追加 ツール>オプション>プロジェクトおよびソリューション>VC++ディレクトリ ディレクトリを表示するプロジェクト>インクルードファイル> C:\WINDDK\6001.18001\inc\api C:\WINDDK\6001.18001\inc\crt を追加 ディレクトリを表示するプロジェクト>ライブラリファイル> C:\WINDDK\6001.18001\lib\wlh を追加 :エラー エラー #include <version.h> が見つかりません。 警告が200以上、、、。 warning C4133: '関数' : 'CHAR [数字]' と 'LPCWSTR' の間で型に互換性がありません。 :わからないこと エラーをなくしたいのと、恐らく間違っているであろう開発環境を正しく設定したい、、、orz :参考URL http://slashdot.jp/ ~fslasht/journal/391690 >>592 プログラム>Windows Driver Kits>WDK 6001.18001>Build Environments>好きな環境選べ コンソールが開いたら CD \WINDDK\6001.18001\src\usb\usbview nmake >>593 レス遅くなってすみません。 サンクスです。 コンパイル通りました。 質問: 1. ○○.sys のドライバをリソースとして実行ファイルに組み込むことは可能ですか? 2. 1が可能な場合 FindResource関数にリソースタイプ(RT_○○)の正しい値がわからない。 1について わからないところ: リソースファイル(○○.sys)をCreateService(にかわるもの)にわたしたいが、なにか適当な関数が見つからない。 2について わからないところ: リソースの読み込みは HRSRC hres = FindResource( GetModuleHandle(NULL), in_path, RT_STRING ); HGLOBAL hmem = LoadResource( GetModuleHandle(NULL), hres ); char *lplock = static_cast< char * >( LockResource( hmem ) ); でやっています。 FindResourceのリソースタイプ(RT_STRING)があっているのか不安。 RT_STRINGとしてリソースにしたなら、RT_STRINGでFindResourceするしかないだろ。 どっちかというとRT_RCDATAのほうがふさわしいと思う。 >>596 さっそくのレスありがとうございます。 RT_RCDATA を使って読み込んでみます。 今VC++2005を使っているのですが、 ソリューションエクスプローラー>○○.sysをクリック> ファイルのプロパティ>ファイルの種類をRCファイルに設定で大丈夫でしょうか? >>597 こんな時間にレスサンクスです。 リソース扱ったことないです、、、orz。 char *lplock = static_cast< char * >( LockResource( hmem ) ); から相変わらず、CreateServiceに値を渡す方法がわかりません。 (CreateServiceに代わる関数が見つかりません、、、orz) GetSystemDirectoryでpathを取って、そこのdrivers直下にでも書き出せば良い。 >>600 レスサンクスです。 1度ファイルに書き出してから、やってみたいと思います。 GetSystemDirectory関数は初めて知りました。 貴重な情報ありがとうございます。 質問:STLのvectorが使いたい。 環境: MFC(VC++2005Pro)で現在開発しています。 プロジェクト>プロパティ>構成プロパティ>C/C++>全般 追加のインクルードディレクトリで以下を設定しています。 C:\WINDDK\6001.18001\inc\crt C:\WINDDK\6001.18001\inc\api エラー: #include <vector>を行うと、 c:\program files\microsoft visual studio 8\vc\include\iosfwd(34) : error C2146: 構文エラー : ';' が、識別子 'fpos_t' の前に必要です。 以下、とんでもない数のエラーが出ます。 解決のため、なにかしらヒントなりいただければと思います。 MFC()笑 とりあえず、makefileでやるべき。 先生方、(フィルタ)ドライバ側からレジストリキー読んだり、 書き込んだりする関数についてサイト、書籍知ってたら教えてください。 ttp://www5a.biglobe.ne.jp/~crab/winddk/kernel/index/index01.html とりあえず↑を見つけたのだがよくわかんね。 ZwOpenKey使いたいんですが、失敗します。 RtlInitUnicodeString( &RegPath, REG_KEY_PATH ); InitializeObjectAttributes( &Attr, &RegPath, OBJ_CASE_INSENSITIVE, NULL, NULL ); 恐らく、↑でパスの指定ミスってると思うんですが、 #define REG_PATH L"\\HEKY_CURRENT_USER\\Software\\TEST_01" ってやったらダメだったのですが、正しくはどのように書くんでしょうか? レスアリガタス。 ZwEnumerateValueKey使ってキーの値を取得したいんですが、 その場合、キーの指定っていうのはどうやるんすか? ZwEnumerateKeyで列挙してから使うんでつか? >>612 >キーの指定 ZwCreateKey kernelModeで列挙っていうのは、どうも嫌なモノを作ろうとしているように見える。 >>613 レスアリガタス。 頭悪いんでまとめると、キーを指定して値とりたい場合っつーのは、 ZwOpenKey使わないで、ZwCreateKey使えでFA? ZwCreateKeyの第2引数は、\\HEKY_CURRENT_USER\\Software\\TEST_01指定でOK? >kernelModeで列挙っていうのは、どうも嫌なモノを作ろうとしているように見える。 ZwEnumerateValueKey使うのは、レジストリのキーの値を取得する関数を他にシラネからです。 レジストリに書き込んである値はインストールパスとインストールした日付です。 Windowsアプリで言う、SHRegGetUSValue関数みたいなのがあればいいのだが、 見つからなかったっす。 スマソ。間違えた。 >>614 間違い >ZwCreateKeyの第2引数は、\\HEKY_CURRENT_USER\\Software\\TEST_01指定でOK? 訂正 ZwCreateKeyの第2引数は、KEY_QUERY_VALUE指定して、InitializeObjectAttributes関数でのパスの指定で \\HEKY_CURRENT_USER\\Software\\TEST_01指定でOK? 俺、頭マヂ悪い >HEKY_CURRENT_USER 諦めれ。 つーかマニュアル読め中坊^o^ >HEKY_CURRENT_USER いるわけないやん・・・・。 レス3つも北。愛が伝わってきた。 厨房らしくサンプルソースにグレップかけて、いろいろ見てみた。 "\\Registry\\Machine\\Software\\TEST_01" の指定でとりあえず、HKEY_LOCAL_MACHINE以下にあるキーは取得できそう。 サンプルにHKEY_CURRENT_USER以下のレジストリを扱う処理がなかったと 思ったんけど、探しきれていない? "\\Registry\\User\CurrentUser\\ こんな感じだと思うんだけど、、、。 うまく開けない、、、。 教えてエロい人。 current userって誰を期待している? ここまで書いてもわかんないならあきらめろ。 ツンデレスアリガタス。 とりあえず、HKEY_LOCAL_MACHINE以下の可変長データ取得できるようになったお。 HKEY_CURRENT_USERは無理っぽいお。 みなさまの暖かい助言により、なんとか目的が達成できそうです。 チラ裏スマソ。 >>622 CURRENTとUSERを英和辞書で引いてみ 謎が氷解するだろう ハードウェアidや互換性idをデバイスマネージャで見ると PCI\VEN_102C&DEV_00E0&REV_04 PCI\VEN_102C&DEV_00E0 PCI\VEN_102C&DEV_00E0&CC_030000 PCI\VEN_102C&CC_030000 というふうに複数あったりしますが、 SetupDiGetDeviceRegistryPropertyで取得するとき どれが取れるかはどういう風に決まってるんでしょうか? デバイスマネージャで見れてるものが取得されるに決ってるじゃん >>624 SPDRP_HARDWAREIDのことを言っているのであればREG_MULTI_SZなので全部取れるはず。 >>625-626 文字列間に\0があるから最初のひとつしか取れてないと勘違いしてただけでした。 テレビーチューナーのドライバをx64用に作るのは難しい? ペンギンなら解析の情報はここにあるんだけど。 ttp://linux.paken.org/index.php?CX23416GYC-STVLP%A4%CE%B2%F2%C0%CF WDK のサンプル usbview を参考に USB デバイスを列挙するサンプルを書いてます。 WDK は C:\WinDDK\6001.18002 にインストールしています。 ttp://support.microsoft.com/default.aspx?scid=kb;JA;259695 を元に、SetupDiEnumDeviceInterfaces と SetupDiGetDeviceInterfaceDetail に変更しようとしているのですが、この場合は SetupDiGetClassDevs の 第一パラメータにクラス GUID を指定しないといけないようです。 そこで、enum.c にあるように「(LPGUID)&GUID_CLASS_USB_HOST_CONTROLLER」 を指定してみたのですが、リンクエラーになります。 GREP してたどってみると、 wdf.lib に実体があるようなので、C:\WinDDK\6001.18002\lib\wnet\i386 を ライブラリディレクトリに追加して #pragma comment(lib, "wdf.lib") を書き加えてみましたが、さらにたくさんのリンクエラーが出るようになりました (wdf.lib の未解決シンボル)。 どのように設定すればリンクできるのでしょうか。 ググっても情報が少ないので参ります…。 忘れてました。 コンパイラは Visual C++ 2005 です。 とりあえずコンソールアプリとして作っています。 >>632 どうも。 #pragma comment(lib, "setupapi.lib") は追加してあって、GUID_CLASS_USB_HOST_CONTROLLER を使わない SetupDi のサンプルはビルドできています。 エラーに出てくるシンボルを grep して、片っ端から追加してるんですが、 こんな方法しかないんでしょうか…。 なんでGUID_CLASS_USB_HOST_CONTROLLERを追加するとリンクエラーになるわけ? コンパイルエラーだろ? ライブラリじゃなくて、インクルードファイル探せよ それがですねえ、追加してあるんですよ。 今プリプロセッサ関係はこんな感じ。 #include "stdafx.h" #include <stdio.h> #include <windows.h> #include <setupapi.h> #include <devguid.h> #include <regstr.h> #include <usbiodef.h> #pragma comment(lib, "setupapi.lib") これでビルドすると、 エラー 4 error LNK2001: 外部シンボル "_GUID_DEVINTERFACE_USB_DEVICE" は未解決です。 UsbDevTest.obj って怒られます。 それで wdf.lib 追加すると芋づる式に。 それなら、devguid.hじゃなくて、initguid.hをインクルードするように 通りました、ありがとうございます! そういや setupapi.lib って、パス追加してないのに何でリンクできるんだろうと思ったら、 C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib にもいたんですね。 はあ、やっとスタートラインにたどり着きました…。 しかもデバイス取れてねぇ…。 z_/o ビルドができないとか言っている奴はなんでVC++でやろうとするかねぇ。 どうせデバッグできないんだからCUIでやればいいのに。 結局私の想像以上に面倒なようでしたので、 ttp://www.usefullcode.net/2007/02/usbusb.html のサイトのサンプルを参考にさせてもらっています。 それで、目的の USB メモリを探してアクセスしたいのですが、 アクセス用の名前をどうやって取得するかで躓いています。 WMI の CIM_LogicalDevice クラスを使えば「\\.\PHYSICALDRIVE?」 の形で取得ができるのですが、Setup Di API と共通する 情報が得られません。私が見つけられないだけだと思うのですが…。 WMI 使わなくてもアクセス用の名前は得られるのでしょうか。 アドバイスいただけると幸いです。 >>639 一応マイクロソフトのサンプルや、上記サイトのコードなどは ブレークかけて見たりできてますけど、そういう意味ではなくてでしょうか? うーん、WMI から得られる情報で、PNPDeviceID の中にシリアル番号が 含まれてるっぽいですね。とりあえずこれが一致するかみて、実際にデバイスを 開いて中身を確かめるって感じでいけばいいかな…。 SetupDiEnumDeviceInterfaces・SetupDiGetInterfaceDeviceDetailで PSP_DEVICE_INTERFACE_DETAIL_DATAを取得して それのDevicePathでファイル開いて DeviceIoControlでIOCTL_STORAGE_GET_DEVICE_NUMBERでとった番号と USBの物理ディスクの番号を比較したらいい どうもありがとうございます。でもこれって GUID_DEVINTERFACE_DISK を指定して 列挙したときの DevicePathじゃないと取れないのでは。 USB のシリアル番号が欲しいんで、USBview のように、 GUID_CLASS_USB_HOST_CONTROLLER からたどって列挙したデバイス情報から USBの物理ディスクの番号を知りたいんです。 何かボケてるでしょうか。 >>644 何したいのかいまいち見えてこないけど 最終的にUSBメモリのシリアル番号を取れればいいわけ? USBViewと同じ方法でインターフェースデスクリプタ読んで、 それがマスストレージクラスになってるUSBデバイスのシリアル番号を取得じゃダメ? スミマセンわかりにくくて。 USB メモリにプロテクトドングルを兼ねさせるということで、 (1) シリアル番号はあらかじめわかっている (2) USB デバイスを列挙してシリアル番号を探す (3) そのシリアル番号のドライブは?←ここが問題 と、大雑把にはこうです。 で、あれこれ試した結果、苦肉の策が >>642 だったんですが、 もっとスマートな方法があればと思って四苦八苦してます。 おお、いつの間にかWDK 7.0.0がダウンロードできるようになってるな。 ドライバ作成の初心者です。 フィルタドライバで、別プロセスが作成(書き込み)したファイルを監視し そのパスをユーザモード側(自分のプログラム)に通知を行うドライバを作成したいと思います。 (アンチウイルスソフトの常駐監視機能のような機能) このあたりの勉強を行いたいのですが、参考になる書籍や、サンプルソースなどご存知のかたが いましたら教えていただけないでしょうか?(書籍を見たところほとんどがUSBドライバなどの本ばかりでした) 現状はWDKのサンプルソース(src\filesys\配下)やネットで調べていますが、なにぶん始めての領域で どこからスタートすれば良いのかも悩んでいるところです。 WDKのサンプルで一番参考になりそうソースを教えていただければ大変参考になります。 USBデバイスをPCIデバイスに擬似的に変換(又はエミュレート)する方法ってあるのでしょうか? そういえば、実USBデバイスをエミュレートする疑似USBデバイスソフトあれば デバッグ楽かもしれん、と思いつつ作りかたが分からずに挫折したなあ昔。 >>648 書籍といったら「Windows NT ファイルシステム詳説」くらいしか知らないけど絶版。 原書ならUSのAmazonで買えるようだが。 原書のサンプルは以下のExamples以下よりダウンロード可能。 ttp://oreilly.com/catalog/9781565922495/ あとはntifsとかでぐぐったらいくつか出てくるんじゃないかな。フリー版IFSとか ttp://www.acc.umu.se/~bosse/ >> 651 返信遅れました。申し訳ありません。 ”Windows NT ファイルシステム詳説”の日本語版は、なぜか会社にありました。 本はあれども、知識を持っている人がいないので1から勉強してみたいとおもいます。 また、FileMonの昔のソースを見つけましたので、これのドライバの部分がとても参考になりそうです。 ご教授ありがとうございました。 KMDFでドライバを作成した場合、WdfCoInstaller01009.dllの再配布は可能でしょうか? WDMで、LPCバスに接続されている機器をI/Oポート経由でアクセスしたいのですが、 ポートのマッピングの方法を教えてください。 HalTranslateBusAddressの引数にLPCバスタイプが存在しないので、どうした良いものなのか。 よろしくお願いします。 LPCはソフトウェア的にはISA互換と考えていいはず。 それはともかくHalTranslateBusAddressを使いたい理由が不明。 >>656 亀レスですいません。レスありがとうございます。 色々と混乱していまして.... I/Oポートアドレスの割り当ては、IoAssignResourcesを使えばよろしいのですか? >657 I/Oのみ使用するISA Bus(X-Bus)ボードなら src/general/portio のサンプルがほぼそのまま使えるよ! どんなリソースが、どこから、どれだけボードに割り当てられたかは IRP_MN_START_DEVICEでわかるよ! ボードがなくてもドライバのインストールができる(試験用ドライバ では物理リソースにアクセスしないようしておきます)ので、 クラッシュしても中田氏しても大丈夫なPCを用意してWinDbgで ドライバや制御アプリの動きをみてみるといいよ! ハ_ハ ('(゚∀゚∩ できるよ! ヽ 〈 ヽヽ_) ここまで書いて「いまさらISAボードの新製はねぇか?」と思ったが、 せっかく書いたのでこのまま投稿させていただきます。 LPC deviceだとISAPNP対応するかACPIのDSDTに記述がないとOSが認識できないし リソースも割り当てられないからIRP_MN_START_DEVICEは飛んでこないよ。 *.infの記述とデバイス マネージャの設定で、来た気がする。 DDKの選びかたについて質問があります。 VISTA以前はDDKが主流だったそうです。 しかし現在、WDKがDDKに置き換わっているようです。 私のPCはOSがWindowsXPなのですが、旧来のDDKをなんとかして手に入れてるべきなのか それともWDKを入れればよいのかどちらでしょうか? とりあえず、どんなOSも最新のWDKを入れて開発しておけばいいという考え方は間違っていますでしょうか? 回答よろしくお願いいたします。 ここまで無駄に長文だと読んだだけで腹が立つなw XP以降がターゲットの場合DDKとWDKどっちがいいの?の、たったこれだけの内容に何行使うんだよ XP以降がターゲットとは言ってないんじゃないか? 最近のlink.exeは/VXDオプションをサポートしないしターゲットによってはDDKが必要 >>668 ということは開発するものによってはDDKを使う必要もあるのでしょうか? XPのできるだけ深いレベルでのデバイスドライバを開発したいのですが、 一般的に言って、そういった開発でWDKを用いても大丈夫といえそうですか? 95/98/ME:vxd 98/ME/2K/XP/Vista/7:WDM 2K/XP/Vista/7:KMDF XP/Vista/7:UMDF DDK:vxd/wdm WDK:wdm/kmdf/umdf テキトーだけどこんな感じ >>668 ググりゃ即答えが出るような事をわざわざ長文で聞くような低レベルな奴が 非NT系OSをサポートする気のわけ無いだろうよw それにあの分量書いてvdxサポートの事を抜かしたと言うなら、本物の馬鹿だから何教えても無駄と言う帰結 単に、あるときからDDKはWDKに名称変更しましたというだけのこと。 Windows 2000以前: DDK Windows XP以降: WDK って認識でOK。 デバイスドライバの勉強したいんですけど、何から始めたらいいですかね? サンプルコードみてもチンプンカンプンです すみません、質問ですorz Win32のアプリと32bitドライバがあるのですが、 Win64で動作させてみようとしたところ、32bitドライバをWin64が認識しません。(当たり前か) 将来的には、フル64bitしたいのですが、当面「Win32アプリ+64bitドライバ」の形体でしのぎたいと思っています。 「Win32アプリ+64bitドライバ」は可能なのでしょうか? 可能だとすれば、サンプルとか情報がどこかに落ちてないでしょうか? 可能じゃなかったらどうやって64bit OSで32bitアプリを動かすんだ >>680 基本的に32bitドライバとアクセスするのと一緒だからサンプルは見つからないと思う つ [d] >32bitドライバとアクセスするのと一緒 そうなんですか。意外でした。。。 IoIs32bitProcess + IOCTLぐらいじゃね引っかかるのは ドライバのソースを改造したいと思っています。 ドライバの中でOutputDebugString@Win32APIはコールできますか? cygwin/gcc系ソースなのですが、ドライバの中の人の状態が分からないと不安です。。。 そのソースを見てそんな疑問を持てるレベルならやめた方がいい jkを有難うございました。 DbgPrintでググって使い方も見つけますた\(^o^)/ ttp://ruffnex.oc.to/kenji/windriver/ USBのデバイスって入力デバイスとか、イメージングデバイスとか規定のクラスに属していないとだめなの? 例えばPCからUSBでデータをデバイスに送信して、モータを制御するとかそういうことをやるにはどんなデバイスクラスにすればよいの? I/O Stack Locations ttp://www.osronline.com/ddkx/kmarch/irps_8lgn.htm の中の人って、ダンプ出来るんですか? つ [d] なるほど、ドライバだからメモリアクセス無問題ってことですねw USBデバイスから受けたデータが化けているかどうか調べたいのです。 デバイス送信データのメモリダンプを行いたいのですが、、、 ダンプツールだとかI/Oスタックロケーションのダンプコードとか、 ありますでしょうか? すみませんlibusb-win32使ってて躓いてます。教えて下さいorz ホストからターゲットへ、 CLEAR_FEATUREっていうのを送信した後、 リトライの嵐っぽいです。 sysのソースを見ても、 LIBUSB_IOCTL_CLEAR_FEATURE のcaseでclear_feature(...)をコールしてるっぽいし。 LIBUSBの定数っぽいですが、アプリはコールしてないし。。。 OSがコールしてるのでしょうか??? もしそうなら、どういう時に発生するのでしょうか? どっかのエンドポイントが死んだからCLEAR_FEATUREで復活させようとしてるんじゃね? あっそういうもんですか。 エンドポイントしぼーんで、OSが復活の呪文? I/Oスタックロケーションをダンプされたことのあるかた、 やり方(コードw)を教えて下さいorz 64bitのIMM32 IMEを開発するにも2003 SP1 DDKが必要 Windows Driver Model相談室スレで何度か質問でみた KernelStream のビデオ/オーディオドライバ とかって何を参考に、みなさん組んでますか? 書籍を何冊かみたけど、その辺が参考になるものが見当たらなくて・・・ 64bitのデバドラ署名って、なんちゃってじゃ無理? 必ず証明書チェインのルートがMicrosoftである必要あり? DEBUGONで署名なしでも導入できるけど気持ち悪いし。 AVStreamのサンプルをベースにいろいろお試し中だが、KsStudioでしょっぱなからDeviceIoControl が出まくる… ソースのメソッドのNTSTATUSの値はSTATUS_SUCCESSだから、何か必要なものが抜けてるんだろけど 何をすればいいのかわからんw Querying for structure size for KSEVENT_TYPE_SETSUPPORT SyncIoctl: DeviceIoControl failed. Last Error = 0x00000490 SyncGetSupportedEventSets: size query failed Getting property KSPROPERTY_PIN_CTYPES kbfiltr からKEYBOARD_INPUT_DATA を生成して ServiceCallBack 送信しても DirectInput なるクライアントは無反応、な理由は何が考えられますか。 ・DirectInput 利用時とそれ以外で、通過するスタックが異なる ・仮想キー生成方法がおかしい たぶん後者のような希ガスだけど原因よくわからんし・・・ DirectInput なクライアントでなければ動くだけに。 Windows Liveに入会して、Connectに登録して…… Win98/Me/2K用のWDKを手に入れて……めんどいなぁ。 ドライバ開発はサンプルとかを1行づつ変えて挙動を自分で調べていくしかないな 最後まで調べ上げてようやく、根本的に違うサンプルを見てることに気がつく それを何度か繰り返すとようやく本当のサンプルにたどり着くけど 今まで調べた部分も意外に役に立つので決して無駄にはならない 実際、1つドライバを完成させることが出来れば他は応用になるから理解は早いだろうが 完成するソースはサンプルより短くて終わる すでにフィルタドライバがインストールされているデバイスに別のフィルタドライバを入れると、 もともとのフィルタドライバが削除されてしまうんだけど、 これはinfファイルの書き方の問題ですか? WDFの日本語文献の無さに絶望 WDF版Toasterのソース読んでもPDOとデバイススタックが理解できん orz 目的のドライバが取り敢えず動いた サンプルは重要だと再認識 DirectInput系でMJ_READが飛んでこないのは何で? kbfiltr でモニタリングしてるけど何も発生せず・・・ >>722 レスありがとございます。 実際のキー入力だと反応するけどi8042prtの上位フィルタを通らないってのが良くわかりません。 i8042prt を HID として見せるスタックがあって、それだと i8042prtの上位の kbfiltr は通らないって ことですかね。そもそも i8042prt 使わないとか。考え方が間違ってますか? HIDはMJ_READなんて単純な代物じゃないからな スピンロックを取りたくなくてPDOへの全リクエストをFDOへ転送しシリアライズ、それがアダになった 新しく書いたコードをビルドした時ふとキューイングのコトが気になった 増大したリクエストに対しどうかな・・・と だけどごまかした 大丈夫だろうと 自分に都合よくいいきかせた やっぱり処理速度が低下した 完全なレスポンス不足だ あまりにも稚拙なミスだった たしかにわかっていたんだ ・・あの時 だけどごまかした 早く(コードを)走らせたくて自分の心をごまかしたんだ 残ったものはただ‐ 悔やみきれない後悔だけだ orz >726 何を言ってるんだおまいわ USBは関係無えぞ? 参考にしたのはトースター神Eliyas Yakub氏のコレ http://www.winvistatips.com/pdo-forward-request-next-lower-driver-stack-automatically-kmdf-t192158.html 結局これ止めて普通にPDOからハードウェア叩くように戻して解決 かなり時間を無駄にしたぜ orz >>729 署名なしドライバのロード方法が不明。 署名ありドライバは問題無し。 セキュアブートを外せない機種だと 署名がないバイナリのカーネルモードへのロードは不可能になるんじゃね 韓流の聖地、光と影 脱税など不正 観光客マナー悪化 <一部抜粋> 販売許可なし? 活気づく街の陰には負の部分も浮かぶ。 東京国税局は、新大久保で韓流ショップを運営する「ワールド・アップル商事」と同社社長(45)が売り上げの一部を申告せず 約4千万円を脱税したとして、東京地検に法人税法違反罪で告発した。経営する店舗の一つでは簡素なシールを貼り付けただけの DVD数枚を1セットにして、テレビドラマ全編を2千〜3千円で販売。男性店員は「商品はすべて公式ライセンスを取得している」と話すが、 「KBS(韓国放送公社)ジャパン」(東京)によると「新大久保の韓国グッズ店で販売許可を得ている店は一店もない」という。 一方、大阪府堺市から来店したという女性会社員(24)は、定価の半額で購入した写真集を手に「販売ルートは関係ない」と意に 介さない様子だ。 深夜を迎えると、飲食店付近の歩道にはゴミ袋30〜40袋がうずたかく積まれることも。新大久保商店街振興組合の理事の一人は 「韓国系の大部分の店舗は組合に加盟しない。ゴミ収集など街の問題について話し合うのが難しい」と嘆く。 地元住民は複雑 地元住民からは日本人観光客に対する苦情も絶えない。大正6年から95年続く文房具店の女性店主(68)は「大騒ぎにはこれ以上 耐えられない」と来月、閉店することを決めた。 昼間には母親グループが託児所のように店内に子供を置き、買い物に出かける。深夜でも、酒に酔い韓国人男性に抱えられた日本女性が 騒ぐ。観光地化に伴い地域住民は新大久保を離れ、売り上げも半減した。「ブームが過ぎれば、くしの歯が欠けるようにさびれるでしょ。 もう普通の街に戻ることはない」(女性店主)。店舗を引き継ぐのは韓国グッズ店だという。 同組合の内藤雅也副理事長は「お客さんが新大久保に来てくれることはありがたい。韓流を地域活性化にうまく活用できるよう問題を 解決していきたい」と話している。 http://sankei.jp.msn.com/life/news/120122/trd12012221460012-n2.htm Windows Driver Kit (WDK) 8.0 がリリースされました - Japan WDK Support Blog - Site Home - MSDN Blogs http://blogs.msdn.com/b/jpwdkblog/archive/2012/08/31/windows-driver-kit-wdk-8-0.aspx システム要件見るとExpressじゃ開発できないのか ロシアのアングラサイトでDDK入手できたよ。。。 ウイルス入っていないみたい。自己責任で。 WDK 8 のドライバー開発の新機能 - Japan WDK Support Blog - Site Home - MSDN Blogs http://blogs.msdn.com/b/jpwdkblog/archive/2012/10/31/wdk-8.aspx Windows ストアアプリの話題はこちらでよろしいでしょうか? 既存のUSBドライバに送られるデータを読み書きしたりできるフィルタドライバを作ることは可能でしょうか? また、サンプルでよいものがあったら教えてください >>743 ありがとうございます。 これっぽいです。 質問です。 現在ファイル・ストレージに関してREAD/WRITEのバッファを 書き換えるドライバを作成しているのですが、 ユーザーランド ------------------------- FAT, NTFS等の高度FS ------------------------- ←←← ここ ボリューム(パーティション) ------------------------- ストレージデバイス(HDD, SD, USBMEM) ------------------------- ハードウェア 矢印 ← のところにフィルタドライバを挟みたいのですが、 どのようにすればいいのでしょうか。 FS Filter? Storage Miniport? w2k用IMEを開発したいんですが、参考になる文献などありませんか? mozcのソースくらいしかないんじゃね モノがIMEだと洋書や海外サイトはまったく役に立たないし WDF 1394 Virtual Device Hybrid Sample Driver なんだコレ、まともに動かないじゃないか バグだらけと迄は言えないが・・・・ 最低限 一度くらいは検証してからリリースしろよな。 ぷんぷん!! ∧_∧ ( ・∀・) 人 ガッ ( つ―-‐-‐-‐-‐-‐○ < >__Λ∩ 人 Y ノ. V`Д´)/ し(_) / ←>>3 仮想マルチモニタ環境でテストしたいので、だれか偽ディスプレイドライバ作って下さい。 Win8.1使ってます CypressのUSBドライバを動かしたいんですけど絶望的ですね Win7では証明書なしでも動いたのに。。 といってもWin7も最近買いなおしたバージョンでは署名がないとダメでした。 まぁF8でドライバ署名強制をオフにすれば行けますががが ドライバやカーネルモードのプログラムの実行は マイクロソフトの証明書とのcross certificateが必要なのでしょうか? ユーザが信用する!っていえば別にいいじゃんねぇ なんでダメなの 出来の悪いデバイスドライバのせいで これだからWindowsはダメなんだ!!! という不当な中傷が絶えないから まぁドライバとかカーネルモジュールはだれが犯人かわかりませんからねぇ そうはいっても署名したからと言ってコードの品質が上がるとは限らない Cypressって、どのバージョンでしょう? 7x64で動いてたなら、8.1x64でも使えるはずですけど、 VID/PIDを修正したとかですかね。 >>758 だいぶ前に買ったノートPCのWin7は動きましたね。 でも最近かったWin7はダメでした。 Win8は試してませんがドライバ署名強制を無効にしないとダメだと思います。 Cypress Suite USB3.4.7というやつからもらいました でも付属のInfがそもそもGUIDがXXXXになっているし カタログファイルもありませんので自分で署名してくださいという状態のようでした。 >>759 試してないけど、 ttp://www.cypress.com/?id=4&rID=53338 >>760 やってみました 完ぺきでした ご協力ありがとうございます!! テスト証明書のことで躓いてる Win8.1 amd64 ぶっちゃけamd64は初体験 Win7 i386 で似たようなことやって成功してるからスキルレベル1くらいはある inf でなく、SCMで登録してアプリケーション内で呼ぶタイプ オレオレ証明書作って署名して投入するんだが、 テストモード(って右下に出てる)にしても、エラー193が返る なにかpitfallがあったら教えて x64環境にx86ビルドしたドライバを入れようとしてるか、その逆? あれ。書けてる。マルチになっちまったゴメソ それだけは確認したけど、大丈夫だった .pdata セクション見えてるし わかった 原因は意外なところにあった EXEのチェックサムを見ようとPEエディタ通したら、余計な項目が変化してた 署名前のファイルまで確認したもんだから、そっからずっとだった イベントログに、0xC0000007B と出てたんだが、ほんとだったんだ (署名エラーもそれになるのかと思ってたよ、でも違和感もあった) 署名の問題でなく、ドライバPEファイルの初歩の問題だったことになる ★2ch勢いランキングサイトリスト★ ☆ +ニュース ・ 2NN ・ 2chTimes ☆ +ニュース新着 ・ 2NN新着 ・ Headline BBY ・ Unker ☆ +ニュース他 ・ Desktop2ch ・ 記者別一覧 ☆ 全板 ・ 全板縦断勢いランキング ・ スレッドランキング総合ランキング ☆ 実況込み ・ 2勢 ・ READ2CH ・ i-ikioi ※ 要サイト名検索 スレチですまんが これでsha256になってんの? 捺印アルゴリズムがsha1になってて分けワカメorz The following certificate was selected: Issued to: CPI Technologies, Inc. Issued by: GlobalSign CodeSigning CA - SHA256 - G2 Expires: Thu Oct 15 11:29:33 2015 SHA1 hash: 969369F2B3539100D14A15D076FB64A77728C82E Cross certificate chain (using machine store): Issued to: Microsoft Code Verification Root Issued by: Microsoft Code Verification Root Expires: Sat Nov 01 22:54:03 2025 SHA1 hash: 8FBE4D070EF8AB1BCCAF2A9D5CCAE7282A2C66B3 Issued to: GlobalSign Root CA Issued by: Microsoft Code Verification Root Expires: Fri Apr 16 05:05:08 2021 SHA1 hash: CC1DEEBF6D55C2C9061BA16F10A0BFA6979A4A32 Issued to: GlobalSign Issued by: GlobalSign Root CA Expires: Mon Mar 18 19:00:00 2019 SHA1 hash: 4765557AF418C68A641199146A7E556AA8242996 Issued to: GlobalSign CodeSigning CA - SHA256 - G2 Issued by: GlobalSign Expires: Fri Aug 02 19:00:00 2019 SHA1 hash: 4E34C4841080D07059EFC1F3C5DE4D79905A36FF Issued to: CPI Technologies, Inc. Issued by: GlobalSign CodeSigning CA - SHA256 - G2 Expires: Thu Oct 15 11:29:33 2015 SHA1 hash: 969369F2B3539100D14A15D076FB64A77728C82E Done Adding Additional Store Successfully signed and timestamped: hoge.cat WDFドライバのサンプルRamdiskで、どうセキュリティを設定してもintegritylevel lowでアクセスできないんだがさっぱり分らん。 Windowsでintel dpdk使いたいんだけどドライバーって どこからダウンロードできるのでしょうか? ドライバ初心者なんですが、UMDFからマウス操作ってできますか? サンプルが見つからないのでもしかするとKMDFのみなのかなって思ったり windows8.1 x64で不思議なことが起こるんだが。 ドライバで仮想アドレスをMmGetPhysicalAddressで物理アドレスに変換したら 「PCの搭載メモリ以上の物理アドレスが吐き出される」 8GBしかメモリつんでないPCで0x200000000以上の物理アドレスが返ってくるのおかしくね? でもそのアドレスを使っても動作異常が起きない不思議 3〜4GBあたりのMMIOと被ってる物理メモリがリマッピングされるから 0x200000000以上でも別におかしくないよ うん、コンピュータのしくみを、ちゃんとベンキョーした方がいいと思う リマップされてるエリアってときたまデータ化けるんだよね。 MBによってはトリッキーなことしててアクセスタイミングシビアなのかなぁ。 KMDFで作ったドライバから専用のDLLに通知を送るってどうやればいいんでしょう? 自前のID定義してウィンドウメッセージとか送ればいいのかな? ring3 ring0 CreateEvent イベントオブジェクト作成 DeviceIoControl ドライバにイベントハンドルを 教えてあげる ObReferenceObjectByHandle 教えてもらったハンドルで イベントオブジェクト作成 WaitForSingleObject等 待機 KeSetEvent 通知 だとセキュリティの問題あるんだっけ? >>782 ありがとう。 そもそも通知の方法がわからなかったからセキュリティの問題とかあるのかわからないや... とりあえず非同期IOで作ってみたけど、いまいちうまく動かなかったらこの方法に作り替えてやってみます。 常にOVERLAPPEDでCreateFileして イベント発生のタイミングでI/Oが完了する DeviceIoControlか空ReadFileで実装したのかな? 手間はこっちのほうが多いけど確実なんじゃないかな >>784 一応、非同期IOで動きました。 やり方はご指摘の通り、OVERLAPPEDでCreateFileしてDeviceIoControlで完了待ちしてます。 が、この方法だとイベント受ける毎にDeviceIoControlで待ち受けしなきゃいけないから>>782 の方法にしようか検討中。 でも、それより変更したドライバ入れたらWindowsが起動しなくなったのでそれを先に解決しないと。。。 VisualStudioのカーネルデバッガからlm見ても自作のドライバはロードされてないし、 呼出し履歴にも自作ドライバのモジュールは表示されてないんだけど何が起こってるんだろう? 自作ドライバを入れ替えてから発生してるから自作ドライバに問題があると思うんだけど何から調べればいいんだろう? 月並みだけど DriverEntry以降AddDevice等ドライバ側のハンドラを逐一追っていくしかないだろうね 起動しないとなると重篤だしどこかでKeBugCheckに引っかかってるとかかな? 個人的にはボロいターゲットマシンを用意してwindbgを使うのが好きだが ターゲットとの接続がUSBもイーサネットも面倒なんでシリアルで となると最近はシリアルついてるマシンが無いという USBの3秒ルールとかタイミングにうるさいヤツだとブレイクで止められないんで KdPrintだっけ?DebugPrintのカーネル版 そんなやつで片っ端からログ吐かせてダメなところを特定したことはあった >>787 主のドライバは、KMDFだから、それじゃなくて、Taraceが使える。 接続は、デスクトップを2台用意して1394で繋ぐのが一番確実。 タイミングにシビアじゃなければVMでもいいんだろうな やったことないけど いろいろ確認方法のご教示ありがとうございます。 パフォーマンスツールキットとか入れてみたけど結局わからなくて、 今は変更前から徐々に実装する形で問題の箇所を洗い出してます。 ETWによるTraceはは色々出力してますが、 起動直後からログを取得する方法がわからなくて、 動作停止するまでのTraceは確認できてないです。 パフォーマンスツールキットで起動時のNT Kernel Loggerのログをとったら 200MB以上あって、シリアル転送で取得に5時間もかかったのでちょっと解析には 使えない感じです。 VMはターゲットPCが非力なため試してないです。 ちなみに開発環境はこんな感じ。 ホストPC:Windows7 ターゲットPC:Windows7(32bit) 接続方法:シリアル(115kbps)※1394ついてないため コンパイラ:VisualStudioExpress2013 for Windows Desktop WDK:WDK8.1 簡単な経緯としては PCIExpressデバイス用の自作ドライバ(KMDF)にハード割り込み処理を追加したらWindowsが起動しなくなりました。 割り込み処理追加前の自作ドライバは問題なし。 処理なしのコールバックを登録してWdfInterruptCreateを呼ぶまでもOK。 以下、必要な処理を少しずつ実装して試行中。。。 「特定のバージョンのJavaランタイムを必要としていたのだが、 3月14日よりJava実行環境が不要となったという。 Javaランタイムではかねてから脆弱性問題が指摘されていたためこれは素晴らしい…… と思いきや、その代わりにActiveXを利用(中略) 7年後(2023年1月10日)までなので、少なくともそこまでにはサイトを刷新しなければならない」 特定バージョンのJavaを要求していた地方税電子納税サイト、 Javaを廃止してActiveXに切り替え http://security.srad.jp/story/16/03/15/0329226/ ストーリー by hylom 2016年03月15日 12時37分こんなことに 部門より 色々アドバイスありがとうございました。 起動しない原因もなんとか解決しました。 原因は割り込み処理内でMmMapIoSpace呼んだせいでした。 割り込み処理はDIRQLなんでMmMapIoSpaceは使えないんですね。 がんばるな ReactOSに参加する人増えないかなぁ 今年の中旬か下旬に高額賞金をかけた「カタヤマゲーム」をこの板で開催するから、必ず参加してくれよ。 「カタヤマゲーム」の詳細は今年の6月28日に明らかになるだろう。 カタヤマ大賞(カタヤマゲーム)は、会場が管理人に消されたため、中止になりました。 ドライバーの存在しないデバイスに無理矢理標準のゲームパットのドライバをインストールさせることは可能でしょうか UMDFで仮想HIDタッチパネルを作ろうと思ってるんだけど、 デバイスマネージャでは認識してるけど、 Win10のコンパネのシステムのペンとタッチのところで認識してくれない。 たま〜に認識することがあるんだけど、そのときは IOCTL_UMDF_HID_GET_FEATUREが飛んできてマルチタッチの数返すと、 IOCTL_UMDF_HID_SET_FEATUREで、INPUT MODEをマルチタッチにするように リクエストが来るんだけど、ほとんどの場合でこれが来ない。 IOCTL_UMDF_HID_SET_FEATUREが飛んでくる条件はなんなんでしょう? 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 KOZ8I VS2017上でデバドラのプロダクト署名の設定はどうやるのでしょう? プロジェクトのプロパティでDriverSigningのSignModeをProduction Sign ProductionCertificateを「d:\aaa.pfx」、cross certificateを「d:\bbb.crt」 これでこんなエラーになります > error : Invalid certificate or password. > error : Invalid argument <d:\aaa.pfx> for property <ProductionCertificate>. ぐぐるとVSを管理者にしろというのが出たので試しましたが、それもエラーでした 同じパスワードとcertificateをつかってsigntoolでは署名できます。 signtool.exe sign /p xxxxx /v /ac b:\bbb.crt /f d:\aaa.pfx /tr http://timestamp.comodoca.com/rfc3161 ccc.sys (1) Windows Server 2003 SP1 DDK (1830_usa_ddk.iso/3790.1830) の CL.EXE でコンパイルすると、 >> LINK : warning LNK4078: multiple '.rdata' sections found with different attributes (C0000040) というエラーが出ます。異なる属性の '.rdata' のセクションが2つ定義されているということなんですが、 どなたか、解決策はございますでしょうか。 link してる複数の obj の中で(株)ってるんじゃね MS署名必須になって個人でドライバ書く人もいなくなったか 個人でも署名できるぞ。公証人に書類作ってもらったり面倒だけど。5年10万ぐらい 更新時にまた最初から申請しなおさないといけなくてさらに面倒だから個人でとるなら最長期間でとらないと泣く 自分で使うだけなら金払わなくても自己署名でいける >>811 売り物なのに署名してないのはいやだなって思うけど、タダで作ってタダで提供 するのに10万も払って開発する人は少ないと思うけどなぁ 自己署名でいけるのって普通の環境じゃなくて開発者モードとかいうやつだけじゃ ないの?Win7の開発者モードは勝手に画面に余計な表示出したりでこんなの 使わないよって感じだった覚えあるけどWin10はましになったのかな? RAMディスクドライバとか仮想CDドライバとかはもう個人では難しいのね >>812 win10は起動ごとにテストモード設定必要とかいろいろきつくなってる 管理者権限さえあればテストモードにしなくても自己署名でいけるのは7から変わらず 公式セキュリティホールだからMSも宣伝はしてないけどw >>810 MS署名が必須なのは、セキュアブートの環境だけだろう? 自己署名じゃダメだが、普通のコード署名なら、大した費用はかからないんじゃないか 最近は、出荷時からセキュアブートになってるPCもちらほらあるけどな 数年前まで個人でドライバ作って個人向けに売ってたけど年100-200万ぐらいにはなったぞ >>816 個人が作ってたものが大半だろ それが後に会社を起こしたとかそうなっただけで >>817 無償じゃなくて、ビジネスとしてやるなら、 署名ぐらいは、立派なのをちゃんとつけたほうがいいわな >>819 立派な署名付けるのは難易度高いよ。個人だと氏名住所垂れ流しのがせいいっぱい MmMapLockedPagesSpecifyCacheって WOW64の32ビットユーザアドレス空間にもマップできるんだな すげー 自分が作ったドライバを自分が使いたいだけなのに難儀するようになった。 もしかして、従来のカーネルコード署名できなくなってる? もうMS経由でしかダメ? そういやPE経由のDISMでforceunsignedで入ったりする 17歳女子高生です WDK for Windows 10 バージョン 2004 のオフラインインストールの方法、 または同.iso等イメージの直リンURLを教えてちょんまげ 自作のドライバがコア分離ではじかれたんだけど どうすれば対応できるんです? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる