問題タブ [wdk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 既存のデバイスへのフィルター ドライバーのインストール
フィルター ドライバーの作成方法を学んでおり、練習用に既存の HID ドライバー (マウスまたはキーボード) の上にフィルター ドライバーをインストールしようとしています。私の理解では、少なくともハードウェア レジストリ キーにUpperFiltersキーを追加する必要があります。他にすべきことはありますか?
regedit を使用して、 UpperFiltersキーをターゲットの USB マウス デバイスに手動で追加すると、regedit はキーを作成できないと表示します。regedit が、Windows 提供のデバイス ドライバー スタック レジストリの変更を許可していないのではないかと疑っています。フィルター ドライバーを既存のデバイス スタックにインストールする他の方法はありますか?
wdk - Windows 開発キットを使用して ndis フィルターを作成する方法に関する良いリソースはありますか?
wdk にはサンプルが同梱されていますが、動作に関する詳細なドキュメントはありません。
それがどのように機能するかを完全に説明しているリソースはありますか?
windows - [ハードウェアの安全な取り外し] ダイアログに表示されるドライブ (ボリューム) を確認する方法は?
ファイル システム イベントを監視するアプリケーションがあります。これには、ターゲット ボリュームへの永続的に開いているハンドルが必要です。これは、システム ブート ドライブやその他の固定デバイスなどには問題ありませんが、eSATA、USB、Firewire、iSCSI などのリムーバブル デバイスでホストされているボリュームを扱っている場合は非常に望ましくありません。ただし、ハンドルが開いていると、「ハードウェアの安全な取り外し」が成功しなくなります。
理想的には、親がデフォルトとして「ハードウェアの安全な取り外し」に表示される可能性のあるボリュームにアプリケーションがラッチされないようにしたいと考えています。問題は、どのデバイスがそこに表示され、どのデバイスが表示されないかを判断する方法が文書化されていないように見えることです。何か不足していますか?リードを持っている人はいますか?
デバイスのバスの種類を照会することが可能であり、これでほとんどの作業が完了することに注意してください。
ただし、IOCTL は SATA と eSATA の両方に対して BusTypeSata を返しますが、OS は後者を「安全な削除」ダイアログに表示する必要があるものとして認識します。
visual-c++ - カーネル モードでのファイルの読み取り
ドライバーを作成していて、いくつかのファイルを読みたいと思っています。「ZwReadFile()」または同様の関数を使用して、ファイルの内容を 1 行ずつ読み取り、ループで処理できるようにする方法はありますか。
MSDN のドキュメントには、次のように記載されています。- ZwReadFile は、指定された ByteOffset または現在のファイル位置から、指定された Buffer への読み取りを開始します。次のいずれかの条件で読み取り操作を終了します。
- Length パラメーターで指定されたバイト数が読み取られたため、バッファーがいっぱいです。したがって、オーバーフローしない限り、これ以上データをバッファに入れることはできません。
- 読み取り操作中にファイルの終わりに達したため、ファイルにはバッファに転送するデータがありません。
ありがとう。
filter - Xbox 360 コントローラーのフィルター ドライバーを接続するデバイスはどれですか?
学習課題として、Windows 7 64 ビットで有線 XBox 360 コントローラー用のフィルター ドライバーを作成しようとしています。このコントローラーは HID ジョイスティックとして表示されるので、簡単なように思えます。
マウスの左ボタンと右ボタンを入れ替えるサンプル フィルター ドライバーを作成しました。これは、WDK に付属する moufiltr と firefly のサンプルに基づいています。ただし、この例を XBox 360 コントローラーで動作するように変換するのに問題があります。
コントローラーを接続すると、デバイス マネージャーに 3 つの異なるデバイスが表示されます。
- ヒューマン インターフェイス デバイス/HID準拠のゲーム コントローラー
- ヒューマン インターフェース デバイス/USB ヒューマン インターフェース デバイス
- 共通コントローラー for Windows Class/Xbox 360 Controller for Windows
これらのどれにドライバーを接続する必要がありますか?
マウス フィルター ドライバーを使用すると、firefly サンプルのインストール手順に従うことができました。デバイス マネージャーでマウスを右クリックし、[ドライバーの更新] を選択します。XBox 360 コントローラーでは、どのデバイス用のドライバーをインストールすればよいかわかりません。それとも、それらはすべて独立してハードウェアと通信しており、それぞれにフィルターをインストールする必要がありますか?
フィルター ドライバーで使用できる IOCTL を出力するために、3 つのデバイスのそれぞれにフィルター ドライバーを接続しようとしたことに注意してください。「USB ヒューマン インターフェイス デバイス」の場合、フィルターは IOCTL を受け取りませんでした。
HID 準拠のゲーム コントローラーの場合、以下を受け取りました。
- IOCTL_HID_GET_COLLECTION_INFORMATION (複数回)
- IOCTL_HID_GET_COLLECTION_DESCRIPTOR (複数回)
- IOCTL_GET_SYS_BUTTON_CAPS
Xbox 360 Controller for Windows の場合、シンボリック名を追跡できない一連の IOCTL を受け取ります。
- 0x80006000 (複数回)
- 0x8000e00c (複数回)
- 0x8000e008
- 0x8000a010
- 0x8000e018
- 0x8000e014
残念ながら、どのデバイスをフィルタリングしようとしているのか、まだわかりません。(そのうちの 1 つがジョイスティックに相当する IOCTL_INTERNAL_MOUSE_CONNECT を受け取ることを望んでいましたが、そうではないようです。)
windows - カーネル空間での VC 組み込みの使用
私の質問は、ヘッダー ファイルが SDK (VC 10 からインストールされたもの) に含まれており、ドライバーのコンパイルに使用している WDK がこのファイルの知識を持っていない場合に、カーネル空間 (Windows) で組み込み関数を使用する方法です。#include <intrin.h>すべてが正常に動作するとき、コンパイルを開始すると、
エラー C1083: インクルード ファイルを開けません: 'intrin.h': そのようなファイルまたはディレクトリはありません
適切なファイルを WDK ディレクトリにコピーしようとしましたが、うまくいきませんでした。インライン アセンブリの記述を開始できることはわかっていますが、正直なところ、固有のサポートが存在するため、これを控えたいと思います。アクセス方法がわからないだけです。
c++ - 非常に不思議な/ランダムなC++WDK STL 7エラー:iosfwd(202):エラーC2144:構文エラー
私は次の名前の簡単なファイルを持っていますTemp.cpp:
そして、WDK 7.1を使用して、Windows XP FreeBuildEnvironmentで次のコマンドラインを使用してコンパイルしようとしています。
そして、私は次のような本当にランダムなエラーを受け取ります:
stl60の代わりにを使用するとエラーはなくなりますがstl70、それでも問題は解決しません。
問題の原因は何ですか?
更新: WDKのアンインストールとインストールを再試行しましたが、何も変更されていません。:(
更新2:わかりました、どうやらエラーはヘッダーファイル自体で叫んでいます:_SCL_INSECURE_DEPRECATE原因です。誰かがそれを正しくオフにする方法を知っていますか?(行をコメントアウトするだけで、他の多くのマクロに関してさらに多くのエラーが発生します。)
c++ - wchar_tはC++WDK STLでサポートされていますか?未解決の外部シンボルを取得します:(
私は些細なC++ファイルをコンパイルしていますTemp.cpp:
コマンドラインを使用して:
WDK 7.1WindowsXPの無料ビルド環境で。
(LNK2019)のようなリンクエラーが発生します:
stringの代わりに使用するとwstring、機能します。
問題の原因は何ですか?wchar_tソースファイルでベースの型を使用するにはどうすればよいですか?
winapi - Windows カーネル ドライバーとは何ですか?
WDK で記述された Windows カーネル ドライバーとは何ですか?
通常のアプリやサービスと何が違うの?