問題タブ [kmdf]

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 に答える
645 参照

wdk - IoGetDevicePropertyData() は STATUS_OBJECT_NAME_NOT_FOUND を返します

WinDDK 7600.16385.1 と OSR の ddkbuild.cmd を使用して、PCI デバイス用の機能している KMDF ドライバーを更新しています。WLH をターゲットにして、Win7 x86 および x64 でテストしています。

DEVPKEY_Device_LocationPaths プロパティを取得しようとしています。

デバイス マネージャーの [デバイス プロパティの詳細] タブでは、[場所のパス] に期待される値が表示されます...

...しかし、EvtDriverDeviceAdd ハンドラーから IoGetDevicePropertyData() を呼び出す ...

... 常に STATUS_OBJECT_NAME_NOT_FOUND を返します。

私が試してみました ...

  • 他の DEVPKEY_Device_* 値に対して IoGetDevicePropertyData() を呼び出します。結果は同じです。

  • EvtDevicePrepareHardware ハンドラーで IoGetDevicePropertyData() を呼び出します。結果は同じです。

  • WdfDeviceWdmGetPhysicalDevice() を呼び出して PDO を取得します。結果は同じです

  • WdfDeviceAllocAndQueryProperty()。正しく動作しますが、必要な情報が提供されません。

  • WdfFdoQueryForInterface( GUID_PNP_LOCATION_INTERFACE )。正しく動作しますが、現在のノード (「PCI(0400)」など) しか提供しません。

  • IoGetDevicePropertyData を呼び出すサンプル コードを検索しています。Windows CDROM ストレージ クラス ドライバーのサンプルを見つけましたが、まだ試していないことは何もしていないようです。

それで...何が足りないのですか?

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

serial-port - Windows7のフロントパネルドライバーはサードパートドライバーを使用しました

UART通信をベースにしたフロントパネルはすでにありますが、WindowsPCとの通信に使用したいと思います。解決策は、チップ秘密のUARTからUSBを使用することです。Windows上のチップドライバーは仮想COMであり、ドライバーはデバイスマネージャーに表示され、フロントパネルから情報を受け取りますが、オープンソースではありません。仮想COMドライバーを読み書きしてWindowsシステムにKEY情報を送信するKMDF/UMDFドライバーを開発する方法、またはこれがKey情報であることをWindowsシステムに認識させる方法を知りたいです。

サンプルコード、リンク、ドキュメント、アドバイスを教えてください。どうもありがとうございました。

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

deployment - kmdf ドライバーの展開に関する問題

Visual Studio 2012 ツールを使用して、Microsoft が提供するサンプル キーボード フィルターをコンパイルして展開しようとしています。シリアルケーブルを介してターゲットコンピューターをセットアップしています(セットアッププロセスがターゲットコンピューターにすべてをインストールできたため、シリアルケーブルを備えた仮想ボックスが機能しているようです)。

サンプル コードは正常にコンパイルされますが、展開しようとすると、展開中であることが示され、しばらく時間がかかり、次のエラーで失敗したことが宣言されます。

エラー: ドライバー展開タスクが失敗しました: デフォルトのドライバー パッケージ インストール タスク (再起動の可能性あり)

誰が何がうまくいかないのか知っていますか?

前もって感謝します。

0 投票する
0 に答える
324 参照

usb - win7 x64 に wdf ドライバーをインストールすると、サービス xx を開けませんでした

inf ファイルに問題があると思います。しかし、私のドライバーと inf は、Windows XP と Win7 x86 で正常に動作します。

私もこの問題を検索しました。誰かがサービスの名前が同じではないと言ったのを見てください。しかし、私のinfでは、それは同じです:ECTEKCANcard

私の問題は次のとおりです(これらはwindbgから取得します):

私のinfファイル:

誰か知っていますか?

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

windows - WDF での MSI-X 割り込み

WDF / KMDF で作成している Windows バス ドライバーに MSI-X 割り込みを実装するのに苦労しています。MSDN のドキュメントを読みましたが、役立つ情報はあまりありません。私の理解では、それは本当に「うまくいく」べきだということです。

ドライバーの INF ファイルを変更して適切なレジストリ キーを追加し、インストール時に適切に機能するように設定されていることを確認しました。PCI 構成スペースを適切に照会し、MSI-X 割り込みがサポートされているかどうかを判断しています。

問題は、この情報を取得した後、割り込みを MSI-X に設定するようにコードを変更する方法がわからないことです。WDF_INTERRUPT_CONFIG_INIT stuct を構成し、WdfInterruptCreate を呼び出す標準的な呼び出しを行いますが、作成される割り込みはメッセージ シグナルではなく、実際にこれを実現するために何をする必要があるかわかりません。

ここに手順の WDF バージョンがありますか、それとも標準の WDFINTERRUPT 作成手順をここで実行する必要がありますか?

誰もこれを行った経験がありますか? 誰でもソースの例を提供できますか?

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

windows - PCIE to Serial Windows ドライバーを知識ゼロで書き込むのにどれくらいの時間がかかりますか?

割り込み、連続バッファー DMA、および PC から PCIE への単純な読み取り/書き込み要求を使用して、PCIE 用のシリアル ドライバーを作成する必要があります。ドライバーに関する知識はなく、PC アーキテクチャに関する知識はほとんどありません。平均してどれくらいの時間がかかりますか?

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

windows - WDM ドライバー、KMDF ドライバー、UMDF ドライバーの違いは何ですか?

Visual Studio 2012 で Windows ドライバー プロジェクトを作成する場合、さまざまなオプションから選択できます。

デバイスに適したドライバー モデルを選択するのに役立つページが MSDNにあります。ただし、WDM、KMDF、および UMDF ドライバーの種類の正確な違いと、どのモデルをいつ選択するかについては明確に説明されていません。

WDM、KMDF、および UMDF ドライバー モデルの違いに関する説明を探しているので、初心者の Windows ドライバー開発者が正しいモデルを選択するのは簡単です。

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

kernel - Windows カーネル モード プログラミング: ドライバー間でデッドロックが発生する可能性はありますか?

下位レベルのドライバーに同期要求を送信しようとしているときに、ドライバーがハングするという問題が発生しています。DISPATCH_LEVELこのルーチンが呼び出された時点で、ルーチンは現在実行中です。

Microsoft が提供するドキュメント「ロック、デッドロック、および同期」を確認したところ、次のように書かれています。

低い IRQL で実行されているコードがロックを正常に取得したものの、高い IRQL でコードを実行するためにスレッドが中断された場合を考えてみましょう。上位の IRQL コードが同じロックを取得しようとすると、スレッドが永久にハングする可能性があります。IRQL の低いコードは、IRQL の高いコードが終了するまで実行できませんが、IRQL の高いコードは、IRQL の低いコードがロックを解放するまで終了できません。関与するスレッドは 1 つだけです。この問題を回避するために、通常、ロックを取得するコードはその IRQL を、ロックを取得するドライバー コードが実行できる最高の IRQL に引き上げます。

私たちの問題は、ハングアップとブルー スクリーンが発生することです。DISPATCH_LEVEL で待機する呼び出しを行うべきではないこと、および設計に作業が必要であることは理解していますが、IRQL メカニズムを正しく理解していることを確認したいだけです。

IRQL はプロセッサごとであり、さまざまなドライバーがさまざまなプロセッサで実行されるというのは正しいですか? DISPATCH_LEVELIRQLが高いため、他のドライバーのスレッドをプリエンプトすることにより、下位レベルのドライバーを対象とした同期要求を行うことが実際に問題を引き起こしているかどうかを確認したいと思います。

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

c - Com0Com をビルドしようとしています - c0clog.h ファイルがありません

新しい Visual Studio 2013 と DDK で Com0Com をビルドしようとしています。Microsoft はドライバーのビルド方法をかなり変更しましたが、ドライバー プロジェクト (KMDF) を作成し、Com0Com ソース ファイルをプロジェクトに追加することができました。(Com0Com に付属するビルド手順は、Microsoft がデバイス ドライバーを作成するために設計した新しい方法では機能しません)。

ただし、ビルドすると、コンパイラは c0clog.h を見つけることができず、SourceForge の zip ファイルに含まれていないようです。

Com0Com のビルドを試みて、c0clog.h が見つからないというこの問題を解決できた人はいますか?