問題タブ [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 投票する
2 に答える
827 参照

windows - カーネルモードで垂直ブランクを待っていますか?

USB パイプを介してデータを送信するために、垂直ブランク割り込みとの同期が必要なドライバーを作成しています。

ユーザーモードでは、 IDXGIOutput::WaitForVBlankやいくつかの古い関数など、これに使用できる Direct X 関数があります。カーネルからそれらを使用できません。Windows 8 SDK で別のインターフェイスを見つけました: D3DKMTWitForVerticalBlankEventにはカーネル ヘッダー (ヘッダーは SDK の /km/ フォルダーにあります) もありますが、どのユーザー モード ライブラリが必要gdi32.libで、それとリンクするとドライバーが機能しなくなります。

垂直ブランクの発生について (ポーリングなしで) 待機または通知を受け取る方法はありますか?

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

windows - カーネルモードドライバーへの署名

kmfdドライバーを持っていて、http://www.digicert.com/code-signing/から証明書を購入していますが、この証明書はWindows 7で機能しますか?または、ベリサインからのみ購入する必要がありますか。これは178ドル/年であるのに対し、彼らはなんと400ドル/年を請求します。

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

process - KMDFドライバーで終了/削除通知を処理する

プロセスがダウンしたときにKMDFドライバーで通知を受け取る必要があります。PsSetCreateProcessNotifyRoutine作成または破棄されたすべてのプロセスについて通知が表示されるため、使用したくありません。興味のある特定のプロセスIDが破棄/終了/削除された場合にのみ通知を受け取りたいです。(私はプロセスの作成を気にしません)。

これを行うことを考えた1つの方法は、アプリケーションで作成されたイベントをドライバーと共有することです。ドライバーにワーカースレッドを作成し、ユーザーが作成したイベントを待機させます。アプリケーションが終了すると、待機は中止されます。これは、プロセスがいつ終了/終了したかを知るための良い方法ですか、それともこれを行うためのより標準的な方法がありますか?いくつかのフォーラムで、イベントを共有することは良い考えではなく、重複したioctlを使用する必要があることを読みましたが、ここでは明らかに機能しません。

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

windows - WdfRequestIsCanceled 対 WdfRequestMarkCancelable

wdf での IO キャンセルに以下の 2 つのアプローチを使用することの長所と短所を誰でも挙げることができますか? 1) WdfRequestMarkCancelable () でリクエストをキャンセル可能としてマークします。キャンセル ルーチンを提供し、完了パスを同期します。2) IRP の処理中に WdfRequestIsCanceled() でポーリングを続けます。戻り値に基づいて完了します。

WdfRequestIsCanceled() はポーリング アプローチであるのに対し、WdfRequestMarkCancelable () は非同期であることを理解しています。しかし、WdfRequestMarkCancelable() は、完了/キャンセル パスを同期するために必要な追加の作業に値するでしょうか?

ご意見ありがとうございます。

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

c++ - エラー: C1083: インクルード ファイルを開けません: 'wdm.h': そのようなファイルまたはディレクトリはありません

私はqtcreatorでこのコードをビルドしようとしています。私のポイントは、とを使用して新しいデバイスを作成することRtlInitUnicodeStringですIoCreateDevice

次のエラーが表示されます。

ここに私の.proファイルがあります

1) インクルード パスのエラーを修正するにはどうすればよいですか

IoCreateDevice2) の使用方法と作成方法を説明してくれる人はいますか?theDriverObject

助けてください!!!! 前もって感謝します。

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

kmdf - クライアントアプリケーションからKMDFドライバーにアクセスする方法

サンプルのKMDFドライバーを作成しました。すべてが正しく行われたかどうかはわかりませんが、このドライバーを新しいハードウェアとして追加したときに、KMDFドライバーがDebugViewユーティリティでデバッグメッセージを出力するのを見ました。また、デバイスマネージャーの下に「サンプルデバイス」として表示されました。

次に、このドライバーを呼び出すことができるサンプルクライアントを作成します。これにより、ドライバーとクライアント間の接続を確立できます。「CreateFile」や「DEviceIOControl」などを使用する必要があることを読みましたが、開始できません。

サンプルKMDFドライバーにアクセスするためのサンプルクライアントの作成について教えてください。

ドライバーのINFファイルは次のようになります:-

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

windows - KMDF のすべての IRP をインターセプトする方法はありますか

ioQueue に渡す前にすべての IRP をインターセプトする必要がある KMDF ドライバーを作成しています。

PreprocessIrpCallback を登録したコールバック関数があり、このようにフレームワークにフックしたい

しかし、すべての IRP を傍受したい場合、疑問符はどうなるでしょうか?

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

device-driver - WDF 共同インストーラーの問題

KMDF 1.5 を実行している 32 ビット Vista マシンに KMDF 1.9 ドライバーをインストールする際に問題が発生しています。共同インストーラーが Vista マシンを KMDF 1.9 に更新することを期待していました。しかし、そうではありません。

私は何を逃したのですか?

setupapi.dev.log には次のように記載されています。

KMDF 1.9 を既に取得している Win7 では、すべて正常に動作します。

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

usb - Windows が処理中の WDF 要求をキャンセルするのはいつですか?

一度に大量のデータを転送する USB3 デバイス用の WDF (KMDF) を使用して、Windows デバイス ドライバーを作成しています。この機能をテストするユーザー レベルのアプリケーションを作成しましたが、ほとんどの場合、動作します。

私が遭遇する問題は次のとおりです。転送中にアプリケーションを強制的に閉じる (cmd ウィンドウから CTRL + C) と、キャンセル時に進行中のデータ転送がすぐに停止し、ホストが単純なように見えることがわかりました。そのエンドポイントとの通信を停止します。これは、USB バス トレースで確認しました。リクエストはファンクション ドライバで「STATUS_CANCELLED」として返されます。

他の同様のサードパーティ製デバイスを調べて、それらのデバイスのドライバーでテスト アプリケーションを実行したところ、データ転送中にテスト アプリケーションを強制終了すると、アプリケーションが閉じる前に転送が完了することがわかりました。

私の質問:

アプリケーションが閉じられたときに、Windows はどのように/いつ処理中の要求を強制終了することを決定しますか?

リクエストを「キャンセル不可」としてマークする方法はありますか? ドキュメントを精査しましたが、転送中に舞台裏でリクエストがキャンセルされないようにするために何かをする必要があることを示唆するものは何も見つかりませんでした.

どんな洞察も感謝します、ありがとう。