問題タブ [wpd]

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

windows - Windows ポータブル デバイスは TWAIN ドライバーをサポートしていますか?

TWAIN をサポートする必要があるアプリケーションに取り組んでいますが、追加のデバイス サポートも潜在的に有益です。現時点では、一度に 1 枚の画像を取得する機能以上に手の込んだ機能が必要になるとは考えていません。

WIA が twain をサポートしていることをここで読み、WPD を WIA インターフェイスに公開できることをここで読みました。ただし、TWAIN の WPD サポートに関する直接のドキュメントは見つかりません。

私が疑問に思っているのは、Windows ポータブル デバイスのサポートを実装するだけで、「無料で」WIA と TWAIN の両方のサポートを取得できるかどうかということです。もしそうなら、WPD の TWAIN サポートに「落とし穴」はありますか?

0 投票する
3 に答える
33985 参照

java - Netbeansにネイティブライブラリを含める

Javaで署名されたアプレットからポータブルデバイスを読み取ろうとしています。ポータブルデバイスにアクセスするためにhttp://code.google.com/p/jmtp/w/listでjmtpライブラリを見つけました が、エラーが発生するNetBeans

p>

検索したところ、jmtpのプロジェクトにネイティブライブラリとして.dllファイルを含める必要があることがわかりました...プロジェクトを右クリックしてプロパティに移動し、[実行]を選択してVMオプションを選択しました。

そのjmtp.dllファイルをc:\jmtpフォルダーに配置しました

しかし、同じエラーが常に表示されます私のコードは

何が問題なのか教えてください

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

path - mtp デバイスのパスを作成する方法 (フォルダ参照ダイアログで使用可能)?

MTPでコンピューターに接続されているWindows PCからAndroidデバイスへのファイル転送を実装しました。コピーの実装の準備ができました (この例を使用しました: http://code.msdn.microsoft.com/windowsdesktop/Portable-Devices-COM-API-fd4a5f7d )。

ここで、UI を改善したいと思います。ユーザーがファイルを保存する MTP デバイス フォルダーを選択できるフォルダー選択ダイアログを提供したいと思います (FOS_PICKFOLDERS を使用した CLSID_FileOpenDialog はうまく機能します)。ダイアログから「ここに保存できません」というエラーが表示されるため、単純なファイル保存ダイアログは機能しないことに注意してください。

フォルダ参照の結果は次のようになります:
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\?\usb#vid_04e8&pid_6860&mi_00#6&2296b879&0&0000#{6ac27878-a6fa-4155-ba85-f98f491d4SID-1{10} ,SECZ9519043CHOHB,12635222016}{01B8016B-0164-00F2-E100-55012C014001}

usb#vid_04e8&pid_6860&mi_00#6&2296b879&0&0000#{6ac27878-a6fa-4155-ba85-f98f491d4f33}
これがデバイスであることはわかっています。IPortableDeviceManager はこれをデバイス ID として使用します。

SID-{10001,SECZ9519043CHOHB,12635222016}\{01B8016B-0164-00F2-E100-55012C014001}
これはデバイス上のパスです。これらの GUID は、デバイス オブジェクトの WPD_OBJECT_PERSISTENT_UNIQUE_ID プロパティです。

この情報を使用して、デバイスを選択し、デバイス内のフォルダーを見つけることができるので、コピーを実行できます。

私の問題は、デバイスの folderbrowsedialog でデフォルトのディレクトリも選択したいのですが、上記のパスを作成できないことです。それをデフォルトのパスとして指定すると、正しいフォルダーでブラウジングが開始されることに注意してください。

問題の部分は、取得できない開始 GUID です:
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}

レジストリも調べました。この GUID は 1 つのエントリでのみ見つかりました:
HKEY_USERS\S-1-5-21-2044730494-4069800027-1247311059-1000\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}\ DefaultIcon
の値は次のとおりです:
C:\Windows\System32\imageres.dll,-109
(CLSID サブフォルダーにはさらに多くの GUID が含まれているため、見つけられません。これは正しいものです)

この GUID を取得してデフォルト パス全体を構築する方法を知っていますか?

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

winapi - リリースでハングしているWPDMTPデータストリーム

Windows 8でWPD(Windows Portable Devices)APIを使用してMTP互換のモバイルデバイスからデータを読み取るときに、奇妙な問題が発生しました(他のWindowsバージョンはまだ試していません)。

症状は、関数を介して取得ReleaseしたIStreamインターフェイスを呼び出すときに、デバイスがPCから切断されるまで呼び出しがハングし、戻らない場合があります。IPortableDeviceResources::GetStreamRelease

いくつかの実験の結果、ストリームの内容全体が読み取られている限り、これは決して発生しないことがわかりました。ただし、ストリームが部分的にしか読み取られていない場合(たとえば、ファイルの最初の256Kb)、一見ランダムに発生する可能性があります(かなり頻繁に発生します)。

これはiPhoneとWindowsPhone8モバイルで再現されているため、デバイス固有ではないようです。

誰かが以前にこの種の問題に遭遇したことがありますか?さらに重要なことに、ストリームのコンテンツ全体を常に読み取る以外に、それを解決する方法を知っている人はいますか?

ありがとう!

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

registry - MTP デバイスのインストールが失敗する原因となる WPD アッパー フィルター

WPD (ポータブル デバイス) クラス用の KMDF フィルター ドライバーを作成しています ( http://www.osronline.com/article.cfm?article=446の例に基づく)。ドライバーの目的は、デバイスへのブロック書き込み要求です。
WPD クラスの UpperFilters のレジストリに設定し、Samsung Galaxy S3 をプラグインすると、デバイスに送信された WPD IOCTL をキャッチできました (現在、ドライバーは要求を次のドライバーに転送するだけです)。ここまでは順調ですね。
次に、Samsung Kies をインストールしてフィルター ドライバーがまだ機能するかどうかを確認しましたが、デバイスを接続すると、Windows が「Samsung Mobile MTP Device」をインストールしようとして失敗しました。何度か試しました(ドライバーがまだインストールされていることを確認しましたが、これはドライバーが見つからないという問題ではありません)。ドライバーを UpperFilters から削除すると、デバイスがインストールされ、機能していました。フィルターを元に戻すと、デバイスが起動しませんでした (コード 10)。Windbg を使用すると、ドライバーが起動し、デバイスが追加され、ドライバーがアンロードされることがわかります (途中で何が起こるかわかりません...)
。それを下位フィルターとして配置しようとすると、再び正常に機能しました。
ネットを検索しているときに、WDK ではなく WDM を使用している場合にも発生することがわかりました。

この場合、UpperFilter を配置するとデバイスの起動に失敗するのはなぜですか?
それを解決する方法はありますか?

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

driver - MTP デバイス用の UMDF フィルター ドライバー

ファイル操作をログに記録し、特定のファイル操作をブロックする目的で、Windows 7 で MTP デバイス用のフィルター ドライバーを作成しようとしています。Windows で MTP を処理するドライバーは、WpdMtpDr.dll という名前の UMDF ドライバーであることがわかりました。この(UMDF 関数ドライバーの上のサンプル UMDF フィルター ドライバー) に従ってWpdMtpDr.dll、関数ドライバーとして扱った UMDF フィルター ドライバーを作成しました。また、これを参考にして、ドライバーが上部フィルターとしてインストールされているか、下部フィルターとしてインストールされているかを判断しました。dpinst.exe を使用してドライバーをインストールしました。以下は私のINFファイルです。

インストールにエラーはありませんでしたが、MTP デバイス (Samsung Galaxy S3) を接続すると、フィルター ドライバーがドライバー リストになく (デバイス マネージャーで確認)、DllMain が呼び出されませんでした。

下部フィルターと上部フィルターを切り替えようとしましたが、どちらも役に立ちませんでした。

私は何を間違っていますか?

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

winapi - WPD MTPデータストリームを非同期で読み取る方法は?

私のサンプル アプリケーションはCOM IStream、関数からインスタンスを取得しますIPortableDeviceResources::GetStream()。この ISt​​ream オブジェクトを使用して、デバイス オブジェクトのコンテンツを非同期で読み取りたいと考えています。非同期モニカを使用してそれを行うにはどうすればよいですか?

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

c# - C# での Windows ポータブル デバイス オートメーション API へのアクセス

Bluetooth Low Energy デバイスに接続してそこからデータを受信する Metro Style C#/XAML アプリケーションを作成しています。Microsoft は、WPD API を使用して必要なものをすべて作成するサンプルを共有しました。ただし、これは JavaScript で記述されており、ActiveXObject() などの JavaScript 固有のメソッドを使用します。

このコードを C# Metro アプリケーションに移植する方法はありますか?

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

c# - WPD デバイス上のオブジェクトの名前を変更する方法

WPD/MTP デバイスのストレージ サービスで動作するPortableDeviceLibのフォークを作成しています。そして、問題に遭遇しました。デバイス上のファイル オブジェクトの名前を変更したいので、最初に考えることは、オブジェクトのプロパティを変更することです。しかし、これを行うと例外が発生します。を変更すると、名前は変更されますが、ファイル名は予想どおりで、例外はありません。WPD_OBJECT_ORIGINAL_FILE_NAMEWPD_OBJECT_NAME

問題は、WPD デバイス上のオブジェクトの名前を変更する方法です。ファイル名のプロパティを変更すると例外が発生するのはなぜですか?

名前を変更したい理由は、ファイルをデバイスにコピーするときに、ファイルが既に存在する場合、拡張子dup0dup1などの重複を取得するためです。