問題タブ [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.

0 投票する
1 に答える
111 参照

infrared - IR_TRANSMIT_PARAMS.TransmitPortMask値?

私はいたるところを見回しましたが、IOCTL_IR_TRANSMITで使用するためにIR_TRANSMIT_PARAMS構造体のTransmitPortMaskに入れる値に関するドキュメントを見つけることができません。

すべてのドキュメントには、「送信するポートを含むビットマスク」であると記載されています。

したがって、私は最初に試しました:

それは動かなかった!

次に、コンピューターですべての値を試し、次のことを確認しました。

これは一種の奇妙な値です...特にPORT1の場合。

もちろん、-1(または〜0、または0xFFFFFFFF)を入力すると、すべてのポートで同時にデータが送信されます。しかし、私は個々のポートを制御したいと思います。

現在、同じバージョンのWindowsを使用しているにもかかわらず、システムでは機能しないという報告を一部のユーザーから受け取っています。

したがって、TransmitPortMaskに入力する必要のある値は何ですか?

  • 私はWindows7RC32ビットを使用しています。
  • Microsoft MediaCenterRemoteに付属のMicrosoftIRBlaster(互換性のあるものだけでなく、実際のMicrosoftのもの)を使用しています
0 投票する
1 に答える
599 参照

c# - 印刷サーバー - 印刷コマンドをキャッチしたい

クライアントがコマンドを起動したかどうかをプリントサーバーで知るにはどうすればよいですか。またはサーバーの印刷ドライバーでプリンタードライバーにフックする方法

プリントサーバーとは??? Windows でプリント サーバーがどのように機能するか??? 複数のクライアントが単一のプリントサーバーにリクエストを送信する方法??? 実行中のユーティリティはありますか??? 誰かがこのことについて私をクリアできますか???

0 投票する
2 に答える
6686 参照

winapi - IOCTL を上位フィルター ドライバー (kbfiltr/moufiltr) に送信してデバイスを有効/無効にする Raw PDO

私はドライバー開発にまったく慣れておらず、キーボードまたはマウスデバイスを有効または無効にする単純なフィルタードライバーを作成しようとしています。動作させることができれば、マウスが接続されているときにラップトップのタッチパッドを無効にするために使用したいと考えています。おそらくこれを行うソフトウェアが既に存在することはわかっていますが、デバイスドライバーに本当に興味があり、これを自分で行う方法を学びます。

私は、上位フィルター ドライバーとしてインストールされた、WDK に同梱されているkbfiltrmoufiltrの例を使用しています。kbfiltr の例では、ユーザーモード プログラムによって列挙および接続できる pdo が作成されます。これにより、KbFilter_EvtIoDeviceControlForRawPdoによって処理される PDO に IOCTL を送信できます。ただし、 KbFilter_EvtIoInternalDeviceControlを呼び出すなど、フィルター ドライバーに関連することを試してみると、次のようなことができます。

BSOD が発生します。上記のコードではありません。バニラの例では、null への設定がコメント アウトされています。Kbfilter を呼び出すだけで BSOD が発生します。デバイス拡張機能を PDO で直接設定しようとしましたが、これも BSOD の原因になります。これはおそらく、kbfiltr ではなく PDO devExt であるためでしょうか?

(関連: BSOD からスタック トレースを取得する良い方法は何ですか? テスト環境として Virtual PC を使用し、XPSP3 の未チェックのビルドを使用しています)

IOCTL_INTERNAL_KEYBOARD_DISCONNECT をドライバー スタックに直接送信することはできません (入力デバイスは一度に 1 つの接続のみを受け入れることを理解していますか?) したがって、生の PDO が必要です。実際には 2 つの IOCTL (有効化と無効化) を送信するだけで済み、これらは既に定義されているため、キーボードの切断と接続を使用するだけでよいと考えました。

これらの仮定のいずれかについて間違っている場合は、お知らせください。私は本当に初心者であることを知っていますが、PDO を介したこの種の通信に関する多くのドキュメントは見つかりませんでした。

0 投票する
1 に答える
3217 参照

c++ - WDK ビルドでブースト ライブラリをリンクする警告 (「LNK4217: ローカルで定義されたシンボル _ 関数にインポートされた _」)

以下のブーストを使用するユーザー モード アプリの例を WDK でビルドしていますが、同じターミナル ウィンドウからブートストラップと .\bjam を使用して以前にビルドしたブースト ライブラリとリンクすると、次のエラーが発生します。

IIUC、MSDNによると、C++ std lib 関数のように見える (恐ろしく壊れた) 関数が DLL インポートとしてマークされていますが、ローカル定義があります。どうしてそうなった?これを回避する方法はありますか?

関連項目:緩やかに関連する質問

0 投票する
2 に答える
1632 参照

windows-xp - WindowsXPにデバイスドライバをサイレントインストールします

catファイルなしでWindowsXPにデバイスを接続せずに、プログラムでデバイスドライバーをサイレントインストールする方法はありますか?

WindowsDriverKitのDriverPackageInstall関数を使用しています。また、デバイスが接続されている場合にのみドライバをインストールできます。それ以外の場合は、ERROR_NO_SUCH_DEVINSTというエラーが発生します。ただし、この方法はWindowsVistaでは正常に機能します。

もう1つの問題は、catファイルがないためにインストールを続行または停止するようにユーザーに求める警告ダイアログです。両方のOSに表示されます。

何か案は?

0 投票する
2 に答える
32833 参照

c++ - 仮想 Web カメラ ドライバー

ユーザーモードから画像を渡し、ウェブカメラ出力として表示する仮想ウェブカメラドライバーを開発したいと考えています。

DirectX フィルターや CSourceStream などは使用したくありません。Web カメラの画像をキャプチャするために DirectX を使用しない一部のプログラムでは機能しないためです。

そのため、カーネル モードのデバイス ドライバーを作成する必要があります。

何か案は?DDK サンプルから testcap を試しましたが、ユーザー モードからの画像を処理せず、入力も得られず、ウェブカメラで 7 色を表示するだけです...

どんな助けでも大歓迎です。ありがとう


皆さん、ありがとうございました!

ここからコードを試しました: http://tmhare.mvps.org/downloads.htm (Capture Source Filter を見つけます)

Yahoo、MSN でコンパイルしたときは問題なく動作しましたが、AIM、Internet Explorer Flash Webcam、Firefox Flash Webcam、Skype ではクラッシュしました。これを 8 回呼び出した後、QueryInterface でクラッシュしました。たくさんのトリック..

HRESULT CVCamStream::QueryInterface(REFIID riid, void **ppv) への 8 回目の呼び出しでクラッシュすることがわかりました。

最後に達したときの 8 回目の呼び出し if、つまり: return CSourceStream::QueryInterface(riid, ppv);

Filters.cpp の 17 行目にあります。

なぜ私がクラッシュしていると思いますか??

ドライバーではなくDirectShowである正しい解決策を見つけるように私を導いてくれてありがとう

0 投票する
4 に答える
2624 参照

c++ - Windows で USB フロッピー ドライブと USB フラッシュ ドライブをプログラムで区別する

Windows (XP-7) で、C++ で USB フロッピー ドライブと USB フラッシュ ドライブをプログラムで区別する信頼できる方法はありますか?

現時点では、WMI を使用して新しいWin32_LogicalDiskインスタンスが検出されたときに更新を取得し、LogicalDisk オブジェクトの DriveType 属性を使用して基本的な種類を特定しています。フロッピー ドライブと USB フラッシュ ドライブが両方とも DriveType であることを除いて、これは非常にうまく機能しますDRIVE_REMOVABLE。そのため、これら (フロッピーとフラッシュ) を区別するために、IOCTL_STORAGE_GET_HOTPLUG_INFOデバイスがホットプラグ可能かどうかを判断するためのインターフェースであり、フロッピーではなくフラッシュドライブであることを意味するプリンシパルに取り組んでいました。繰り返しますが、内部フロッピー ドライブの場合、これは非常にうまく機能すると思います (少し効率が悪い場合は、WDK API と WMI の両方を使用して情報を取得します)。私が見る限り、フラッシュ ドライブと USB フロッピー ドライブを区別する明確な方法はありません。予約済みドライブ A: または B にマップされているかどうかを確認するなど、機能するプロパティがあることは知っています (編集: マシンにフロッピー ドライブが確実にある場合にのみ関連します - MS-KB を参照してください: Windows XP でドライブ文字の割り当てを変更する方法)、または説明を見ると、もう少し信頼できるものが欲しいです。

説明が長くなって申し訳ありませんが、明確にしたかっただけです!ありがとう

0 投票する
1 に答える
559 参照

windows - ハードウェアに触れないWindowsドライバーを開発するにはどうすればよいですか?

存在しないデバイスをエミュレートするWDMドライバーを作成する必要があります。SetupDiXXXO / Sの起動時、およびを介して開閉するとき、CreateFileに応答する必要があるときDeviceIoControlなどに、ドライバをロードする必要があります。

ドライバーをコーディングしましたが、XPはそれをロードすることを拒否します。システムイベントビューアは次のように述べています。

次のエラーが原因で、MyDeviceサービスを開始できませんでした。サービスが無効になっているか、有効なデバイスが関連付けられていないため、サービスを開始できません。

それを考えると、問題はINFファイルにあると思います(以下の参照)。それは...ですか?どうすれば修正できますか?

0 投票する
2 に答える
1868 参照

java - jspタグライブラリはチェックボックス名を変更しますか?

すべて選択チェックボックスを使用して、チェックボックスの列を選択しようとしています。

そこで、一度にチェックしたいすべてのものに同じ名前のABoxesElementを付けて、JavaScript ですべてを簡単にチェックできるようにしました。

ただし、firefox で firebug を使用すると、チェックボックスに指定した名前が保持されず、コンポーネント名が前に追加され、チェックボックスに自動インクリメント番号が追加されていることがわかります。

getElementByName で正規表現を使用できないため、複数のチェックボックスで同じ値を設定するにはどうすればよいですか。(IDは別の目的で使用されます)..ここに私のコードがあります:

すべて選択チェックボックス

チェックしたいチェックボックスの例

****Javascriptの例****

ただし、ページがレンダリングされると、個々のチェックボックスの名前がABoxesElementではなく、 component_nameAboxesElement_2のようなものであるため、getElementsByName が正規表現を受け入れることができない限り、スクリプトは機能しません。

これを回避する方法についてのアイデアはありますか?

チェックボックスのtldには別の属性があります

それを使用して「名前」を保存し、それを介して要素にアクセスできますか?

個々のチェックボックスの EDIT HTML OUTPUT

selectall チェックボックスの EDIT 2 HTML OUTPUT

0 投票する
1 に答える
917 参照

winapi - Win32 DDK:ドライバー割り込みからのAPIの呼び出しは間違っていますか?

注:これは私が経験している問題ではありませんが、理解したいことです(私がより良い人間になり、人間の理解の地平をさらに広げたいという理由だけで)。

レイモンド・チェンのボーナスの章で、

代替テキスト

Raymondは、サウンドカードドライバのバグの例を示しています。

ハードウェア割り込み時に呼び出される元の関数は、DDKでは次のようになります。

関数のバージョンは次のようになりました。

リテールコードにデバッグ機能が残っているだけでなく、ハードウェア割り込み時に非割り込みセーフ関数を呼び出しています。関数が破棄された場合 wsprintf、システムはハードウェア割り込み内でセグメントが存在しない障害を起こし、かなり迅速に停止します。

そのコードを見ていると、ライブラリ関数wsprintfの呼び出しが問題になるとは思いもしませんでした。ドライバーコードでWin32APIを使用する必要がある場合はどうなりますか?

セグメンテーション違反とは何ですか?ページフォールトの概念を理解しています。必要なコードは、ハードドライブにスワップアウトされたページにあり、コードの実行を続行する前にハードドライブから戻る必要があります。デバイスドライバーの割り込み内にいるときのセグメンテーション違反とは何ですか?

ページフォールトは、セグメントフォールトと同等の保護モードですか?セグメンテーション違反を回避するにはどうすればよいですか?Windowsがデバイスドライバーコードを交換することはありますか?「wsprintfが破棄されるのを防ぐにはどうすればよいですか?」wsprintfが「破棄」される原因は何ですか?「廃棄」とは何ですか?廃棄することの美徳は何ですか?何かが捨てられていないとき

ドライバーの内部からAPI呼び出しを呼び出すのはなぜ悪いのですか、そしてそれをどのように回避するのでしょうか?