問題タブ [wdf]
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 - WDF での MSI-X 割り込み
WDF / KMDF で作成している Windows バス ドライバーに MSI-X 割り込みを実装するのに苦労しています。MSDN のドキュメントを読みましたが、役立つ情報はあまりありません。私の理解では、それは本当に「うまくいく」べきだということです。
ドライバーの INF ファイルを変更して適切なレジストリ キーを追加し、インストール時に適切に機能するように設定されていることを確認しました。PCI 構成スペースを適切に照会し、MSI-X 割り込みがサポートされているかどうかを判断しています。
問題は、この情報を取得した後、割り込みを MSI-X に設定するようにコードを変更する方法がわからないことです。WDF_INTERRUPT_CONFIG_INIT stuct を構成し、WdfInterruptCreate を呼び出す標準的な呼び出しを行いますが、作成される割り込みはメッセージ シグナルではなく、実際にこれを実現するために何をする必要があるかわかりません。
ここに手順の WDF バージョンがありますか、それとも標準の WDFINTERRUPT 作成手順をここで実行する必要がありますか?
誰もこれを行った経験がありますか? 誰でもソースの例を提供できますか?
c# - Windows XP-8 でオーディオ デバイスへのアクセスを特定のアプリケーション/ユーザーに制限する
マイク入力を分析し、クライアントが入力したクレジット カード番号を表す DTMF トーンを記録する c# 4.0 アプリケーションを作成しました。これはすべてうまく機能しますが、PCI コンプライアンス( www.pcisecuritystandards.orgを参照) の下で作業しているため、ログインしているユーザー (コール センターのスタッフ) がマイク入力を聞いたり録音したりすることを許可したくありません。サードパーティのアプリまたは携帯電話を使用して、クレジット カード番号を独自に解析できます。だから私が持っている質問は次のとおりです。
- マイク入力を特定のアプリケーションに制限して、他の場所で聞いたり録音したりできないようにするにはどうすればよいですか?
これに対する解決策がない場合、2 番目の質問が発生します。
- マイク入力を特定のユーザーに制限して、他の場所で聞いたり録音したりできないようにするにはどうすればよいですか (特定のユーザー資格情報で Windows サービスとしてソフトウェアを実行できます)。
よろしく、 JB
windows - WDM ドライバー、KMDF ドライバー、UMDF ドライバーの違いは何ですか?
Visual Studio 2012 で Windows ドライバー プロジェクトを作成する場合、さまざまなオプションから選択できます。
デバイスに適したドライバー モデルを選択するのに役立つページが MSDNにあります。ただし、WDM、KMDF、および UMDF ドライバーの種類の正確な違いと、どのモデルをいつ選択するかについては明確に説明されていません。
WDM、KMDF、および UMDF ドライバー モデルの違いに関する説明を探しているので、初心者の Windows ドライバー開発者が正しいモデルを選択するのは簡単です。
kernel - Windows カーネル モード プログラミング: ドライバー間でデッドロックが発生する可能性はありますか?
下位レベルのドライバーに同期要求を送信しようとしているときに、ドライバーがハングするという問題が発生しています。DISPATCH_LEVEL
このルーチンが呼び出された時点で、ルーチンは現在実行中です。
Microsoft が提供するドキュメント「ロック、デッドロック、および同期」を確認したところ、次のように書かれています。
低い IRQL で実行されているコードがロックを正常に取得したものの、高い IRQL でコードを実行するためにスレッドが中断された場合を考えてみましょう。上位の IRQL コードが同じロックを取得しようとすると、スレッドが永久にハングする可能性があります。IRQL の低いコードは、IRQL の高いコードが終了するまで実行できませんが、IRQL の高いコードは、IRQL の低いコードがロックを解放するまで終了できません。関与するスレッドは 1 つだけです。この問題を回避するために、通常、ロックを取得するコードはその IRQL を、ロックを取得するドライバー コードが実行できる最高の IRQL に引き上げます。
私たちの問題は、ハングアップとブルー スクリーンが発生することです。DISPATCH_LEVEL で待機する呼び出しを行うべきではないこと、および設計に作業が必要であることは理解していますが、IRQL メカニズムを正しく理解していることを確認したいだけです。
IRQL はプロセッサごとであり、さまざまなドライバーがさまざまなプロセッサで実行されるというのは正しいですか? DISPATCH_LEVEL
IRQLが高いため、他のドライバーのスレッドをプリエンプトすることにより、下位レベルのドライバーを対象とした同期要求を行うことが実際に問題を引き起こしているかどうかを確認したいと思います。
msbuild - Visual Studio をインストールせずに MSbuild を使用して Win8 ドライバーをビルドする方法
Visual Studio をインストールせずに、WDK8.0 で KMDF ドライバーをビルドしたいと考えています。私はmsdnを見ました、それはMSBuildがそれをすると言います。
しかし、WDK8.0 にはコンパイラが含まれていないため、MSbuild を使用して VS2012 なしでドライバーをビルドするにはどうすればよいでしょうか?
誰か私のためにいくつかの単語を説明してもらえますか? VS2012 なしで Windows ドライバーをビルドするにはどうすればよいですか。
windows - WDF ドライバーは、ユーザー プログラムによって取得されたリソースをどのように解放しますか?
タイトルのドライバーは、PCIe カードと連携して、外界から PC にデータを取得します。
ドライバは起動時に数十 MB のメモリを割り当て、ユーザー プログラムはこれらのメモリを独自のアドレス空間にマップできます。その後、データはカードによってそこに配置され、ユーザー プログラムがアクセスできるようになります。
私の質問:
- ユーザー プログラムがメモリをマップした後にクラッシュした場合、または終了する前にメモリをマップ解除するのを忘れた場合、リソース リークが発生しますか?
- 最初の質問の答えが正しい場合、リークを回避するためにドライバーでできることはありますか?
任意の提案をいただければ幸いです。
memory-management - DMA トランザクションのメモリ アライメント (Windows Driver Foundation)
Windows 7 用の WDF を使用してカスタムメイドの PCI-Express デバイス用の DMA ベースのドライバーを作成しています。
ご存じのとおり、PCI-Express バス トランザクションは 4k メモリ境界を超えることはできません。カスタム デバイスはこれをチェックしないため、ドライバーが 4k メモリ境界に合わせた DMA 転送のみを要求するようにする必要があります。
デバイスのプロファイルは WdfDmaProfilePacket64 です。
WdfDeviceSetAlignmentRequirement(DevExt->Device, 4095) を使用してみましたが、DMA 開始アドレスが適切に整列されません。
適切に配置されたアドレスのみを要求するように WDF フレームワークを構成するにはどうすればよいでしょうか?
c# - C#でIOCTLを64ビットマシンに送信する
キーボード フィルター ドライバーに IOCTL を送信しています。コードは次のとおりです。
この後のコードは正常に動作します。問題はここにあり、これは 32 ビット マシンでは機能しますが、64 ビット マシンでは機能しません。 ?
wdk - カーネル モード ドライバーへのデータの格納
カーネル モード ドライバーに配列があります。ドライバーが配列データを保存し、ロード時に同じデータを復元することは可能ですか?