問題タブ [umdf]
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.
c# - Windows ハンドヘルド アプリケーションを USB レシーバーとして使用することは可能ですか?
質問が非常に基本的なものである場合はお詫びします。私は USB プログラミングの経験がなく、ここで概念的な詳細が欠落している可能性があります。
私たちの産業用ソリューションでは、PC wpf アプリケーションと Windows 組み込み HH 8.1 アプリケーションの間の通信を提供することになっています。理想的には、これが USB 経由であることを望みます。
ホスト ロールから USB デバイスに直接接続するためのサンプル コードがたくさんあります。
ただし、この場合、Windows Embedded HH デバイス (Panasonic FZ-E1) は、リッスンするデバイス ロールを持ちます。USB イベント経由で PC アプリケーションから送信された生データに登録する方法が見つかりませんでした。USBデバイス用のドライバーの作成に関する例があるUMDF(ユーザーモードドライバーフレームワーク)を調べましたが、デバイスメーカー向けのようであり、パナソニックHHのメーカーではないため、独自のドライバーを使用すべきではない/使用できず、使用する必要があります既に配置されている WinUSB ドライバーを使用します。
Windows Embedded 8.1 HH には、Windows Phone とは異なり、いくつかの USB API がありますが、API で提供されるすべての機能は、ホスト ロールで外部 USB デバイスに接続するように見えます。USBlyzer を使用すると、PC からデバイスへの USB トラフィックがあることがわかります。そのため、HH がリッスン デバイスの役割を持つことができるはずです。ここで何が欠けていますか、何かアイデアはありますか?
どんな助け/指示も大歓迎です。
PS: Windows Phone パワー ツールのソース コードを調べる Windows 接続 API も試しましたが、エージェント経由の転送を処理するアドオン パッケージの dllは、新しいバージョンの Windows Phone にはもうないようです。
windows - StartSoftwareTriggerAsync アプリケーション API 呼び出しに対応する POS フレームワーク呼び出しは何ですか?
私は Windows 10 でバーコード スキャナー プロジェクトに取り組んでおり、ソフトウェア トリガーを使用します。アプリケーションから前述の API を取得してソフトウェア トリガーを実装しましたが、これらの呼び出しのドライバー側ハンドラーに関する情報を取得できませんでした。
このソフトウェア トリガー API に対応する POS フレームワークの呼び出しを誰かが提案できますか?
前もって感謝します。
よろしく、 タジピア
windows-runtime - UMDF ドライバーで Windows ストア アプリ DLL を使用する
カメラデバイスから画像を取得する Windows ストア DLL があります。この DLL をドライバー ファイル [UMDF 2] で使用して、イメージを取得したいと考えています。DLL は Windows ストア ベースの DLL であるため、ドライバー プロジェクトで直接使用することはできません。UMDF ドライバーで Windows ストア DLL を使用する最良の方法は何ですか?
memory-management - Windows 10 で 2 つのユーザー空間ドライバー (UMDF) 間でメモリを共有していますか?
Windows 10 で 2 つのユーザー モード (UMDF) 2.0 ドライバー間でメモリを共有する方法は何ですか?
windows - ユニバーサル Windows ドライバー (UMDF 2) をビルドするとリンク エラーが発生する
テンプレートに基づくユニバーサル Windows ドライバー (UMDF 2) の作成に関するチュートリアル ( MSDN チュートリアルへのリンク) に従っているときに、テンプレート コードを変更せずにビルドしようとすると、次のエラーが発生します。
エラー LNK1181 は入力ファイル 'C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\um\x64\wpprecorderum.lib' を開けません
こちらから最新の Windows 10 WDK をインストールしました (WDKへのリンク)。このファイルが C:\Program Files (x86)...\lib\10.0.10586.0\um\x64\ NOT C:\Program Files に存在することがわかりました。 (x86)...\lib\10.0.1024.0\um\x64...
Windows ターゲットのバージョンを 10.0.1024.0 から 10.0.10586 に変更すると、エラーが発生します
エラー WDK バージョン '10.0.10586.0' に対応する SDK が見つかりませんでした。
これをコンパイルするにはどうすればよいですか?以前のバージョンの WDK を見つける必要がありますか?
ありがとう
wdf - システムにインストールすると、複数の仮想シリアル ポートが作成されるデバイス ドライバーを開発する必要があります。
これは私にとって初めての Windows デバイス ドライバーであり、Windows デバイス ドライバーをゼロから開発するタスクを割り当てられました。ユーザーがこのドライバーを Windows PC にインストールすると、インストール プロセス中に、ユーザーが必要とする仮想シリアル ポートの数を入力するようユーザーに要求されます。ドライバーのインストール後、ユーザーが希望する仮想ポートの数が作成されます。 . 次に、ユーザーはカスタマイズしたプリンターを USB ポート経由で Windows PC に接続します。ユーザーは、9600 ボー レート、8 データ ビット、パリティなし、1 ストップ ビットで新しく作成された仮想シリアル ポートのいずれかを選択することにより、Hyper ターミナルを介してプリンタにデータを送信できる必要があります。
開始するには、MSDN Web サイトから Windows Driver Kit 10 と共に Visual Studio 2015 をインストールした Windows 7 システムを使用しています。また、Windows ドライバーのサンプル コードを GITHUB からダウンロードしました。このサンプル ソース ベースには、serial/Svirtualserial2 の下に virtualSerial UMDF プロジェクトが含まれています。このプロジェクト ファイルには、Virtualserial2 プロジェクトと FakeModem プロジェクトの 2 つのプロジェクトが含まれていたため、FakeModem プロジェクトを削除し (役に立たなかったため)、ソース/VirtualSerial2 サンプル コードを正常にコンパイルしました。コンパイル後、(UDMF ドライバーには .dll 拡張子があるため) .dll ファイルがデバッグ フォールドで生成されますが、このドライバーの .exe を取得できないため、このドライバーをシステムにインストールする方法がわかりません。
また、このリンクhttps://msdn.microsoft.com/en-in/library/windows/hardware/dn745911%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396にプロセスを一覧表示していましたWinDbg を使用して UMDF ドライバーをデバッグします。例では、.exe を実行するように求められるため、最初の質問は、ドライバーの .exe ファイルを生成してシステムでテストする方法です。
これに加えて、もう1つ質問があります。ドライバーをターゲット システムにインストールした後 (Windows 7 32 ビットでは、ハイパー ターミナルにリンクする必要があります)。ハイパーターミナルを介してコマンドとデータをプリンターに送信できるようにするため、ドライバーはハイパーターミナルからデータを取得し、USB を介してプリンターに送信します。どうやってやるの?
私は正しい方向に進んでいますか?
memory-leaks - Windows UMDF CComPtr IWDFMemory が解放されない
私のUMDF
ドライバーでは、IWDFMemory
内部にパックされていますCComPtr
のドキュメントにCComPtr
は、CComPtr
オブジェクトがスコープ外になると、自動的に解放されると書かれています。つまり、このコードによってメモリ リークが発生することはありません。
NULL
また、スコープが終了する前に手動で割り当てるmemory
か呼び出すとmemory.Release()
、メモリは解放されません。ここで何が起こっているのだろうか?
driver - SCARD_ATTR_DEVICE_UNITの正しい取得方法
スマートカード UMDF Windows ドライバーを開発しています。次の動作を実現したいと思います。
API 呼び出しSCardListReadersを使用して接続されているすべてのリーダーを一覧表示するときに、接続されている各リーダーの正しいフレンドリ名を取得したいと考えています。たとえば、同じブランドのリーダーが 2 つある場合、ドライバーからこれが返されるようにします。
フレンドリ名は属性SCARD_ATTR_VENDOR_NAME
で構成されてSCARD_ATTR_VENDOR_IFD_TYPE
おりSCARD_ATTR_DEVICE_UNIT
、ドライバーが返されることを知っています。
SmartcardBrand USBReader 0
私の質問は、私のドライバーでは、どうすればとを区別できSmartcardBrand USBReader 1
ますか?
要求されたときに OS に何を返すかSCARD_ATTR_DEVICE_UNIT
。新しいリーダーが接続されるたびに、新しい UMDF ホスト プロセスが起動され (タスク マネージャーで確認できます)、別の新しいメモリ領域が作成されるため、ドライバーでグローバル静的変数を使用してインクリメントすることはできません。
UMDF ドライバーでデバイス インスタンスをカウントする適切な方法は何ですか?
メモリ マップト ファイルを使用して問題を解決しました。基本的に、ドライバーの各 UMDF プロセスは、リーダーのフレンドリ名の名前を持つメモリ マップト ファイルを作成します。他のプロセスが同じ名前のファイルを作成しようとすると、ドライバーが既に実行されていることを示します。
ただし、自分のドライバーを使用するリーダーを接続し、その後 Windows ネイティブ ドライバーを使用するリーダーを接続すると、矛盾が生じます。Windows ドライバーは、私が作成したメモリ マップト ファイルを認識せず、そのデバイスにインデックス 0 を適用します。
Windows ドライバーが読み込まれるとSCARD_ATTR_VENDOR_IFD_TYPE
、 、SCARD_ATTR_VENDOR_IFD_TYPE
およびSCARD_ATTR_DEVICE_UNIT
私のドライバー (および現在読み込まれている他のすべてのドライバー) からクエリを実行することがわかりました。このようにして、Windowsドライバーはどのデバイスユニットが使用されているかを認識し、空いているユニットをリーダーに適用できると思います。